pgsql: Resurrect the "last ditch" code path in join_search_one_level().

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Resurrect the "last ditch" code path in join_search_one_level().
Date: 2012-08-15 04:08:58
Message-ID: E1T1Uug-0000Qg-W9@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Resurrect the "last ditch" code path in join_search_one_level().

This essentially reverts commit e54b10a62db2991235fe800c629baef4531a6d67,
in which I'd decided that the "last ditch" join logic was useless. The
folly of that is now exposed by a report from Pavel Stehule: although the
function should always find at least one join in a self-contained join
problem, it can still fail to do so in a sub-problem created by artificial
from_collapse_limit or join_collapse_limit constraints. Adjust the
comments to describe this, and simplify the code a bit to match the new
coding of the earlier loop in the function.

I'm not terribly happy about this: I still subscribe to the opinion stated
in the previous commit message that the "last ditch" code can obscure logic
bugs elsewhere. But the alternative seems to be to complicate the earlier
tests for does-this-relation-have-a-join-clause to the point where they can
tell whether the join clauses link outside the current join sub-problem.
And that looks messy, slow, and possibly a source of bugs in itself.
In any case, now is not the time to be inserting experimental code into
9.2, so let's just go back to the time-tested solution.

Branch
------
REL9_2_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/43ccd309cbf4e9b09ac59130c9b31a1c58a9ff2d

Modified Files
--------------
src/backend/optimizer/path/joinrels.c | 71 ++++++++++++++++++++++++++-------
1 files changed, 56 insertions(+), 15 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2012-08-15 04:15:22 Re: [COMMITTERS] pgsql: Revert "commit_delay" change; just add comment that we don't hav
Previous Message Bruce Momjian 2012-08-15 03:25:33 pgsql: Add more limited large object trigger example.