postgresql/contrib
Robert Haas 7a39b5e4d1 Abstract logic to allow for multiple kinds of child rels.
Currently, the only type of child relation is an "other member rel",
which is the child of a baserel, but in the future joins and even
upper relations may have child rels.  To facilitate that, introduce
macros that test to test for particular RelOptKind values, and use
them in various places where they help to clarify the sense of a test.
(For example, a test may allow RELOPT_OTHER_MEMBER_REL either because
it intends to allow child rels, or because it intends to allow simple
rels.)

Also, remove find_childrel_top_parent, which will not work for a
child rel that is not a baserel.  Instead, add a new RelOptInfo
member top_parent_relids to track the same kind of information in a
more generic manner.

Ashutosh Bapat, slightly tweaked by me.  Review and testing of the
patch set from which this was taken by Rajkumar Raghuwanshi and Rafia
Sabih.

Discussion: http://postgr.es/m/CA+TgmoagTnF2yqR3PT2rv=om=wJiZ4-A+ATwdnriTGku1CLYxA@mail.gmail.com
2017-04-03 22:41:31 -04:00
..
adminpack Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
amcheck amcheck: Harden tests against concurrent autovacuums. 2017-03-14 13:07:38 -07:00
auth_delay Consistently declare timestamp variables as TimestampTz. 2017-02-23 15:57:08 -05:00
auto_explain Allow for parallel execution whenever ExecutorRun() is done only once. 2017-03-23 13:14:36 -04:00
bloom Add optimizer and executor support for parallel index scans. 2017-02-15 13:53:24 -05:00
btree_gin Add btree_gin support for enum types 2017-03-21 11:04:17 -04:00
btree_gist Add btree_gist support for enum types. 2017-03-21 10:43:27 -04:00
chkpass Further cleanup from the strong-random patch. 2016-12-12 11:55:32 +02:00
citext Move some things from builtins.h to new header files 2017-01-20 20:29:53 -05:00
cube Fix typos in comments. 2017-02-06 11:33:58 +02:00
dblink dblink: Fix error reporting 2017-03-28 11:08:38 -04:00
dict_int Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
dict_xsyn Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
earthdistance Remove support for version-0 calling conventions. 2017-03-30 06:25:46 -07:00
file_fdw Logical replication support for initial data copy 2017-03-23 08:55:37 -04:00
fuzzystrmatch Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
hstore Assume deconstruct_array() outputs are untoasted. 2017-03-12 19:35:31 -04:00
hstore_plperl Code review for avoidance of direct cross-module links. 2017-02-02 11:21:16 -05:00
hstore_plpython Drop support for Python 2.3 2017-02-21 09:49:22 -05:00
intagg Schema-qualify some references to regprocedure. 2016-06-10 10:41:58 -04:00
intarray Clean up Perl code according to perlcritic 2017-03-27 08:18:22 -04:00
isn Fix typos in comments. 2017-02-06 11:33:58 +02:00
lo Move atooid() definition to a central place 2017-03-01 11:55:28 -05:00
ltree Spelling fixes 2017-03-14 12:58:39 -04:00
ltree_plpython Code review for avoidance of direct cross-module links. 2017-02-02 11:21:16 -05:00
oid2name Fix hard-coded relkind constants in assorted other files. 2017-03-09 23:36:52 -05:00
pageinspect Remove direct uses of ItemPointer.{ip_blkid,ip_posid} 2017-03-28 19:02:23 -03:00
passwordcheck Replace isMD5() with a more future-proof way to check if pw is encrypted. 2017-02-01 13:11:37 +02:00
pg_buffercache Default monitoring roles 2017-03-30 14:18:53 -04:00
pg_freespacemap Default monitoring roles 2017-03-30 14:18:53 -04:00
pg_prewarm Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
pg_standby Fix typos in comments. 2017-02-06 11:33:58 +02:00
pg_stat_statements Add infrastructure to support EphemeralNamedRelation references. 2017-03-31 23:17:18 -05:00
pg_trgm Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
pg_visibility Default monitoring roles 2017-03-30 14:18:53 -04:00
pgcrypto Spelling fixes in code comments 2017-03-14 12:58:39 -04:00
pgrowlocks Fix pgrowlocks minor coding oversight 2017-03-30 14:53:07 -04:00
pgstattuple Default monitoring roles 2017-03-30 14:18:53 -04:00
postgres_fdw Abstract logic to allow for multiple kinds of child rels. 2017-04-03 22:41:31 -04:00
seg Move contrib/seg to only use V1 calling conventions. 2017-03-30 06:25:46 -07:00
sepgsql Try to fix breakage of sepgsql hooks by ENR patch. 2017-04-01 00:10:12 -05:00
spi Spelling fixes in code comments 2017-03-14 12:58:39 -04:00
sslinfo Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
start-scripts Fix typos in comments. 2017-02-06 11:33:58 +02:00
tablefunc Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
tcn Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
test_decoding Improve isolation tests infrastructure. 2017-03-14 15:56:17 -07: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 Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
uuid-ossp Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
vacuumlo Fix hard-coded relkind constants in assorted other files. 2017-03-09 23:36:52 -05:00
xml2 Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
contrib-global.mk Respect TEMP_CONFIG when pg_regress_check and friends are called 2016-02-27 12:28:21 -05:00
Makefile Add amcheck extension to contrib. 2017-03-09 16:33:02 -08:00
README Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00

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.