Re: PostgreSQL 10 changes in exclusion constraints - did something change? CASE WHEN behavior oddity

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Mark Dilger <hornschnorter(at)gmail(dot)com>, Regina Obe <lr(at)pcorp(dot)us>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PostgreSQL 10 changes in exclusion constraints - did something change? CASE WHEN behavior oddity
Date: 2017-06-11 18:18:41
Message-ID: 28631.1497205121@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> writes:
> Interesting stuff. Here's a small recommendation for a couple of those
> new messages.

Hm. I don't object to folding those two messages into one, but now that
I look at it, the text needs some more work anyway, perhaps. What we're
actually checking is not so much whether the IS DISTINCT FROM construct
returns a set as whether the underlying equality operator does. If we
want to be pedantic about it, we'd end up writing something like

"equality operator used by %s must not return a set"

But perhaps it's okay to fuzz the distinction and just write

"%s must not return a set"

You could justify that on the reasoning that if we were to allow this
then an underlying "=" that returned a set would presumably cause
IS DISTINCT FROM or NULLIF to also return a set.

I'm kind of thinking that the second wording is preferable, but there's
room to argue that the first is more precise. Opinions?

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Vladimir Borodin 2017-06-11 18:29:59 Re: Broken hint bits (freeze)
Previous Message Peter Geoghegan 2017-06-11 17:54:53 Re: TPC-H Q20 from 1 hour to 19 hours!