postgresql/contrib
Robert Haas 05d4cbf9b6 Increase width of RelFileNumbers from 32 bits to 56 bits.
RelFileNumbers are now assigned using a separate counter, instead of
being assigned from the OID counter. This counter never wraps around:
if all 2^56 possible RelFileNumbers are used, an internal error
occurs. As the cluster is limited to 2^64 total bytes of WAL, this
limitation should not cause a problem in practice.

If the counter were 64 bits wide rather than 56 bits wide, we would
need to increase the width of the BufferTag, which might adversely
impact buffer lookup performance. Also, this lets us use bigint for
pg_class.relfilenode and other places where these values are exposed
at the SQL level without worrying about overflow.

This should remove the need to keep "tombstone" files around until
the next checkpoint when relations are removed. We do that to keep
RelFileNumbers from being recycled, but now that won't happen
anyway. However, this patch doesn't actually change anything in
this area; it just makes it possible for a future patch to do so.

Dilip Kumar, based on an idea from Andres Freund, who also reviewed
some earlier versions of the patch. Further review and some
wordsmithing by me. Also reviewed at various points by Ashutosh
Sharma, Vignesh C, Amul Sul, Álvaro Herrera, and Tom Lane.

Discussion: http://postgr.es/m/CA+Tgmobp7+7kmi4gkq7Y+4AM9fTvL+O1oQ4-5gFTT+6Ng-dQ=g@mail.gmail.com
2022-09-27 13:25:21 -04:00
..
adminpack meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
amcheck Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
auth_delay meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
auto_explain meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
basebackup_to_shell meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
basic_archive meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
bloom meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
bool_plperl meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
btree_gin meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
btree_gist meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
citext meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
cube Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
dblink Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
dict_int meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
dict_xsyn meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
earthdistance meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
file_fdw meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
fuzzystrmatch Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
hstore meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
hstore_plperl meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
hstore_plpython meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
intagg meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
intarray Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
isn meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
jsonb_plperl meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
jsonb_plpython meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
lo meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
ltree Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
ltree_plpython meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
oid2name Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
old_snapshot meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pageinspect meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
passwordcheck meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pg_buffercache Increase width of RelFileNumbers from 32 bits to 56 bits. 2022-09-27 13:25:21 -04:00
pg_freespacemap meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pg_prewarm Increase width of RelFileNumbers from 32 bits to 56 bits. 2022-09-27 13:25:21 -04:00
pg_stat_statements Fix pg_stat_statements for MERGE 2022-09-27 10:44:42 +02:00
pg_surgery meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pg_trgm meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pg_visibility meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pg_walinspect Increase width of RelFileNumbers from 32 bits to 56 bits. 2022-09-27 13:25:21 -04:00
pgcrypto Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
pgrowlocks meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pgstattuple meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
postgres_fdw Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
seg Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
sepgsql meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
spi meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
sslinfo meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
start-scripts
tablefunc Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
tcn meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
test_decoding Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
tsm_system_rows meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
tsm_system_time meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
unaccent meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
uuid-ossp meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
vacuumlo meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
xml2 meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
contrib-global.mk
Makefile Add contrib/pg_walinspect. 2022-04-08 00:26:44 -07:00
meson.build meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07: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.