9.5 "chained equality" behavior

From: Joshua Ma <josh(at)benchling(dot)com>
To: PostgreSQL mailing lists <pgsql-general(at)postgresql(dot)org>
Subject: 9.5 "chained equality" behavior
Date: 2017-05-30 20:56:02
Message-ID: CAG9XPV=19NvR-x1e4C3vizdmu81xGQk0tDbpYw6VL9PvgOROog@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Our team is upgrading from 9.4 to 9.5, and we noticed this behavior change:

9.4:
# SELECT true = true = true;
?column?
----------
t
(1 row)

9.5:
# SELECT true = true = true;
ERROR: syntax error at or near "="
LINE 1: SELECT true = true = true;

Now, there's actually a larger problem with this, since it's not actually
chained equality and only looks like it. It looks like 9.4 is evaluating
right-to-left. We're going to fix usages of this to instead do (a = b && a
= c) instead of (a = b = c).

However, I wanted to email in because I couldn't see what in the 9.5
changelog (https://www.postgresql.org/docs/9.6/static/release-9-5.html)
would cause this to syntax error. I'm worried that there are other
incompatibilities that we didn't notice.

Can anyone shed some light?

--
Joshua Ma
Benchling | benchling.com

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thomas Kellerer 2017-05-30 21:00:29 Re: 9.5 "chained equality" behavior
Previous Message Magnus Hagander 2017-05-30 19:32:30 Re: pg_basebackup error: replication slot "pg_basebackup_2194" already exists