postgresql/src/backend/utils
Tom Lane a7cd853b75 Change post-rewriter representation of dropped columns in joinaliasvars.
It's possible to drop a column from an input table of a JOIN clause in a
view, if that column is nowhere actually referenced in the view.  But it
will still be there in the JOIN clause's joinaliasvars list.  We used to
replace such entries with NULL Const nodes, which is handy for generation
of RowExpr expansion of a whole-row reference to the view.  The trouble
with that is that it can't be distinguished from the situation after
subquery pull-up of a constant subquery output expression below the JOIN.
Instead, replace such joinaliasvars with null pointers (empty expression
trees), which can't be confused with pulled-up expressions.  expandRTE()
still emits the old convention, though, for convenience of RowExpr
generation and to reduce the risk of breaking extension code.

In HEAD and 9.3, this patch also fixes a problem with some new code in
ruleutils.c that was failing to cope with implicitly-casted joinaliasvars
entries, as per recent report from Feike Steenbergen.  That oversight was
because of an inadequate description of the data structure in parsenodes.h,
which I've now corrected.  There were some pre-existing oversights of the
same ilk elsewhere, which I believe are now all fixed.
2013-07-23 16:23:45 -04:00
..
adt Change post-rewriter representation of dropped columns in joinaliasvars. 2013-07-23 16:23:45 -04:00
cache Silence compiler warning on an unused variable 2013-07-22 13:15:13 -04:00
error Renovate display of non-ASCII messages on Windows. 2013-06-26 11:17:33 -04:00
fmgr Add infrastructure for storing a VARIADIC ANY function's VARIADIC flag. 2013-01-21 20:26:15 -05:00
hash pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
init Add session_preload_libraries configuration parameter 2013-07-12 21:23:50 -04:00
mb Add checks for valid multibyte character length in UtfToLocal, LocalToUtf. 2013-07-18 21:55:38 -04:00
misc Add session_preload_libraries configuration parameter 2013-07-12 21:23:50 -04:00
mmgr Permit super-MaxAllocSize allocations with MemoryContextAllocHuge(). 2013-06-27 14:53:57 -04:00
resowner pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
sort Ensure 64bit arithmetic when calculating tapeSpace 2013-07-14 16:26:16 -04:00
time Adjust HeapTupleSatisfies* routines to take a HeapTuple. 2013-07-22 13:38:44 -04:00
.gitignore Avoid maintaining three separate copies of the error codes list. 2011-02-03 22:32:49 -05:00
errcodes.txt Update copyrights for 2013 2013-01-01 17:15:01 -05:00
Gen_dummy_probes.sed Update copyrights for 2013 2013-01-01 17:15:01 -05:00
Gen_fmgrtab.pl Update copyrights for 2013 2013-01-01 17:15:01 -05:00
generate-errcodes.pl Update copyrights for 2013 2013-01-01 17:15:01 -05:00
Makefile Make handling of errcodes.h more consistent with other generated headers. 2011-02-04 09:29:10 -05:00
probes.d Update copyrights for 2013 2013-01-01 17:15:01 -05:00