Re: WIP: Faster Expression Processing v4

From: Andres Freund <andres(at)anarazel(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: WIP: Faster Expression Processing v4
Date: 2017-03-20 06:25:11
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers


On 2017-03-15 20:09:03 -0400, Tom Lane wrote:
> I think it would be worth creating a README file giving an overview
> of how all of this patch is supposed to work. You also need to do a
> whole lot more work on the function-level comments.

I tried to improve upon both fronts. I've added the higher level
explanation to executor/README, but I don't feel very strong about that.

I'm not quite sure it's exactly what you wanted however, the above ask
could also be understood to have more of an motivational angle,
describing why and what exactly is changed? I'm also still not sure how
understandable it's for anybody that hasn't had their head in this for a

I've also, as discussed nearby, re-added code akin to the checks in
ExecEvalScalarVar, with the discussed adjustment of the opcodes for
later executions. Now that I've done that, I'm not sure I like that
approach that much - another alternative would be to change an
ExprState's evalfunc to ExecCheckAndExecute() after initialization.
That'd have the advantage to work nicely for JIT. Either way, that can
trivially be changed later.

Additionally I added a regression test for the nearly entirely untested
nodeTidscan.c, after I'd broken it previously without noticing (thanks

I started a run through valgrind, without complaints up to
create_function_2. Can't run all of it (and contrib) right now without
prematurely running out of power on a plane.

Did I understand correctly that you'd rather just merge
ExecGetLastAttnums into execExpr.c, instead of making it globally


Andres Freund

Attachment Content-Type Size
0001-Add-some-basic-nodeTidscan.c-tests.patch.gz application/x-patch-gzip 1.7 KB
0002-Make-get_last_attnums-more-generic.patch.gz application/x-patch-gzip 1.7 KB
0003-Add-configure-test-for-computed-goto-support.patch.gz application/x-patch-gzip 1.7 KB
0004-Faster-expression-evaluation-and-targetlist-projecti.patch.gz application/x-patch-gzip 107.9 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2017-03-20 06:30:48 Re: [COMMITTERS] pgsql: Add TAP tests for password-based authentication methods.
Previous Message David Rowley 2017-03-20 05:52:47 Re: Patch to improve performance of replay of AccessExclusiveLock