postgresql/src/include/access
Peter Geoghegan d088ba5a5a nbtree: Allocate new pages in separate function.
Split nbtree's _bt_getbuf function is two: code that read locks or write
locks existing pages remains in _bt_getbuf, while code that deals with
allocating new pages is moved to a new, dedicated function called
_bt_allocbuf.  This simplifies most _bt_getbuf callers, since it is no
longer necessary for them to pass a heaprel argument.  Many of the
changes to nbtree from commit 61b313e4 can be reverted.  This minimizes
the divergence between HEAD/PostgreSQL 16 and earlier release branches.

_bt_allocbuf replaces the previous nbtree idiom of passing P_NEW to
_bt_getbuf.  There are only 3 affected call sites, all of which continue
to pass a heaprel for recovery conflict purposes.  Note that nbtree's
use of P_NEW was superficial; nbtree never actually relied on the P_NEW
code paths in bufmgr.c, so this change is strictly mechanical.

GiST already took the same approach; it has a dedicated function for
allocating new pages called gistNewBuffer().  That factor allowed commit
61b313e4 to make much more targeted changes to GiST.

Author: Peter Geoghegan <pg@bowt.ie>
Reviewed-By: Heikki Linnakangas <hlinnaka@iki.fi>
Discussion: https://postgr.es/m/CAH2-Wz=8Z9qY58bjm_7TAHgtW6RzZ5Ke62q5emdCEy9BAzwhmg@mail.gmail.com
2023-06-10 14:08:25 -07:00
..
amapi.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
amvalidate.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
attmap.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
attnum.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
brin.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
brin_internal.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
brin_page.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
brin_pageops.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
brin_revmap.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
brin_tuple.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
brin_xlog.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
bufmask.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
clog.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
commit_ts.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
detoast.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
genam.h Move heaprel struct field next to index rel field. 2023-04-03 11:01:11 -07:00
generic_xlog.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
gin.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
gin_private.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
ginblock.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
ginxlog.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
gist.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
gist_private.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
gistscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
gistxlog.h Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
hash.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
hash_xlog.h Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
heapam.h Ignore BRIN indexes when checking for HOT updates 2023-03-20 11:02:42 +01:00
heapam_xlog.h Fix xl_heap_lock WAL record field's data type. 2023-04-11 14:07:54 -07:00
heaptoast.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
hio.h hio: Use ExtendBufferedRelBy() to extend tables more efficiently 2023-04-06 16:53:17 -07:00
htup.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
htup_details.h New header varatt.h split off from postgres.h 2023-01-10 05:54:36 +01:00
itup.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
multixact.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nbtree.h nbtree: Allocate new pages in separate function. 2023-06-10 14:08:25 -07:00
nbtxlog.h Fix incorrect comment about nbtree WAL record. 2023-04-17 09:58:18 -07:00
parallel.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
printsimple.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
printtup.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
relation.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
reloptions.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
relscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
rewriteheap.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
rmgr.h Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
rmgrdesc_utils.h Fix various typos 2023-04-18 13:23:23 +12:00
rmgrlist.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
sdir.h Remove dead NoMovementScanDirection code 2023-02-01 10:52:41 +13:00
session.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
skey.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
slru.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
spgist.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
spgist_private.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
spgxlog.h Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
stratnum.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
subtrans.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
syncscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
sysattr.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
table.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tableam.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
timeline.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
toast_compression.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
toast_helper.h Fix typos in comments 2023-05-02 12:23:08 +09:00
toast_internals.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
transam.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tsmapi.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tupconvert.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tupdesc.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tupdesc_details.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tupmacs.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
twophase.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
twophase_rmgr.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
valid.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
visibilitymap.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
visibilitymapdefs.h Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
xact.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xlog.h Allow logical decoding on standbys 2023-04-08 02:20:05 -07:00
xlog_internal.h Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
xlogarchive.h Revert refactoring of restore command code to shell_restore.c 2023-02-06 08:28:42 +09:00
xlogbackup.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xlogdefs.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xloginsert.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xlogprefetcher.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xlogreader.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
xlogrecord.h Add more protections in WAL record APIs against overflows 2023-04-07 10:10:17 +09:00
xlogrecovery.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xlogstats.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xlogutils.h Update copyright for 2023 2023-01-02 15:00:37 -05:00