Re: A qsort template - Mailing list pgsql-hackers

From Andres Freund
Subject Re: A qsort template
Date
Msg-id 20220402231151.635ohpc4q3gppdzb@alap3.anarazel.de
Whole thread Raw
In response to Re: A qsort template  (Thomas Munro <thomas.munro@gmail.com>)
Responses Re: A qsort template  (Thomas Munro <thomas.munro@gmail.com>)
List pgsql-hackers
Hi,

On 2022-04-03 09:45:13 +1200, Thomas Munro wrote:
> On Sun, Apr 3, 2022 at 9:03 AM Andres Freund <andres@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



pgsql-hackers by date:

Previous
From: Kenaniah Cerny
Date:
Subject: Re: Proposal: allow database-specific role memberships
Next
From: Greg Stark
Date:
Subject: Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index.