Odd/undocumented precedence of concatenation operator

From: Shay Rojansky <roji(at)roji(dot)org>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Odd/undocumented precedence of concatenation operator
Date: 2015-09-08 16:43:19
Message-ID: CADT4RqD-oBm5VRd+sxEFKaU9xcgH5-TmUq2-3G4QKonz+0VqTA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi hackers.

Trying to execute the following query on PostgreSQL 9.4.4:

select 'a' >= 'b' || 'c';

Gives the result "falsec", implying that the precedence of the string
concatenation operator is lower than the comparison operator. Changing the
>= into = provides the result false, which is less surprising.

Is this the expected behavior, considering that >= and = behave differently
and that + ranks much higher?

If nothing else, it seems that the concatenation operator should be listed
on the operator precedence table at
http://www.postgresql.org/docs/9.4/static/sql-syntax-lexical.html#SQL-PRECEDENCE-TABLE
?

Thanks!

Shay

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Shulgin, Oleksandr 2015-09-08 16:53:52 Re: On-demand running query plans using auto_explain and signals
Previous Message Alvaro Herrera 2015-09-08 16:39:09 Re: psql tabcomplete - minor bugfix - tabcomplete for SET ROLE TO xxx