Hi, On 2022-04-03 09:45:13 +1200, Thomas Munro wrote: > On Sun, Apr 3, 2022 at 9:03 AM Andres Freund <and...@anarazel.de> wrote: > > It's certainly not pretty that copytup_cluster() can use SortTuples without > > actually using SortTuples. Afaics it basically only computes isnull1/datum1 > > if > > state->indexInfo->ii_IndexAttrNumbers[0] == 0. > > I think we just need to decide up front if we're in a situation that > can't provide datum1/isnull1 (in this case because it's an expression > index), and skip the optimised paths. Here's an experimental patch... > still looking into whether there are more cases like this...
That's a lot of redundant checks. How about putting all the checks for optimized paths into one if (state->sortKeys && !state->disable_datum1)? I'm a bit worried that none of the !ubsan tests failed on this... Greetings, Andres Freund