pgsql: Propagate CTE property flags when copying a CTE list into a rule

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Propagate CTE property flags when copying a CTE list into a rule
Date: 2021-02-07 00:28:59
Message-ID: E1l8Xwh-000362-JK@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/ce5f27fcae61526603915a266f36a3b2c6f6c6de

Modified Files
--------------
src/backend/rewrite/rewriteHandler.c | 6 ++++++
src/test/regress/expected/with.out | 27 +++++++++++++++++++++++++++
src/test/regress/sql/with.sql | 16 ++++++++++++++++
3 files changed, 49 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Tatsuo Ishii 2021-02-07 04:52:06 pgsql: Docs: fix pg_wal_lsn_diff manual.
Previous Message Tom Lane 2021-02-06 20:17:29 pgsql: Disallow converting an inheritance child table to a view.