Fix tuplesort optimization for CLUSTER-on-expression.

Thomas Munro <tmunro@postgresql.org>

Commit: cc58eecc5d75a9329a6d49a25a6499aea7ee6fd6
Author: Thomas Munro <tmunro@postgresql.org>
Date: 2022-04-03T22:52:02Z
Releases: 15.0
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

Files

PathChange+/−
src/backend/utils/sort/tuplesort.c modified +56 −22

Discussion