postgresql/src/backend
Tom Lane 57af05af0e Fix planner to restore its previous level of intelligence about pushing
constants through full joins, as in

	select * from tenk1 a full join tenk1 b using (unique1)
	where unique1 = 42;

which should generate a fairly cheap plan where we apply the constraint
unique1 = 42 in each relation scan.  This had been broken by my patch of
2008-06-27, which is now reverted in favor of a more invasive but hopefully
less incorrect approach.  That patch was meant to prevent incorrect extraction
of OR'd indexclauses from OR conditions above an outer join.  To do that
correctly we need more information than the outerjoin_delay flag can provide,
so add a nullable_relids field to RestrictInfo that records exactly which
relations are nulled by outer joins that are underneath a particular qual
clause.  A side benefit is that we can make the test in create_or_index_quals
more specific: it is now smart enough to extract an OR'd indexclause into the
outer side of an outer join, even though it must not do so in the inner side.
The old coding couldn't distinguish these cases so it could not do either.
2009-04-16 20:42:28 +00:00
..
access Fix 'all at one page bug' in picksplit method of R-tree emulation. Add defense 2009-04-06 14:39:25 +00:00
bootstrap Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
catalog Repair a longstanding bug in CLUSTER and the rewriting variants of ALTER 2009-02-24 01:38:49 +00:00
commands In CREATE CONVERSION, test that the given function is a valid conversion 2009-02-27 16:35:31 +00:00
executor Fix an oversight in the support for storing/retrieving "minimal tuples" in 2009-03-30 04:09:09 +00:00
lib Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
libpq When we are in error recursion trouble, arrange to suppress translation and 2009-03-02 21:18:50 +00:00
main Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
nodes Fix planner to restore its previous level of intelligence about pushing 2009-04-16 20:42:28 +00:00
optimizer Fix planner to restore its previous level of intelligence about pushing 2009-04-16 20:42:28 +00:00
parser Defend against null input in analyze_requires_snapshot(), per report 2009-01-30 16:59:10 +00:00
po Translation updates 2009-03-12 13:19:06 +00:00
port Revert previous patch to put the shared memory segment on win32 2008-10-30 17:04:11 +00:00
postmaster Fix Windows-specific race condition in syslogger. This could've been 2009-03-18 08:44:52 +00:00
regex Fix assorted security-grade bugs in the regex engine. All of these problems 2008-01-03 20:47:55 +00:00
rewrite Fix more problems with rewriter failing to set Query.hasSubLinks when inserting 2008-09-24 16:52:53 +00:00
snowball Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
storage Fix a rare race condition when commit_siblings > 0 and a transaction commits 2009-03-31 05:18:39 +00:00
tcop Fix an oversight in my patch of a couple weeks ago that ensured a snapshot 2009-01-01 17:12:24 +00:00
tsearch Prevent recursion during parse of email-like string with multiple '@'. 2009-03-10 17:33:53 +00:00
utils Rewrite interval_hash() so that the hashcodes are equal for values that 2009-04-04 04:53:34 +00:00
Makefile Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
nls.mk Install a more robust solution for the problem of infinite error-processing 2008-10-27 19:37:29 +00:00