Re: Removing SORTFUNC_LT/REVLT - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Removing SORTFUNC_LT/REVLT
Date
Msg-id 20978.1136058858@sss.pgh.pa.us
Whole thread Raw
In response to Re: Removing SORTFUNC_LT/REVLT  (Martijn van Oosterhout <kleptog@svana.org>)
Responses Re: Removing SORTFUNC_LT/REVLT  (Martijn van Oosterhout <kleptog@svana.org>)
List pgsql-hackers
Martijn van Oosterhout <kleptog@svana.org> writes:
> On Sat, Dec 31, 2005 at 12:58:19AM -0500, Greg Stark wrote:
>>  Two things are either the same or they aren't, and that can't change
>> based on context.

> So someone who wants a case-insensetive search actually doesn't want
> "Foo" to equal "foo"?

That nice simple worldview falls down in other areas as well.  An
example is zero and minus zero in IEEE math: they are equal for some
purposes but not others.  I think you really have to say that equality
is defined with respect to a particular datatype and a particular set
of operators.

The example of case-insensitive sorting suggests that we need to assume
that sort comparison functions can make finer-grained comparisons than
the associated "equals" operator does.  The current infrastructure
forces these to be exactly the same, but as long as we're busy
reinventing stuff, we could have two comparison functions associated
with a btree opclass: one that mimics the operators' behavior and one
that makes finer-grained comparisons and defines the actual sort order.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Rod Taylor
Date:
Subject: Re: EINTR error in SunOS
Next
From: Martijn van Oosterhout
Date:
Subject: Re: Removing SORTFUNC_LT/REVLT