postgresql/src/include
Tom Lane 0d4913509b Fix eclass_useful_for_merging to give valid results for appendrel children.
Formerly, this function would always return "true" for an appendrel child
relation, because it would think that the appendrel parent was a potential
join target for the child.  In principle that should only lead to some
inefficiency in planning, but fuzz testing by Andreas Seltenreich disclosed
that it could lead to "could not find pathkey item to sort" planner errors
in odd corner cases.  Specifically, we would think that all columns of a
child table's multicolumn index were interesting pathkeys, causing us to
generate a MergeAppend path that sorts by all the columns.  However, if any
of those columns weren't actually used above the level of the appendrel,
they would not get added to that rel's targetlist, which would result in
being unable to resolve the MergeAppend's sort keys against its targetlist
during createplan.c.

Backpatch to 9.3.  In older versions, columns of an appendrel get added
to its targetlist even if they're not mentioned above the scan level,
so that the failure doesn't occur.  It might be worth back-patching this
fix to older versions anyway, but I'll refrain for the moment.
2015-08-06 20:14:37 -04:00
..
access Fix handling of all-zero pages in SP-GiST vacuum. 2015-07-27 12:32:30 +03:00
bootstrap Fix off-by-one loop count in MapArrayTypeName, and get rid of static array. 2014-12-16 15:35:40 -05:00
catalog Fix assorted oversights in range selectivity estimation. 2015-01-30 12:30:43 -05:00
commands Improve performance of EXPLAIN with large range tables. 2015-01-15 13:18:19 -05:00
common Add pg_string_endswith as the start of a string helper library in src/common. 2015-01-03 20:54:13 +01:00
datatype Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
executor Ensure that whole-row Vars produce nonempty column names. 2014-11-10 15:21:20 -05:00
foreign Improve updatability checking for views and foreign tables. 2013-06-12 17:53:33 -04:00
lib Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
libpq Fix incorrect order of lock file removal and failure to close() sockets. 2015-08-02 14:54:44 -04:00
mb Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
nodes Fix planner's cost estimation for SEMI/ANTI joins with inner indexscans. 2015-06-03 11:58:47 -04:00
optimizer Fix eclass_useful_for_merging to give valid results for appendrel children. 2015-08-06 20:14:37 -04:00
parser Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
port Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
portability Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
postmaster Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
regex Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
replication Make SyncRepWakeQueue to a static function 2015-03-26 10:39:18 +09:00
rewrite Avoid getting more than AccessShareLock when deparsing a query. 2014-03-06 19:31:09 -05:00
snowball Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
storage Fix fsync-at-startup code to not treat errors as fatal. 2015-05-28 17:33:03 -04:00
tcop Be more careful to not lose sync in the FE/BE protocol. 2015-02-02 17:09:40 +02:00
tsearch Predict integer overflow to avoid buffer overruns. 2014-02-17 09:33:32 -05:00
utils Fix bogus "out of memory" reports in tuplestore.c. 2015-08-04 18:18:46 -04: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 Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
fmgr.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
funcapi.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
getaddrinfo.h Fix assorted issues in client host name lookup. 2014-04-02 17:11:27 -04:00
getopt_long.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
Makefile Install headers from the new src/include/common subdirectory. 2013-02-26 15:27:30 -05:00
miscadmin.h Be more careful to not lose sync in the FE/BE protocol. 2015-02-02 17:09:40 +02:00
pg_config.h.in On Darwin, detect and report a multithreaded postmaster. 2015-01-07 22:40:40 -05:00
pg_config.h.win32 Stamp 9.3.9. 2015-06-09 15:31:32 -04: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 Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
pg_trace.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
pgstat.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
pgtar.h Move tar function headers to pgtar.h 2013-01-02 20:34:08 +01:00
pgtime.h Support timezone abbreviations that sometimes change. 2014-10-16 15:22:17 -04:00
port.h Revert error-throwing wrappers for the printf family of functions. 2015-05-19 18:16:58 -04:00
postgres.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
postgres_ext.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
postgres_fe.h Create libpgcommon, and move pg_malloc et al to it 2013-02-12 11:21:05 -03:00
rusagestub.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
windowapi.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00