postgresql/contrib
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
..
adminpack Use "data directory" not "current directory" in error messages. 2023-03-16 12:04:08 -04:00
amcheck amcheck: Distinguish interrupted page deletion from corruption. 2023-10-30 14:46:05 -07:00
auth_delay Fix copy-pasto in contrib/auth_delay/meson.build variable name. 2023-04-02 09:31:10 -07:00
auto_explain Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
basebackup_to_shell Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
basic_archive Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
bloom Reuse BrinDesc and BrinRevmap in brininsert 2023-11-25 20:27:28 +01:00
bool_plperl Update copyright for 2023 2023-01-02 15:00:37 -05:00
btree_gin Support +/- infinity in the interval data type. 2023-11-14 10:58:49 +00:00
btree_gist Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
citext citext: Allow tests to pass in OpenSSL FIPS mode 2023-11-07 07:58:14 +01:00
cube Remove distprep 2023-11-06 15:18:04 +01:00
dblink dblink: Replace WAIT_EVENT_EXTENSION with custom wait events 2023-10-05 10:23:22 +09:00
dict_int Update copyright for 2023 2023-01-02 15:00:37 -05:00
dict_xsyn Update copyright for 2023 2023-01-02 15:00:37 -05:00
earthdistance Doc: improve commentary about providing our own definitions of M_PI. 2023-01-08 16:25:33 -05:00
file_fdw Adjust file_fdw regression tests for acc95f29ef FREEZE commit 2023-11-13 14:44:39 -05:00
fuzzystrmatch Remove distprep 2023-11-06 15:18:04 +01:00
hstore Constify crc32_sz 2023-10-05 08:53:21 +02:00
hstore_plperl Update copyright for 2023 2023-01-02 15:00:37 -05:00
hstore_plpython In hstore_plpython, avoid crashing when return value isn't a mapping. 2023-04-27 11:55:06 -04:00
intagg Update copyright for 2023 2023-01-02 15:00:37 -05:00
intarray Fix another bug in parent page splitting during GiST index build. 2023-09-26 14:14:49 +03:00
isn Rework pg_input_error_message(), now renamed pg_input_error_info() 2023-02-28 08:04:13 +09:00
jsonb_plperl Update copyright for 2023 2023-01-02 15:00:37 -05:00
jsonb_plpython Update copyright for 2023 2023-01-02 15:00:37 -05:00
lo Update copyright for 2023 2023-01-02 15:00:37 -05:00
ltree Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
ltree_plpython Update copyright for 2023 2023-01-02 15:00:37 -05:00
oid2name Mark options as deprecated in usage output 2023-03-02 14:36:37 +01:00
pageinspect pageinspect: Fix gist_page_items() with included columns 2023-05-19 12:37:58 +09:00
passwordcheck Allow tests to pass in OpenSSL FIPS mode (rest) 2023-11-17 17:58:39 +01:00
pg_buffercache Add pg_buffercache_usage_counts() to contrib/pg_buffercache. 2023-04-07 14:25:53 -04:00
pg_freespacemap Update copyright for 2023 2023-01-02 15:00:37 -05:00
pg_prewarm Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
pg_stat_statements pg_stat_statements: Remove duplicated tests for SET statements 2023-11-09 10:04:31 +09:00
pg_surgery Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
pg_trgm Update contrib/trgm_regexp's memory management. 2023-04-08 22:09:17 +12:00
pg_visibility Update copyright for 2023 2023-01-02 15:00:37 -05:00
pg_walinspect During online checkpoints, insert XLOG_CHECKPOINT_REDO at redo point. 2023-10-19 14:47:29 -04:00
pgcrypto pgcrypto: Allow tests to pass in OpenSSL FIPS mode 2023-11-17 14:55:51 +01:00
pgrowlocks Adjust the order of the prechecks in pgrowlocks() 2023-10-31 16:42:08 +13:00
pgstattuple Diagnose !indisvalid in more SQL functions. 2023-10-30 14:46:05 -07:00
postgres_fdw Use ResourceOwner to track WaitEventSets. 2023-11-23 13:31:36 +02:00
seg Remove distprep 2023-11-06 15:18:04 +01:00
sepgsql meson: Fix missing dependency from install-quiet to sepgsql.sql 2023-11-17 16:29:48 -08:00
spi meson: Install missing example files 2023-11-09 15:10:43 +01:00
sslinfo Revert "Add notBefore and notAfter to SSL cert info display" 2023-07-20 17:18:12 +02:00
start-scripts Remove gratuitous references to postmaster program 2023-01-26 10:48:32 +01:00
tablefunc Update copyright for 2023 2023-01-02 15:00:37 -05:00
tcn Update copyright for 2023 2023-01-02 15:00:37 -05:00
test_decoding Add STREAM_START/STREAM_STOP for transactional messages during decoding. 2023-10-30 14:36:21 +05:30
tsm_system_rows Update copyright for 2023 2023-01-02 15:00:37 -05:00
tsm_system_time Update copyright for 2023 2023-01-02 15:00:37 -05:00
unaccent unaccent: Tweak value of PYTHON when building without Python support 2023-09-27 14:40:23 +09:00
uuid-ossp Allow tests to pass in OpenSSL FIPS mode (rest) 2023-11-17 17:58:39 +01:00
vacuumlo Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
xml2 Update copyright for 2023 2023-01-02 15:00:37 -05:00
Makefile Remove the "snapshot too old" feature. 2023-09-05 19:53:43 +12:00
README Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00
contrib-global.mk Respect TEMP_CONFIG when pg_regress_check and friends are called 2016-02-27 12:28:21 -05:00
meson.build meson: Install missing example files 2023-11-09 15:10:43 +01:00

README

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "make all" and "make
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories supply new user-defined functions, operators, or
types.  To make use of one of these modules, after you have installed
the code you need to register the new SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.