Fix tuplesort optimization for CLUSTER-on-expression.
authorThomas Munro <tmunro@postgresql.org>
Sun, 3 Apr 2022 22:52:02 +0000 (10:52 +1200)
committerThomas Munro <tmunro@postgresql.org>
Sun, 3 Apr 2022 22:52:02 +0000 (10:52 +1200)
commitcc58eecc5d75a9329a6d49a25a6499aea7ee6fd6
tree81d83f814f1b5722423ae5fb7895dd5cb14b97ee
parent591e088dd5b357796e136c13dfcdb1f06fd7a3c2
Fix tuplesort optimization for CLUSTER-on-expression.

When dispatching sort operations to specialized variants, commit
69749243 failed to handle the case where CLUSTER-sort decides not to
initialize datum1 and isnull1.  Fix by hoisting that decision up a level
and advertising whether datum1 can be relied on, in the Tuplesortstate
object.

Per reports from UBsan and Valgrind build farm animals, while running
the cluster.sql test.

Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CAFBsxsF1TeK5Fic0M%2BTSJXzbKsY6aBqJGNj6ptURuB09ZF6k_w%40mail.gmail.com
src/backend/utils/sort/tuplesort.c