diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-12-17 17:07:48 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-12-17 17:07:48 +0000 |
commit | 99e922a01db6d9ff7f68bea67ecfed62f2bad948 (patch) | |
tree | 6eca7560cdda87b8457280fb77303c22f4cdd039 /src/backend/optimizer/path/allpaths.c | |
parent | 9dddd242dd132e66b6f1654d0ea62cb485818f37 (diff) | |
download | postgresql-99e922a01db6d9ff7f68bea67ecfed62f2bad948.tar.gz postgresql-99e922a01db6d9ff7f68bea67ecfed62f2bad948.zip |
Repair planner failure when there are multiple IN clauses, each with
a join in its subselect. In this situation we *must* build a bushy
plan because there are no valid left-sided or right-sided join trees.
Accordingly, hoary sanity check needs an update. Per report from
Alessandro Depase.
Diffstat (limited to 'src/backend/optimizer/path/allpaths.c')
-rw-r--r-- | src/backend/optimizer/path/allpaths.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c index cc6a1cdf402..1f979dd4094 100644 --- a/src/backend/optimizer/path/allpaths.c +++ b/src/backend/optimizer/path/allpaths.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.109 2003/11/29 19:51:50 pgsql Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.110 2003/12/17 17:07:48 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -545,6 +545,8 @@ make_one_rel_by_joins(Query *root, int levels_needed, List *initial_rels) /* * We should have a single rel at the final level. */ + if (joinitems[levels_needed] == NIL) + elog(ERROR, "failed to build any %d-way joins", levels_needed); Assert(length(joinitems[levels_needed]) == 1); rel = (RelOptInfo *) lfirst(joinitems[levels_needed]); |