1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-11 05:41:32 +03:00

Revert "Propagate CTE property flags when copying a CTE list into a rule."

This reverts commit ed290896335414c6c069b9ccae1f3dcdd2fac6ba and
equivalent back-branch commits.  The issue is subtler than I thought,
and it's far from new, so just before a release deadline is no time
to be fooling with it.  We'll consider what to do at a bit more
leisure.

Discussion: https://postgr.es/m/CAJcOf-fAdj=nDKMsRhQzndm-O13NY4dL6xGcEvdX5Xvbbi0V7g@mail.gmail.com
This commit is contained in:
Tom Lane 2021-02-07 12:54:08 -05:00
parent 01e3fe3275
commit 6f8e393a79

View File

@ -511,9 +511,6 @@ rewriteRuleAction(Query *parsetree,
* *
* This could possibly be fixed by using some sort of internally * This could possibly be fixed by using some sort of internally
* generated ID, instead of names, to link CTE RTEs to their CTEs. * generated ID, instead of names, to link CTE RTEs to their CTEs.
* However, decompiling the results would be quite confusing; note the
* merge of hasRecursive flags below, which could change the apparent
* semantics of such redundantly-named CTEs.
*/ */
foreach(lc, parsetree->cteList) foreach(lc, parsetree->cteList)
{ {
@ -535,9 +532,6 @@ rewriteRuleAction(Query *parsetree,
/* OK, it's safe to combine the CTE lists */ /* OK, it's safe to combine the CTE lists */
sub_action->cteList = list_concat(sub_action->cteList, sub_action->cteList = list_concat(sub_action->cteList,
copyObject(parsetree->cteList)); copyObject(parsetree->cteList));
/* ... and don't forget about the associated flags */
sub_action->hasRecursive |= parsetree->hasRecursive;
sub_action->hasModifyingCTE |= parsetree->hasModifyingCTE;
} }
/* /*