Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 30e1442

Browse files
Add TIDStore, to store sets of TIDs (ItemPointerData) efficiently.
TIDStore is a data structure designed to efficiently store large sets of TIDs. For TID storage, it employs a radix tree, where the key is a block number, and the value is a bitmap representing offset numbers. The TIDStore can be created on a DSA area and used by multiple backend processes simultaneously. There are potential future users such as tidbitmap.c, though it's very likely the interface will need to evolve as we come to understand the needs of different kinds of users. For example, we can support updating the offset bitmap of existing values. Currently, the TIDStore is not used for anything yet, aside from the test code. But an upcoming patch will use it. This includes a unit test module, in src/test/modules/test_tidstore. Co-authored-by: John Naylor Discussion: https://postgr.es/m/CAD21AoAfOZvmfR0j8VmZorZjL7RhTiQdVttNuC4W-Shdc2a-AA%40mail.gmail.com
1 parent 995e0fb commit 30e1442

File tree

15 files changed

+1091
-0
lines changed

15 files changed

+1091
-0
lines changed

src/backend/access/common/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ OBJS = \
2525
scankey.o \
2626
session.o \
2727
syncscan.o \
28+
tidstore.o \
2829
toast_compression.o \
2930
toast_internals.o \
3031
tupconvert.o \

src/backend/access/common/meson.build

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ backend_sources += files(
1313
'scankey.c',
1414
'session.c',
1515
'syncscan.c',
16+
'tidstore.c',
1617
'toast_compression.c',
1718
'toast_internals.c',
1819
'tupconvert.c',

0 commit comments

Comments
 (0)