WL#3003: SQL:2003 DISTINCT predicate

Affects: Prototype Only   —   Status: Un-Assigned

Brief: x IS [NOT] DISTINCT FROM y
This is (AFAIK) a NULL-safe operation, and we may be able to support this syntax
by using a [NOT] <=> operation internally.

These are SQL:2003 features T151 (DISTINCT predicate) and T152 (DISTINCT
predicate with negation)




Function

Specify a test of whether two row values are distinct

Format

 ::=
 

 ::=
IS [ NOT ] DISTINCT FROM 

 ::= 

 ::= 


Syntax Rules

1) The two s shall be of the same degree.
2) Let respective values be values with the same ordinal position.
3) The declared types of the respective values of the two s
shall be comparable.
4) Let X be the first  and let Y be the second .
5) Each field of each  is an operand of an equality operation.
6) If  immediately contains NOT, then the  is equivalent to: NOT ( X IS DISTINCT FROM Y )


General Rules

1) The result of  is True if the value of  is distinct from the value of ; otherwise,
the result is False.

2) If two s are not distinct, then they are said to be
duplicates. If a number of s are all duplicates of each
other, then all except one are said to be redundant duplicates.