Teach TID store to skip bitmap for small numbers of offsets

The header portion of BlocktableEntry has enough padding space for
an array of 3 offsets (1 on 32-bit platforms). Use this space instead
of having a sparse bitmap array. This will take up a constant amount
of space no matter what the offsets are.

Reviewed (in an earlier version) by Masahiko Sawada

Discussion: 
https://postgr.es/m/CANWCAZYw+_KAaUNruhJfE=h6wgtbkedg32st8vbjbey82bg...@mail.gmail.com
Discussion: 
https://postgr.es/m/cad21aobci3hujzijubomo1tdwh3xtq9f89ctnq4bsqijomq...@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f35bd9bf359d3d740063997e1cbab9b69df7af99

Modified Files
--------------
src/backend/access/common/tidstore.c               | 129 +++++++++++++++------
.../test_tidstore/expected/test_tidstore.out       |  28 +++++
.../modules/test_tidstore/sql/test_tidstore.sql    |  10 ++
3 files changed, 130 insertions(+), 37 deletions(-)

Reply via email to