• Peter Geoghegan's avatar
    Fix CLUSTER tuplesorts on abbreviated expressions. · e4521841
    Peter Geoghegan authored
    CLUSTER sort won't use the datum1 SortTuple field when clustering
    against an index whose leading key is an expression.  This makes it
    unsafe to use the abbreviated keys optimization, which was missed by the
    logic that sets up SortSupport state.  Affected tuplesorts output tuples
    in a completely bogus order as a result (the wrong SortSupport based
    comparator was used for the leading attribute).
    
    This issue is similar to the bug fixed on the master branch by recent
    commit cc58eecc5d.  But it's a far older issue, that dates back to the
    introduction of the abbreviated keys optimization by commit 4ea51cdf.
    
    Backpatch to all supported versions.
    
    Author: Peter Geoghegan <pg@bowt.ie>
    Author: Thomas Munro <thomas.munro@gmail.com>
    Discussion: https://postgr.es/m/CA+hUKG+bA+bmwD36_oDxAoLrCwZjVtST2fqe=b4=qZcmU7u89A@mail.gmail.com
    Backpatch: 10-
    e4521841
cluster.out 24.7 KB