Re: WIP: Faster Expression Processing v4

Konstantin Knizhnik <k.knizhnik@postgrespro.ru>

From: Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
To: pgsql-hackers@postgresql.org
Date: 2017-03-13T17:10:48Z
Lists: pgsql-hackers

On 13.03.2017 11:03, Andres Freund wrote:
> Hi,
>
> On 2017-03-12 05:40:51 +0100, Tomas Vondra wrote:
>> I wanted to do a bit of testing and benchmarking on this, but 0004 seems to
>> be a bit broken.
> Well, "broken" in the sense that it's already outdated, because other
> stuff that got merged.
>
>
>> The patch does not apply anymore - there are some conflicts
>> in execQual.c, but I think I fixed those. But then I ran into a bunch of
>> compile-time errors, because some of the executor nodes still reference bits
>> that were moved elsewhere.
> Updated patch attached.  Note that this patch has two changes I've not
> yet evaluated performance-wise.


I got the following results at my system with Intel(R) Core(TM) i7-4770 
CPU @ 3.40GHz, 16Gb RAM,
TPC-H Q1/Q6 scale 10, sharedBuffers=8Gb, pg_prewarm on lineitem table 
projection:


	Q1
	Q6
Master
	7503 ms 	1171 ms
Your patch 	6420 ms 	1034 ms
VOPS
	396 ms
	249 ms
VOPS + patch 	367 ms
	233 ms



-- 
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Commits

  1. Improve performance of ExecEvalWholeRowVar.

  2. Remove unreachable code in expression evaluation.

  3. Faster expression evaluation and targetlist projection.

  4. Avoid syntax error on platforms that have neither LOCALE_T nor ICU.

  5. Add configure test to see if the C compiler has gcc-style computed gotos.

  6. Improve regression test coverage for TID scanning.

  7. Improve expression evaluation test coverage.

  8. Fix two errors with nested CASE/WHEN constructs.