postgresql/src/backend/commands
Robert Haas e7cb7ee145 Allow FDWs and custom scan providers to replace joins with scans.
Foreign data wrappers can use this capability for so-called "join
pushdown"; that is, instead of executing two separate foreign scans
and then joining the results locally, they can generate a path which
performs the join on the remote server and then is scanned locally.
This commit does not extend postgres_fdw to take advantage of this
capability; it just provides the infrastructure.

Custom scan providers can use this in a similar way.  Previously,
it was only possible for a custom scan provider to scan a single
relation.  Now, it can scan an entire join tree, provided of course
that it knows how to produce the same results that the join would
have produced if executed normally.

KaiGai Kohei, reviewed by Shigeru Hanada, Ashutosh Bapat, and me.
2015-05-01 08:50:35 -04:00
..
aggregatecmds.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
alter.c Remove variable shadowing 2015-04-07 17:14:00 -03:00
analyze.c Add log_min_autovacuum_duration per-table option 2015-04-03 11:55:50 -03:00
async.c Use FLEXIBLE_ARRAY_MEMBER in a number of other places. 2015-02-21 16:12:14 -05:00
cluster.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
collationcmds.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
comment.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
constraint.c Update copyright for 2015 2015-01-06 11:43:47 -05:00
conversioncmds.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
copy.c Create an infrastructure for parallel computation in PostgreSQL. 2015-04-30 15:02:14 -04:00
createas.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
dbcommands.c Move WAL-related definitions from dbcommands.h to separate header file. 2015-03-09 15:50:49 +02:00
define.c Update copyright for 2015 2015-01-06 11:43:47 -05:00
discard.c Update copyright for 2015 2015-01-06 11:43:47 -05:00
dropcmds.c Add transforms feature 2015-04-26 10:33:14 -04:00
event_trigger.c Add transforms feature 2015-04-26 10:33:14 -04:00
explain.c Allow FDWs and custom scan providers to replace joins with scans. 2015-05-01 08:50:35 -04:00
extension.c Allow CURRENT/SESSION_USER to be used in certain commands 2015-03-09 15:41:54 -03:00
foreigncmds.c Allow CURRENT/SESSION_USER to be used in certain commands 2015-03-09 15:41:54 -03:00
functioncmds.c Add transforms feature 2015-04-26 10:33:14 -04:00
indexcmds.c Fix various typos and grammar errors in comments. 2015-04-26 18:42:31 +02:00
lockcmds.c Update copyright for 2015 2015-01-06 11:43:47 -05:00
Makefile Row-Level Security Policies (RLS) 2014-09-19 11:18:35 -04:00
matview.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
opclasscmds.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
operatorcmds.c Allow named parameters to be specified using => in addition to := 2015-03-10 11:09:41 -04:00
policy.c Allow CURRENT/SESSION_USER to be used in certain commands 2015-03-09 15:41:54 -03:00
portalcmds.c Update copyright for 2015 2015-01-06 11:43:47 -05:00
prepare.c Use FLEXIBLE_ARRAY_MEMBER in a bunch more places. 2015-02-20 00:11:42 -05:00
proclang.c Add transforms feature 2015-04-26 10:33:14 -04:00
schemacmds.c Allow CURRENT/SESSION_USER to be used in certain commands 2015-03-09 15:41:54 -03:00
seclabel.c Change many routines to return ObjectAddress rather than OID 2015-03-03 14:10:50 -03:00
sequence.c Create an infrastructure for parallel computation in PostgreSQL. 2015-04-30 15:02:14 -04:00
tablecmds.c Fix ATSimpleRecursion() to allow recursion from a foreign table. 2015-04-28 12:25:00 -07:00
tablespace.c Warn about tablespace creation in PGDATA 2015-04-28 17:35:12 -04:00
trigger.c Reduce lock levels of some trigger DDL and add FKs 2015-04-05 11:37:08 -04:00
tsearchcmds.c Add OID output argument to DefineTSConfiguration 2015-03-25 15:57:08 -03:00
typecmds.c Add transforms feature 2015-04-26 10:33:14 -04:00
user.c Integrate pg_upgrade_support module into backend 2015-04-14 19:26:37 -04:00
vacuum.c Add log_min_autovacuum_duration per-table option 2015-04-03 11:55:50 -03:00
vacuumlazy.c Add log_min_autovacuum_duration per-table option 2015-04-03 11:55:50 -03:00
variable.c Update copyright for 2015 2015-01-06 11:43:47 -05:00
view.c Require non-NULL pstate for all addRangeTableEntryFor* functions. 2015-03-11 15:26:43 -04:00