From: | Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> |
---|---|
To: | David Rowley <dgrowleyml(at)gmail(dot)com> |
Cc: | Ronan Dunklau <ronan(dot)dunklau(at)aiven(dot)io>, James Coleman <jtc331(at)gmail(dot)com>, PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Dilip Kumar <dilipbalaut(at)gmail(dot)com> |
Subject: | Re: [PATCH] Use optimized single-datum tuplesort in ExecSort |
Date: | 2021-07-15 14:19:51 |
Message-ID: | CAEudQApH-7+MY-PNErMMvkMpyZsYVQTM5ntdD2-Tvy2H2snw6A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Em qua., 14 de jul. de 2021 às 22:22, David Rowley <dgrowleyml(at)gmail(dot)com>
escreveu:
> On Thu, 15 Jul 2021 at 12:30, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> wrote:
> >
> > Em qua., 14 de jul. de 2021 às 21:21, David Rowley <dgrowleyml(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Bharath Rupireddy | 2021-07-15 14:24:41 | Re: Inaccurate error message when set fdw batch_size to 0 |
Previous Message | David Rowley | 2021-07-15 14:19:23 | Re: [PATCH] Use optimized single-datum tuplesort in ExecSort |