On 01/13/2013 08:06 PM, Dimitri Fontaine wrote:
> Hannu Krosing <hannu@2ndQuadrant.com> writes:
>>> Does this hint that postgreSQL also needs an sameness operator
>>> ( "is" or "===" in same languages).
>> How do people feel about adding a real sameness operator ?
> Well. I would prefer it if we can bypass the need for it.
What is actually sufficient for current problem is sameness
which compares outputs of type output functions and also
considers NULLs to be the same.
The reason for not providing equality for xml was not that two xml
files which compare equal as text could be considered unequal in
any sense but that there are some other textual representations
of the same xml which could also be considered to be equal, like different whitespace between tag and attribute
> Then Do we need the full range of eq, eql, equal and equalp predicates,
> and would all of them allow overriding or just some?
I consider sameness as basic thing as IS NULL, so the sameness
should not be overridable. Extending IS NOT DISTINCT FROM to
do this comparison instead of current '=' seems reasonable.
That is
SELECT '<tag/>'::xml IS DISTINCT FROM '<tag />'::xml
should return TRUE as long as the internal representation of the
two differ and even after you add equality operator to xml
which compares some canonic form of xml and thus would make
SELECT '<tag/>'::xml = '<tag />'::xml ;
be TRUE.
Regards,
Hannu
>
> http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node74.html
>
> Regards,