Would it be possible to just use `IS`, `IS NOT` instead of `IS [NOT] DISTINCT FROM`? It's always surprised me that you can write `IS NULL`, `IS TRUE`, etc. but they're all special-cased. I could see it introducing a parsing ambiguity, but it doesn't seem impossible to resolve?
> 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