Обсуждение: pgsql: Improve code inferring length of bitmap for JITed tupledeformin

Поиск
Список
Период
Сортировка

pgsql: Improve code inferring length of bitmap for JITed tupledeformin

От
Andres Freund
Дата:
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(-)