postgresql/contrib/bloom
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
..
expected Remove incidental md5() function uses from several tests 2023-07-04 14:31:57 +02:00
sql Remove incidental md5() function uses from several tests 2023-07-04 14:31:57 +02:00
t Remove incidental md5() function uses from several tests 2023-07-04 14:31:57 +02:00
.gitignore Bloom index contrib module 2016-04-01 16:42:24 +03:00
Makefile Re-enable contrib/bloom's TAP tests. 2021-09-27 18:48:01 -04:00
blcost.c Update copyright for 2023 2023-01-02 15:00:37 -05:00
blinsert.c Use the buffer cache when initializing an unlogged index. 2023-08-23 17:21:31 +03:00
bloom--1.0.sql Minor fixes in contrib installation scripts. 2016-06-14 10:47:06 -04:00
bloom.control Bloom index contrib module 2016-04-01 16:42:24 +03:00
bloom.h Use the buffer cache when initializing an unlogged index. 2023-08-23 17:21:31 +03:00
blscan.c Remove the "snapshot too old" feature. 2023-09-05 19:53:43 +12:00
blutils.c Reuse BrinDesc and BrinRevmap in brininsert 2023-11-25 20:27:28 +01:00
blvacuum.c Update copyright for 2023 2023-01-02 15:00:37 -05:00
blvalidate.c Update copyright for 2023 2023-01-02 15:00:37 -05:00
meson.build Update copyright for 2023 2023-01-02 15:00:37 -05:00