postgresql/src/test
Tom Lane 656b1e8cf3 Further fixes for degenerate outer join clauses.
Further testing revealed that commit f69b4b9495 was still a few
bricks shy of a load: minor tweaking of the previous test cases resulted
in the same wrong-outer-join-order problem coming back.  After study
I concluded that my previous changes in make_outerjoininfo() were just
accidentally masking the problem, and should be reverted in favor of
forcing syntactic join order whenever an upper outer join's predicate
doesn't mention a lower outer join's LHS.  This still allows the
chained-outer-joins style that is the normally optimizable case.

I also tightened things up some more in join_is_legal().  It seems to me
on review that what's really happening in the exception case where we
ignore a mismatched special join is that we're allowing the proposed join
to associate into the RHS of the outer join we're comparing it to.  As
such, we should *always* insist that the proposed join be a left join,
which eliminates a bunch of rather dubious argumentation.  The case where
we weren't enforcing that was the one that was already known buggy anyway
(it had a violatable Assert before the aforesaid commit) so it hardly
deserves a lot of deference.

Back-patch to all active branches, like the previous patch.  The added
regression test case failed in all branches back to 9.1, and I think it's
only an unrelated change in costing calculations that kept 9.0 from
choosing a broken plan.
2015-08-06 15:35:27 -04:00
..
examples Fix lo_export usage in example programs. 2012-10-08 21:18:57 -04:00
isolation Fix portability issue in isolationtester grammar. 2015-05-27 19:14:40 -04:00
locale Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
mb Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
performance Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
regress Further fixes for degenerate outer join clauses. 2015-08-06 15:35:27 -04:00
thread Check the return code of pthread_create(). Otherwise we go into an infinite 2011-05-27 12:55:02 +03:00
Makefile Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00