Re: [PATCH] Use optimized single-datum tuplesort in ExecSort
Ranier Vilela <ranier.vf@gmail.com>
From: Ranier Vilela <ranier.vf@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Ronan Dunklau <ronan.dunklau@aiven.io>, James Coleman <jtc331@gmail.com>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>,
Dilip Kumar <dilipbalaut@gmail.com>
Date: 2021-07-15T14:19:51Z
Lists: pgsql-hackers
Em qua., 14 de jul. de 2021 às 22:22, David Rowley <dgrowleyml@gmail.com> escreveu: > On Thu, 15 Jul 2021 at 12:30, Ranier Vilela <ranier.vf@gmail.com> wrote: > > > > Em qua., 14 de jul. de 2021 às 21:21, David Rowley <dgrowleyml@gmail.com> > escreveu: > >> But, in v8 there is no additional branch, so no branch to mispredict. > >> I don't really see how your explanation fits. > > > > In v8 the branch occurs at : > > + if (ExecGetResultType(outerPlanState(sortstate))->natts == 1) > > You do know that branch is in a function that's only executed once > during executor initialization, right? > There's a real difference between v8 and v6, if I understood correctly. v6 the branches is per tuple: + if (tupDesc->natts == 1) v8 the branches is per state: + if (ExecGetResultType(outerPlanState(sortstate))->natts == 1) I think that a big different way to solve the problem. Or am I getting it wrong? If the sortstate number of attributes is equal to 1, is it worth the same for each tuple? Can you explain this, please? regards, Ranier Vilela
Commits
-
Make nodeSort.c use Datum sorts for single column sorts
- 91e9e89dccdf 15.0 landed