Re: BUG #17606: There is still some glitch in 3f7323cbb fixing failure of MULTIEXPR_SUBLINK
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Richard Guo <guofenglinux@gmail.com>
Cc: 857348270@qq.com,
PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2022-09-06T16:53:41Z
Lists: pgsql-bugs
Attachments
- fix-multiexpr-renumbering-some-more.patch (text/x-diff) patch
I wrote: > After contemplating that for awhile, by far the least painful way > seems to be to add the subLinkId to struct SubPlan. We can get > away with that in the back branches as long as we add it at the > end, since SubPlans don't get recorded in the catalogs. The attached seems to fix it. While writing a test case I discovered that the code I'd stolen from ruleutils.c is inadequate for the purpose. That code was only designed to deal with pre-planning query trees, so it only expects one Param per targetlist entry --- but cases like multiple assignments to the same array column can get rolled up into nests containing several Params (cf. rewriteTargetListIU). So I abandoned that tactic in favor of just writing a tree walker. Andre's gut feeling that we needed one was right. regards, tom lane
Commits
-
Further fixes for MULTIEXPR_SUBLINK fix.
- ccbb54c72990 13.9 landed
- 9bcf6fb281de 11.18 landed
- 4d7c0fe51d6b 12.13 landed
- 174c929e3ba0 10.23 landed