postgresql/contrib
Tom Lane de1d042f59 Support index-only scans in contrib/cube and contrib/seg GiST indexes.
To do this, we only have to remove the compress and decompress support
functions, which have never done anything more than detoasting.
In the wake of commit d3a4f89d8, this results in automatically enabling
index-only scans, since the core code will now know that the stored
representation is the same as the original data (up to detoasting).

The only exciting part of this is that ALTER OPERATOR FAMILY lacks
a way to drop a support function that was declared as being part of
an opclass rather than being loose in the family.  For the moment,
we'll hack our way to a solution with a manual update of the pg_depend
entry type, which is what distinguishes the two cases.  Perhaps
someday it'll be worth providing a cleaner way to do that, but for
now it seems like a very niche problem.

Note that the underlying C functions remain, to support use of the shared
libraries with older versions of the modules' SQL declarations.  Someday
we may be able to remove them, but not soon.

Andrey Borodin, reviewed by me

Discussion: https://postgr.es/m/D0F53A05-4F4A-4DEC-8339-3C069FA0EE11@yandex-team.ru
2017-11-20 20:25:18 -05:00
..
adminpack adminpack: Add test suite 2017-09-14 22:22:59 -04:00
amcheck Minor code-cleanliness improvements for btree. 2017-09-18 16:36:28 -04:00
auth_delay Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
auto_explain Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
bloom Tighten test in contrib/bloom/t/001_wal.pl. 2017-11-10 12:30:01 -05:00
btree_gin Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
btree_gist Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
citext Disable multi-byte citext tests 2017-09-19 15:31:37 -04:00
cube Support index-only scans in contrib/cube and contrib/seg GiST indexes. 2017-11-20 20:25:18 -05:00
dblink Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
dict_int Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
dict_xsyn Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
earthdistance Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
file_fdw Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
fuzzystrmatch Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
hstore Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
hstore_plperl Make DatumGetFoo/PG_GETARG_FOO/PG_RETURN_FOO macro names more consistent. 2017-09-18 15:21:23 -04:00
hstore_plpython Consistently catch errors from Python _New() functions 2017-11-18 13:39:53 -05:00
intagg Schema-qualify some references to regprocedure. 2016-06-10 10:41:58 -04:00
intarray Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
isn isn: Fix debug code 2017-09-14 22:23:00 -04:00
lo lo: Add test suite 2017-09-14 22:22:59 -04:00
ltree Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
ltree_plpython Consistently catch errors from Python _New() functions 2017-11-18 13:39:53 -05:00
oid2name Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
pageinspect Change tupledesc->attrs[n] to TupleDescAttr(tupledesc, n). 2017-08-20 11:19:07 -07:00
passwordcheck Simplify new test suite handling of passwordcheck 2017-11-02 12:57:04 -04:00
pg_buffercache Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
pg_freespacemap Default monitoring roles 2017-03-30 14:18:53 -04:00
pg_prewarm Add background worker type 2017-09-29 11:08:24 -04:00
pg_standby Fix assorted infelicities in new SetWALSegSize() function. 2017-09-24 12:05:06 -04:00
pg_stat_statements pg_stat_statements: Add a comment about the dangers of padding bytes. 2017-10-20 09:44:03 -04:00
pg_trgm Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
pg_visibility Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
pgcrypto Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
pgrowlocks Teach pgrowlocks to check relkind before scanning 2017-06-21 23:19:13 -04:00
pgstattuple Minor code-cleanliness improvements for btree. 2017-09-18 16:36:28 -04:00
postgres_fdw Basic partition-wise join functionality. 2017-10-06 11:11:10 -04:00
seg Support index-only scans in contrib/cube and contrib/seg GiST indexes. 2017-11-20 20:25:18 -05:00
sepgsql Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
spi Document and use SPI_result_code_string() 2017-10-04 22:14:21 -04:00
sslinfo Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
start-scripts Remove contrib/start-scripts/osx/. 2017-11-17 12:53:20 -05:00
tablefunc Change tupledesc->attrs[n] to TupleDescAttr(tupledesc, n). 2017-08-20 11:19:07 -07:00
tcn Change tupledesc->attrs[n] to TupleDescAttr(tupledesc, n). 2017-08-20 11:19:07 -07:00
test_decoding Fix crash when logical decoding is invoked from a PL function. 2017-10-06 19:18:58 -04:00
tsm_system_rows Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
tsm_system_time Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
unaccent Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
uuid-ossp Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
vacuumlo Initial pgindent run with pg_bsd_indent version 2.0. 2017-06-21 14:39:04 -04:00
xml2 Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
Makefile Remove contrib/chkpass 2017-09-22 11:49:48 -04: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

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.