Re: Proposition to use '==' as synonym for 'IS NOT DISTINCT FROM'

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Eugen Konkov <kes-kes(at)yandex(dot)ru>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, David Fetter <david(at)fetter(dot)org>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Proposition to use '==' as synonym for 'IS NOT DISTINCT FROM'
Date: 2019-10-28 12:48:24
Message-ID: CAFj8pRBh6poiBzodqXPTjCn3sqOvJj1TwdrLsrgw6TyK2oQ-kw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

po 28. 10. 2019 v 12:39 odesílatel Eugen Konkov <kes-kes(at)yandex(dot)ru> napsal:

> > x IS NOT DISTINCT FROM y
>
> > I'm vaguely imagining
>
> > x = {magic} y
>
> > where unlike Eugen's suggestion, "=" is the real name of the underlying
> > comparison operator. For dump/restore this could be spelled verbosely
> > as
>
> > x OPERATOR(someplace.=) {magic} y
>
> > The hard part is to figure out some {magic} annotation that is both
> > short and unambiguous. We have to cover the IS DISTINCT variant, too.
>
> I am from Perl world. There are == and != operators.
> Here short snippet of code:
>
> my $x = undef;
> my $y = 'some value';
> my $z = undef;
> $x == $y; # FALSE
> $x == $z; # TRUE
> $x != $y ; # TRUE
> $x != $z; # FALSE
>
>
> > x OPERATOR(someplace.=) {magic} y
> If we should follow this form, then IS DISTINCT should be written as:
> x =! y
> This looks unusual, because JavaScript also follow != form. so I hope
> it will be easy to detect/implement != form, which I used to read as:
> negate the result of comparison
>
>
>
> Can we supply additional parameters to OPERATOR via double
> parentheses( double parentheses is another crazy idea)?
> x =(( 'NULL' )) y
>

It's looks much more terrible than original IS DISTINCT FROM

> or
>
> x OPERATOR(someplace.=, magic ) y
> which will be internally converted( I suppose ) to OPERATOR(
> someplace.=, x, y, magic )
>

I don't think so benefit of this is too valuable against possible problems.

MySQL has special operator <=>, so if we implement some, then we should to
implement this. But better do nothing. I don't see significant benefit of
this against costs.

Pavel

>
> --
> Best regards,
> Eugen Konkov
>
>
>
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2019-10-28 12:52:02 Preserve versions of initdb-created collations in pg_upgrade
Previous Message Surafel Temesgen 2019-10-28 12:48:08 Re: WIP: System Versioned Temporal Table