]> granicus.if.org Git - postgresql/commit
Fix wrong order of operations in inheritance_planner.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 11 Aug 2018 19:53:20 +0000 (15:53 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 11 Aug 2018 19:53:20 +0000 (15:53 -0400)
commit0ff8f521d40f271c57f29f0ca773981e4465b35b
tree3934eaf5287a12c66e1a956a49240ad96fdd0bbc
parentafff44303cc316d2fe8ad15ac5a5fc90d59dcd67
Fix wrong order of operations in inheritance_planner.

When considering a partitioning parent rel, we should stop processing that
subroot as soon as we've done adjust_appendrel_attrs and any securityQuals
updates.  The rest of this is unnecessary, and indeed adding duplicate
subquery RTEs to the subroot is *wrong*.  As the code stood, the children
of that partition ended up with two sets of copied subquery RTEs, confusing
matters greatly.  Even more hilarity ensued if all of the children got
excluded by constraint exclusion, so that the extra RTEs didn't make it
back into the parent rtable.

Per fuzz testing by Andreas Seltenreich.  Back-patch to v11 where this
got broken (by commit 0a480502b, it looks like).

Discussion: https://postgr.es/m/87va8g7vq0.fsf@ansel.ydns.eu
src/backend/optimizer/plan/planner.c
src/test/regress/expected/partition_join.out
src/test/regress/sql/partition_join.sql