postgresql/src/include/access
Tomas Vondra c1ec02be1d Reuse BrinDesc and BrinRevmap in brininsert
The brininsert code used to initialize (and destroy) BrinDesc and
BrinRevmap for each tuple, which is not free. This patch initializes
these structures only once, and reuses them for all inserts in the same
command. The data is passed through indexInfo->ii_AmCache.

This also introduces an optional AM callback "aminsertcleanup" that
allows performing custom cleanup in case simply pfree-ing ii_AmCache is
not sufficient (which is the case when the cache contains TupleDesc,
Buffers, and so on).

Author: Soumyadeep Chakraborty
Reviewed-by: Alvaro Herrera, Matthias van de Meent, Tomas Vondra
Discussion: https://postgr.es/m/CAE-ML%2B9r2%3DaO1wwji1sBN9gvPz2xRAtFUGfnffpd0ZqyuzjamA%40mail.gmail.com
2023-11-25 20:27:28 +01:00
..
amapi.h Reuse BrinDesc and BrinRevmap in brininsert 2023-11-25 20:27:28 +01: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 Reuse BrinDesc and BrinRevmap in brininsert 2023-11-25 20:27:28 +01: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 Remove some more "snapshot too old" vestiges. 2023-09-08 17:12:12 +12: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 Reuse BrinDesc and BrinRevmap in brininsert 2023-11-25 20:27:28 +01: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 Add trailing commas to enum definitions 2023-10-26 09:20:54 +02: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 Add trailing commas to enum definitions 2023-10-26 09:20:54 +02: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 Add const to values and nulls arguments 2023-10-10 07:50:43 +02: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 Add trailing commas to enum definitions 2023-10-26 09:20:54 +02: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: Take number of prior relation extensions into account 2023-08-14 11:33:09 -07:00
htup.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
htup_details.h Add const to values and nulls arguments 2023-10-10 07:50:43 +02:00
itup.h Add const to values and nulls arguments 2023-10-10 07:50:43 +02:00
multixact.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
nbtree.h Skip checking of scan keys required for directional scan in B-tree 2023-10-06 10:40:51 +03: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 Add trailing commas to enum definitions 2023-10-26 09:20:54 +02: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
rmgrdesc_utils.h Add rmgrdesc README 2023-10-02 12:18:57 +03: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 Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
spgist.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
spgist_private.h Add const to values and nulls arguments 2023-10-10 07:50:43 +02: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 Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
timeline.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
toast_compression.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
toast_helper.h Add const to values and nulls arguments 2023-10-10 07:50:43 +02: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 Move BuildDescForRelation() from tupdesc.c to tablecmds.c 2023-10-05 16:20:46 +02: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 Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
xlog.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
xlog_internal.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02: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 Improve the naming in wal_sync_method code. 2023-10-13 15:16:45 -05:00
xloginsert.h Assert that buffers are marked dirty before XLogRegisterBuffer(). 2023-10-23 17:17:46 -07:00
xlogprefetcher.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
xlogreader.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
xlogrecord.h Correct assertion and comments about XLogRecordMaxSize. 2023-10-01 12:20:55 -07:00
xlogrecovery.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
xlogstats.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xlogutils.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00