From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Justin Pryzby <pryzby(at)telsasoft(dot)com>, John Naylor <john(dot)naylor(at)enterprisedb(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Robert Haas <rhaas(at)postgresql(dot)org> |
Subject: | Re: A qsort template |
Date: | 2022-04-02 21:45:13 |
Message-ID: | CA+hUKGLNpDXytCwUnOQYvGkvjR4h+0ev=ivqLGuUO-w0WAJ_7A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, Apr 3, 2022 at 9:03 AM Andres Freund <andres(at)anarazel(dot)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...
(There's also room to recognise when you don't even need to look at
isnull1 for a less branchy optimised sort, but that was already
discussed and put off for later.)
Attachment | Content-Type | Size |
---|---|---|
0001-WIP-Fix-tuplesort-optimizations-for-expression-based.patch | text/x-patch | 2.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Kenaniah Cerny | 2022-04-02 22:08:23 | Re: Proposal: allow database-specific role memberships |
Previous Message | Greg Stark | 2022-04-02 21:38:35 | Re: [PATCH] Tracking statements entry timestamp in pg_stat_statements |