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

From: Eugen Konkov <kes-kes(at)yandex(dot)ru>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, David Fetter <david(at)fetter(dot)org>
Cc: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: Proposition to use '==' as synonym for 'IS NOT DISTINCT FROM'
Date: 2019-10-28 11:39:38
Message-ID: 1627344878.20191028133938@yandex.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> 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

or

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

--
Best regards,
Eugen Konkov

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Isaac Morland 2019-10-28 11:54:32 Re: Proposition to use '==' as synonym for 'IS NOT DISTINCT FROM'
Previous Message Peter Geoghegan 2019-10-28 11:00:06 Re: Connections hang indefinitely while taking a gin index's LWLock buffer_content lock(PG10.7)