postgresql/src/include/access
Tomas Vondra 41d2c6f952 Add missing index_insert_cleanup calls
The optimization for inserts into BRIN indexes added by c1ec02be1d
relies on a cache that needs to be explicitly released after calling
index_insert(). The commit however failed to invoke the cleanup in
validate_index(), which calls index_insert() indirectly through
table_index_validate_scan().

After inspecting index_insert() callers, it seems unique_key_recheck()
is missing the call too.

Fixed by adding the two missing index_insert_cleanup() calls.

The commit does two additional improvements. The aminsertcleanup()
signature is modified to have the index as the first argument, to make
it more like the other AM callbacks. And the aminsertcleanup() callback
is invoked even if the ii_AmCache is NULL, so that it can decide if the
cleanup is necessary.

Author: Alvaro Herrera, Tomas Vondra
Reported-by: Alexander Lakhin
Discussion: https://postgr.es/m/202401091043.e3nrqiad6gb7@alvherre.pgsql
2024-04-19 16:08:34 +02:00
..
amapi.h Add missing index_insert_cleanup calls 2024-04-19 16:08:34 +02:00
amvalidate.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
attmap.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
attnum.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
brin.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
brin_internal.h Add missing index_insert_cleanup calls 2024-04-19 16:08:34 +02:00
brin_page.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
brin_pageops.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
brin_revmap.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
brin_tuple.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
brin_xlog.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
bufmask.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
clog.h Improve performance of subsystems on top of SLRU 2024-02-28 17:05:31 +01:00
commit_ts.h Improve performance of subsystems on top of SLRU 2024-02-28 17:05:31 +01:00
detoast.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
genam.h Enhance nbtree ScalarArrayOp execution. 2024-04-06 11:47:10 -04:00
generic_xlog.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
gin.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
gin_private.h Use new overflow-safe integer comparison functions. 2024-02-16 14:05:36 -06:00
ginblock.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
ginxlog.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
gist.h Add temporal PRIMARY KEY and UNIQUE constraints 2024-01-24 16:34:37 +01:00
gist_private.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
gistscan.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
gistxlog.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
hash.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
hash_xlog.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
heapam.h revert: Generalize relation analyze in table AM interface 2024-04-16 13:14:20 +03:00
heapam_xlog.h Fix typos and duplicate words 2024-04-18 21:28:07 +02:00
heaptoast.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
hio.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
htup.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
htup_details.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
itup.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
multixact.h Improve performance of subsystems on top of SLRU 2024-02-28 17:05:31 +01:00
nbtree.h Fix nbtree posting list comment. 2024-04-16 11:20:41 -04:00
nbtxlog.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
parallel.h Remove unused ParallelWorkerInfo.pid field 2024-03-04 12:56:02 +02:00
printsimple.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
printtup.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
relation.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
reloptions.h Revert: Custom reloptions for table AM 2024-04-11 15:46:35 +03:00
relscan.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
rewriteheap.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
rmgr.h Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
rmgrdesc_utils.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
rmgrlist.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
sdir.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
sequence.h Introduce sequence_*() access functions 2024-02-26 16:04:59 +09:00
session.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
skey.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
slru.h Improve performance of subsystems on top of SLRU 2024-02-28 17:05:31 +01:00
spgist.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
spgist_private.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
spgxlog.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
stratnum.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
subtrans.h Improve performance of subsystems on top of SLRU 2024-02-28 17:05:31 +01:00
syncscan.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
sysattr.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
table.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
tableam.h revert: Generalize relation analyze in table AM interface 2024-04-16 13:14:20 +03:00
tidstore.h Use bump context for TID bitmaps stored by vacuum 2024-04-08 14:39:49 +07:00
timeline.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
toast_compression.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
toast_helper.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
toast_internals.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
transam.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
tsmapi.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
tupconvert.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
tupdesc.h Separate equalRowTypes() from equalTupleDescs() 2024-03-17 05:58:04 +01:00
tupdesc_details.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
tupmacs.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
twophase.h Replace BackendIds with 0-based ProcNumbers 2024-03-03 19:38:22 +02:00
twophase_rmgr.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
valid.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
visibilitymap.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
visibilitymapdefs.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xact.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlog.h Read WAL directly from WAL buffers. 2024-02-12 11:11:22 -08:00
xlog_internal.h Merge prune, freeze and vacuum WAL record formats 2024-03-25 14:59:58 +02:00
xlogarchive.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlogbackup.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlogdefs.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xloginsert.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlogprefetcher.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlogreader.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlogrecord.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlogrecovery.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlogstats.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
xlogutils.h Update copyright for 2024 2024-01-03 20:49:05 -05:00