postgresql/src/include/lib
John Naylor 0fe5f64367 Teach radix tree to embed values at runtime
Previously, the decision to store values in leaves or within the child
pointer was made at compile time, with variable length values using
leaves by necessity. This commit allows introspecting the length of
variable length values at runtime for that decision. This requires
the ability to tell whether the last-level child pointer is actually
a value, so we use a pointer tag in the lowest level bit.

Use this in TID store. This entails adding a byte to the header to
reserve space for the tag. Commit f35bd9bf3 stores up to three offsets
within the header with no bitmap, and now the header can be embedded
as above. This reduces worst-case memory usage when TIDs are sparse.

Reviewed (in an earlier version) by Masahiko Sawada

Discussion: https://postgr.es/m/CANWCAZYw+_KAaUNruhJfE=h6WgtBKeDG32St8vBJBEY82bGVRQ@mail.gmail.com
Discussion: https://postgr.es/m/CAD21AoBci3Hujzijubomo1tdwH3XtQ9F89cTNQ4bsQijOmqnEw@mail.gmail.com
2024-04-08 18:54:35 +07:00
..
binaryheap.h Add functions to binaryheap for efficient key removal and update. 2024-04-03 10:44:21 +09:00
bipartite_match.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
bloomfilter.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
dshash.h Fix comments for the dshash_parameters struct. 2024-02-27 09:44:59 -06:00
hyperloglog.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
ilist.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
integerset.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
knapsack.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
pairingheap.h Use the pairing heap instead of a flat array for LSN replay waiters 2024-04-03 18:15:41 +03:00
qunique.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
radixtree.h Teach radix tree to embed values at runtime 2024-04-08 18:54:35 +07:00
rbtree.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
simplehash.h simplehash: Free collisions array in SH_STAT 2024-04-07 19:08:41 -07:00
sort_template.h Introduce overflow-safe integer comparison functions. 2024-02-16 13:37:02 -06:00
stringinfo.h Add destroyStringInfo function for cleaning up StringInfos 2024-03-16 23:18:28 +01:00