aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeBitmapAnd.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2012-10-03 13:37:53 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2012-10-03 13:38:20 -0400
commit49bf146b7ad0b1751fb4d15853306dabf1ce83c6 (patch)
tree43829fa80df6a68e937affd19a14e726e0f4576f /src/backend/executor/nodeBitmapAnd.c
parentda24920ab8ea6b22632103845c3c6126c8833ca6 (diff)
downloadpostgresql-49bf146b7ad0b1751fb4d15853306dabf1ce83c6.tar.gz
postgresql-49bf146b7ad0b1751fb4d15853306dabf1ce83c6.zip
Avoid planner crash/Assert failure with joins to unflattened subqueries.
examine_simple_variable supposed that any RTE_SUBQUERY rel it gets pointed at must have been planned already. However, this isn't a safe assumption because we must do selectivity estimation while generating indexscan paths, and that code might look at join clauses involving a rel that the loop in set_base_rel_sizes() hasn't reached yet. The simplest fix is to play dumb in such a situation, that is give up trying to extract any stats for the Var. This could possibly be improved by making a separate pass over the RTE list to plan each unflattened subquery before we start the main planning work --- but that would be pretty invasive and it doesn't seem worth it, for now at least. (We couldn't just break set_base_rel_sizes() into two loops: the prescan would need to handle all subquery rels in the query, not only those in the current join subproblem.) This bug was introduced in commit 1cb108efb0e60d87e4adec38e7636b6e8efbeb57, although I think that subsequent changes may have exposed it more than it was originally. Per bug #7580 from Maxim Boguk.
Diffstat (limited to 'src/backend/executor/nodeBitmapAnd.c')
0 files changed, 0 insertions, 0 deletions