Amit Langote писал(а) 2025-01-10 18:22:
On Fri, Jan 10, 2025 at 7:36 PM David Rowley <dgrowle...@gmail.com> wrote:
On Fri, 10 Jan 2025 at 22:53, Vladlen Popolitov
<v.popoli...@postgrespro.ru> wrote:
>   In case of query
> select count(*) from test_table where a_1 = 1000000;
> I would expect increase of query time due to additional if...else . It
> is not clear
> what code was eliminated to decrease query time.

Are you talking about the code added to ExecInitSeqScan() to determine
which node function to call? If so, that's only called during executor
startup.  The idea here is to reduce the branching during execution by
calling one of those special functions which has a more specialised
version of the ExecScan code for the particular purpose it's going to
be used for.

Looks like I hadn't mentioned this key aspect of the patch in the
commit message, so did that in the attached.

Vladlen, does what David wrote and the new commit message answer your
question(s)?

Hi Amit,

 Yes, David clarified the idea, but it is still hard to believe in 5% of
improvements.
The query
select count(*) from test_table where a_1 = 1000000;
has both qual and projection, and ExecScanExtended() will be generated
similar to ExecScan() (the same not NULL values to check in if()).
 Do you have some scripts to reproduce your benchmark?
--
Best regards,

Vladlen Popolitov.


Reply via email to