Re: BUG #18657: Using JSON_OBJECTAGG with volatile function leads to segfault
Amit Langote <amitlangote09@gmail.com>
From: Amit Langote <amitlangote09@gmail.com>
To: Tender Wang <tndrwang@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2024-10-16T09:14:35Z
Lists: pgsql-bugs
Attachments
- v2-0001-SQL-JSON-Fix-some-oversights-in-commit-b6e1157e7.patch (application/octet-stream) patch v2-0001
- v2-0002-Fix-typo-in-comment-of-transformJsonAggConstructo.patch (application/octet-stream) patch v2-0002
On Wed, Oct 16, 2024 at 6:11 PM Tender Wang <tndrwang@gmail.com> wrote: > Amit Langote <amitlangote09@gmail.com> 于2024年10月16日周三 17:06写道: >> >> On Wed, Oct 16, 2024 at 5:20 PM Tender Wang <tndrwang@gmail.com> wrote: >> > Amit Langote <amitlangote09@gmail.com> 于2024年10月16日周三 08:35写道: >> >> >> >> On Wed, Oct 16, 2024 at 9:19 AM Michael Paquier <michael@paquier.xyz> wrote: >> >> > On Tue, Oct 15, 2024 at 11:00:01AM +0000, PG Bug reporting form wrote: >> >> > > First bad commit for this anomaly is b6e1157e7. >> >> > >> >> > Amit, any thoughts? >> >> >> >> Will look into it, thanks. >> > Hi, >> > >> > I debug this issue, and I find that: >> > after b6e1157e7, we shouldn't walk JsonValueExpr.raw_expr in expression_tree_walker_impl(), which >> > is called in preprocess_aggrefs(). >> > >> > I try to above solution, no crashed again. >> >> Thanks for the analysis. That is my conclusion as well. >> >> Attached a patch. >> > > Yeah, yours look more better than mine. And the typo in my attached patch, is that right? > JSON_OBJECT() should be JSON_OBJECTAGG() near transformJsonObjectAgg() Yeah, the typo needs to be fixed as well. Thanks for the patch. So, attaching 0002 for that. -- Thanks, Amit Langote
Commits
-
SQL/JSON: Fix some oversights in commit b6e1157e7
- 7148cb3e3067 17.1 landed
- fa4f11854c8b 16.5 landed
- 11c87216d134 18.0 landed
-
Don't include CaseTestExpr in JsonValueExpr.formatted_expr
- b6e1157e7d33 17.0 cited