On Thu, Aug 14, 2014 at 11:55 AM, Peter Geoghegan <p...@heroku.com> wrote: > Clearly there are still benefits to be had for cluster and B-Tree > tuplesorts.
In a world where this general support exists, abbreviated keys could be made to work with both of those, but not datum tuplesorts, because that case needs to support tuplesort_getdatum(). Various datum tuplesort clients expect to be able to retrieve the original representation stored in SortTuple.datum1, and there isn't much we can do about that. This is a bit messy, because now you have heap and datum cases able to use the onlyKey qsort specialization (iff the opclass doesn't provide abbreviated key support in the heap case), while all cases except the datum case support abbreviated keys. It's not that bad though; at least the onlyKey qsort specialization doesn't have to care about abbreviated keys, which makes sense because it's generally only compelling for pass-by-value types. -- Peter Geoghegan -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers