postgresql/src/backend/lib
Michael Paquier d3bba04154 Fix a set of typos and grammar issues across the tree
This batch is similar to 462fe0ff62 and addresses a variety of code
style issues, including grammar mistakes, typos, inconsistent variable
names in function declarations, and incorrect function names in comments
and documentation.  These fixes have accumulated on the community
mailing lists since the commit mentioned above.

Notably, Alexander Lakhin previously submitted a patch identifying many
of the trivial typos and grammar issues that had been reported on
pgsql-hackers.  His patch covered a somewhat large portion of the issues
addressed here, though not all of them.

The documentation changes only affect HEAD.
2026-04-21 14:46:22 +09:00
..
bipartite_match.c Update copyright for 2026 2026-01-01 13:24:10 -05:00
bloomfilter.c Update copyright for 2026 2026-01-01 13:24:10 -05:00
dshash.c dshash: Make it possible to suppress out of memory errors 2026-03-19 11:51:17 -04:00
hyperloglog.c Fix a set of typos and grammar issues across the tree 2026-04-21 14:46:22 +09:00
ilist.c Update copyright for 2026 2026-01-01 13:24:10 -05:00
integerset.c Update copyright for 2026 2026-01-01 13:24:10 -05:00
knapsack.c Remove #include <math.h> where not needed 2026-01-15 19:09:47 +01:00
Makefile Make binaryheap available to frontend code. 2023-09-18 12:18:33 -07:00
meson.build Update copyright for 2026 2026-01-01 13:24:10 -05:00
pairingheap.c Update copyright for 2026 2026-01-01 13:24:10 -05:00
rbtree.c Update copyright for 2026 2026-01-01 13:24:10 -05:00
README Correct list of files in src/backend/lib/README 2025-06-27 09:31:23 +09:00

This directory contains a general purpose data structures, for use anywhere
in the backend:

bipartite_match.c - Hopcroft-Karp maximum cardinality algorithm for bipartite graphs

bloomfilter.c - probabilistic, space-efficient set membership testing

dshash.c - concurrent hash tables backed by dynamic shared memory areas

hyperloglog.c - a streaming cardinality estimator

ilist.c - single and double-linked lists

integerset.c - a data structure for holding large set of integers

knapsack.c - knapsack problem solver

pairingheap.c - a pairing heap

rbtree.c - a red-black tree


Aside from the inherent characteristics of the data structures, there are a
few practical differences between the binary heap and the pairing heap. The
binary heap is fully allocated at creation, and cannot be expanded beyond the
allocated size. The pairing heap on the other hand has no inherent maximum
size, but the caller needs to allocate each element being stored in the heap,
while the binary heap works with plain Datums or pointers.

The linked-lists in ilist.c can be embedded directly into other structs, as
opposed to the List interface in nodes/pg_list.h.