]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Propagate CTE property flags when copying a CTE list into a rule.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 7 Feb 2021 00:28:39 +0000 (19:28 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 7 Feb 2021 00:28:39 +0000 (19:28 -0500)
commit56ff63cac94df2979ee7173c4b612db8f81492ae
tree842eb6ab2514fe0a06377af979be994d0d46d1fb
parentad85e5efa1bf6d534c1c519598c2beaaaa5eeb2f
Propagate CTE property flags when copying a CTE list into a rule.

rewriteRuleAction() neglected this step, although it was careful to
propagate other similar flags such as hasSubLinks or hasRowSecurity.
Omitting to transfer hasRecursive is just cosmetic at the moment,
but omitting hasModifyingCTE is a live bug, since the executor
certainly looks at that.

The proposed test case only fails back to v10, but since the executor
examines hasModifyingCTE in 9.x as well, I suspect that a test case
could be devised that fails in older branches.  Given the nearness
of the release deadline, though, I'm not going to spend time looking
for a better test.

Report and patch by Greg Nancarrow, cosmetic changes by me

Discussion: https://postgr.es/m/CAJcOf-fAdj=nDKMsRhQzndm-O13NY4dL6xGcEvdX5Xvbbi0V7g@mail.gmail.com
src/backend/rewrite/rewriteHandler.c
src/test/regress/expected/with.out
src/test/regress/sql/with.sql