pgsql: Improve code inferring length of bitmap for JITed tupledeformin - Mailing list pgsql-committers

From Andres Freund
Subject pgsql: Improve code inferring length of bitmap for JITed tupledeformin
Date
Msg-id E1hLcED-0000Ke-F6@gemulon.postgresql.org
Whole thread Raw
List 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(-)


pgsql-committers by date:

Previous
From: Julien Rouhaud
Date:
Subject: Re: pgsql: Track block level checksum failures in pg_stat_database
Next
From: Andres Freund
Date:
Subject: pgsql: Fix unused variable compiler warning in !debug builds.