postgresql/src/backend
Masahiko Sawada efb8acc0d0 Replace binaryheap + index with pairingheap in reorderbuffer.c
A pairing heap can perform the same operations as the binary heap +
index, with as good or better algorithmic complexity, and that's an
existing data structure so that we don't need to invent anything new
compared to v16. This commit makes the new binaryheap functionality
that was added in commits b840508644 and bcb14f4abc unnecessary, but
they will be reverted separately.

Remove the optimization to only build and maintain the heap when the
amount of memory used is close to the limit, becuase the bookkeeping
overhead with the pairing heap seems to be small enough that it
doesn't matter in practice.

Reported-by: Jeff Davis
Author: Heikki Linnakangas
Reviewed-by: Michael Paquier, Hayato Kuroda, Masahiko Sawada
Discussion: https://postgr.es/m/12747c15811d94efcc5cda72d6b35c80d7bf3443.camel%40j-davis.com
2024-04-11 17:04:38 +09:00
..
access Fix inconsistency with replay of hash squeeze record for clean buffers 2024-04-11 09:20:51 +09:00
archive Add built-in ERROR handling for archive callbacks. 2024-04-02 22:28:11 -05:00
backup Fix grammar. 2024-04-11 14:35:42 +12:00
bootstrap Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
catalog JSON_TABLE: Add support for NESTED paths and columns 2024-04-08 16:14:13 +09:00
commands Checks for ALTER TABLE ... SPLIT/MERGE PARTITIONS ... commands 2024-04-10 01:47:21 +03:00
executor Change BitmapAdjustPrefetchIterator to accept BlockNumber 2024-04-07 01:25:15 +02:00
foreign Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
jit Fix illegal attribute propagation in LLVM JIT. 2024-04-10 12:13:46 +12:00
lib Use the pairing heap instead of a flat array for LSN replay waiters 2024-04-03 18:15:41 +03:00
libpq Fix check for 'outlen' return from SSL_select_next_proto() 2024-04-08 05:03:17 +03:00
main Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
nodes revert: Transform OR clauses to ANY expression 2024-04-10 02:28:09 +03:00
optimizer revert: Transform OR clauses to ANY expression 2024-04-10 02:28:09 +03:00
parser Checks for ALTER TABLE ... SPLIT/MERGE PARTITIONS ... commands 2024-04-10 01:47:21 +03:00
partitioning Fix some grammer errors from error messages and codes comments 2024-04-08 14:39:41 +03:00
po Update copyright for 2024 2024-01-03 20:49:05 -05:00
port Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
postmaster Fill CommonRdOptions with default values in extract_autovac_opts() 2024-04-08 12:18:23 +03:00
regex Support C.UTF-8 locale in the new builtin collation provider. 2024-03-19 15:24:41 -07:00
replication Replace binaryheap + index with pairingheap in reorderbuffer.c 2024-04-11 17:04:38 +09:00
rewrite Add RETURNING support to MERGE. 2024-03-17 13:58:59 +00:00
snowball Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
statistics Make stxstattarget nullable 2024-03-17 12:26:26 +01:00
storage Add pg_buffercache_evict() function for testing. 2024-04-08 16:23:40 +12:00
tcop Custom reloptions for table AM 2024-04-08 11:23:28 +03:00
tsearch Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
utils Fixup various StringInfo function usages 2024-04-10 11:53:32 +12:00
.gitignore
Makefile Rework lwlocknames.txt to become lwlocklist.h 2024-03-20 11:55:20 +01:00
common.mk Blind attempt to fix LLVM dependency in the backend 2022-09-15 10:53:48 +07:00
meson.build Remove AIX support 2024-02-28 15:17:23 +04:00
nls.mk Remove distprep 2023-11-06 15:18:04 +01:00