pgsql: Improve code inferring length of bitmap for JITed tuple deformin

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Improve code inferring length of bitmap for JITed tuple deformin
Date: 2019-04-30 23:32:01
Message-ID: E1hLcED-0000Ke-F6@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Improve code inferring length of bitmap for JITed tuple deforming.

While discussing comment improvements (see next commit) by Justin
Pryzby, Tom complained about a few details of the logic to infer the
length of the NULL bitmap when building the JITed tuple deforming
function. That bitmap allows to avoid checking the tuple header's
natts, a check which often causes a pipeline stall

Improvements:
a) As long as missing columns aren't taken into account, we can
continue to infer the length of the NULL bitmap from NOT NULL
columns following it. Previously we stopped at the first missing
column. It's unlikely to matter much in practice, but the
alternative would have been to document why we stop.
b) For robustness reasons it seems better to also check against
attisdropped - RemoveAttributeById() sets attnotnull to false, but
an additional check is trivial.
c) Improve related comments

Discussion: https://postgr.es/m/20637.1555957068@sss.pgh.pa.us
Backpatch: -

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3a48005b0049d69b4376e6ae386479ae3d255a11

Modified Files
--------------
src/backend/jit/llvm/llvmjit_deform.c | 37 +++++++++++++++++++----------------
1 file changed, 20 insertions(+), 17 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2019-05-01 01:10:45 pgsql: Fix unused variable compiler warning in !debug builds.
Previous Message Julien Rouhaud 2019-04-30 22:48:58 Re: pgsql: Track block level checksum failures in pg_stat_database