postgresql/src/include
Tom Lane 68fa28f771 Postpone extParam/allParam calculations until the very end of planning.
Until now we computed these Param ID sets at the end of subquery_planner,
but that approach depends on subquery_planner returning a concrete Plan
tree.  We would like to switch over to returning one or more Paths for a
subquery, and in that representation the necessary details aren't fully
fleshed out (not to mention that we don't really want to do this work for
Paths that end up getting discarded).  Hence, refactor so that we can
compute the param ID sets at the end of planning, just before
set_plan_references is run.

The main change necessary to make this work is that we need to capture
the set of outer-level Param IDs available to the current query level
before exiting subquery_planner, since the outer levels' plan_params lists
are transient.  (That's not going to pose a problem for returning Paths,
since all the work involved in producing that data is part of expression
preprocessing, which will continue to happen before Paths are produced.)
On the plus side, this change gets rid of several existing kluges.

Eventually I'd like to get rid of SS_finalize_plan altogether in favor of
doing this work during set_plan_references, but that will require some
complex rejiggering because SS_finalize_plan needs to visit subplans and
initplans before the main plan.  So leave that idea for another day.
2015-08-11 23:48:37 -04:00
..
access Don't include low level locking code from frontend code. 2015-08-07 15:10:56 +02:00
bootstrap pgindent run for 9.5 2015-05-23 21:35:49 -04:00
catalog Allow pg_create_physical_replication_slot() to reserve WAL. 2015-08-11 12:34:31 +02:00
commands Disallow converting a table to a view if row security is present. 2015-07-28 16:24:01 -07:00
common pgindent run for 9.5 2015-05-23 21:35:49 -04:00
datatype Define integer limits independently from the system definitions. 2015-04-02 17:43:35 +02:00
executor Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
foreign Add support for doing late row locking in FDWs. 2015-05-12 14:10:17 -04:00
lib Rely on inline functions even if that causes warnings in older compilers. 2015-08-05 18:19:52 +02:00
libpq Fix incorrect order of lock file removal and failure to close() sockets. 2015-08-02 14:55:03 -04:00
mb Teach UtfToLocal/LocalToUtf to support algorithmic encoding conversions. 2015-05-14 22:27:12 -04:00
nodes Postpone extParam/allParam calculations until the very end of planning. 2015-08-11 23:48:37 -04:00
optimizer Postpone extParam/allParam calculations until the very end of planning. 2015-08-11 23:48:37 -04:00
parser Share transition state between different aggregates when possible. 2015-08-04 17:53:10 +03:00
port Attempt to work around a 32bit xlc compiler bug from a different place. 2015-08-08 01:19:02 +02:00
portability Use mmap MAP_NOSYNC option to limit shared memory writes 2015-03-21 22:06:19 -04:00
postmaster pgindent run for 9.5 2015-05-23 21:35:49 -04:00
regex Add a bit more commentary about regex's colormap tree data structure. 2015-05-24 12:40:38 -04:00
replication Don't include rel.h when relcache.h is sufficient 2015-08-11 13:03:14 -03:00
rewrite pgindent run for 9.5 2015-05-23 21:35:49 -04:00
snowball Update copyright for 2015 2015-01-06 11:43:47 -05:00
storage Accept alternate spellings of __sparcv7 and __sparcv8. 2015-08-10 17:34:51 -04:00
tcop pgindent run for 9.5 2015-05-23 21:35:49 -04:00
tsearch Fix statically allocated struct with FLEXIBLE_ARRAY_MEMBER member. 2015-02-20 17:50:18 -05:00
utils Rely on inline functions even if that causes warnings in older compilers. 2015-08-05 18:19:52 +02:00
.gitignore Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
c.h Attempt to work around a 32bit xlc compiler bug from a different place. 2015-08-08 01:19:02 +02:00
fmgr.h Fix comment in fmgr.h to refer to actual function used. 2015-06-15 23:21:03 -04:00
funcapi.h pgindent run for 9.5 2015-05-23 21:35:49 -04:00
getaddrinfo.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
getopt_long.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
Makefile Install all headers for the new atomics API. 2014-10-02 16:52:21 +02:00
miscadmin.h Plug RLS related information leak in pg_stats view. 2015-07-28 13:21:22 -07:00
pg_config.h.in Rely on inline functions even if that causes warnings in older compilers. 2015-08-05 18:19:52 +02:00
pg_config.h.win32 Rely on inline functions even if that causes warnings in older compilers. 2015-08-05 18:19:52 +02:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_ext.h.win32 Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Define integer limits independently from the system definitions. 2015-04-02 17:43:35 +02:00
pg_getopt.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
pg_trace.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
pgstat.h pgindent run for 9.5 2015-05-23 21:35:49 -04:00
pgtar.h Error when creating names too long for tar format 2015-02-24 13:41:07 -05:00
pgtime.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
port.h Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
postgres.h Support "expanded" objects, particularly arrays, for better performance. 2015-05-14 12:08:49 -04:00
postgres_ext.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
postgres_fe.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
rusagestub.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
windowapi.h Update copyright for 2015 2015-01-06 11:43:47 -05:00