Greg Stark <gsstark@mit.edu> writes:
> On Tue, Mar 8, 2011 at 3:21 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Not so right. �A path key contains an expression tree, plus whatever
>> *additional* information is needed to fully specify the sort ordering.
>> If the collation is already fully determined by the expression tree,
>> there is no need to duplicate that information in the PathKey node.
>> And, as I said, doing so anyway has real negative consequences.
> Isn't the reason to copy that information outside the expression so
> that we can choose sometimes to ignore it? Namely, for == we can use
> an index with any defined collation even if it doesn't match the
> collation in the pathkey we're looking for?
No, that's nonsense. A PathKey is all about sort order. It is not
relevant in any situation where sort order is ignorable.
> I think currently that's the only example but in theory we could have
> collations that are "supersets" of the desired collation. For example
> a UTF8 collation that sorts english in the desired way and sorts utf8
> characters in some way that isn't relevant to the query.
That sounds like nonsense as well. There is no such thing as a superset
ordering: to have such a thing, you'd have to have some orderings that
didn't fully determine the ordering of data values, which is pretty much
unworkable.
regards, tom lane