pgsql: Improve performance of ExecEvalWholeRowVar.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Improve performance of ExecEvalWholeRowVar.
Date: 2017-03-26 23:15:07
Message-ID: E1csHNL-0005pZ-Hl@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Improve performance of ExecEvalWholeRowVar.

In commit b8d7f053c, we needed to fix ExecEvalWholeRowVar to not change
the state of the slot it's copying. The initial quick hack at that
required two rounds of tuple construction, which is not very nice.
To fix, add another primitive to tuptoaster.c that does precisely what
we need. (I initially tried to do this by refactoring one of the
existing functions into two pieces; but it looked like that might hurt
performance for the existing case, and the amount of code that could
be shared is not very large, so I gave up on that.)

Discussion: https://postgr.es/m/26088.1490315792@sss.pgh.pa.us

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/2f0903ea196503fc8af373a9de46b1e01a23508c

Modified Files
--------------
src/backend/access/heap/tuptoaster.c | 68 +++++++++++++++++++++++++++++++++++
src/backend/executor/execExprInterp.c | 22 ++++++------
src/include/access/tuptoaster.h | 11 ++++++
3 files changed, 90 insertions(+), 11 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2017-03-27 02:07:16 pgsql: Show more processes in pg_stat_activity.
Previous Message Peter Eisentraut 2017-03-26 22:32:26 pgsql: Fix cpluspluscheck warning