Re: BUG #17227: segmentation fault with jsonb_to_recordset
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: bernddorn@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2021-10-14T15:29:33Z
Lists: pgsql-bugs
I wrote: > The whole thing makes me itch a little bit, because this logic is > assuming that eval_const_expressions is idempotent, something > we can't test very well and (AFAIR) are not assuming anywhere else. > If somebody made some sub-case not idempotent, we'd not notice until > that case got used in a lateral function RTE. It occurred to me that we could test for problems with double execution of eval_const_expressions by making planner.c deliberately call it twice in all cases. A quick hack later, I can say that "make check-world" doesn't reveal any such problem. While that's hardly conclusive, it's pretty strong evidence, since the code coverage report shows eval_const_expressions as well covered (and the lines not reached are mostly returning simplified Const nodes, so hardly likely to be a problem here). We could make a persistent check for that by enclosing the extra calls in something like "#ifdef DOUBLE_EVAL_CONST_EXPRESSIONS" and setting up some buildfarm member to define that. But since (AFAIR) we've never actually had such a bug, it seems unlikely to be worth the trouble. I'll go ahead with the patch as presented. regards, tom lane
Commits
-
Fix planner error with pulling up subquery expressions into function RTEs.
- 4d5f651f1d65 15.0 landed
- fdd6a4d8d90a 13.5 landed
- fd059ac2e461 14.1 landed
-
Allow functions-in-FROM to be pulled up if they reduce to constants.
- 7266d0997dd2 13.0 cited