Re: BUG #18422: Assert in expandTupleDesc() fails on row mismatch with additional SRF
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Tender Wang <tndrwang@gmail.com>, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2024-04-11T07:41:42Z
Lists: pgsql-bugs
On Wed, Apr 10, 2024 at 10:16 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Wilco. Another thing I was considering, but didn't pull the trigger > on in the draft patch, was to introduce a funcapi.c function on the > order of > get_expr_result_rtfunc(RangeTblFunction *rtfunc, ...) > which would encapsulate applying either BuildDescFromLists or > get_expr_result_type. I didn't do it because I found that the > only places that would want to use it are the two that are correct > already; the places we still need to fix have short-cuts they can > take rather than building an intermediate tupdesc. (The present > bug could be summarized as "the short-cuts still need to pay > attention to the coldeflist".) But the advantage of doing this > anyway is that its header comment would be a natural place to > document this issue and policy. Thoughts? Do you think we can have a parameter in the new get_expr_result_rtfunc() function to indicate whether we want to build an intermediate tupdesc when we have a coldeflist? Then we can set it to true in the two places that are correct already, and set it to false at the places we need to fix. But I'm not sure if including such a new parameter would be an improvement or just make it worse. Thanks Richard
Commits
-
Fix type-checking of RECORD-returning functions in FROM, redux.
- e0df80828abc 17.0 landed
- e0970862e868 12.19 landed
- cc1eb6a3cccd 16.3 landed
- b6e21cef72f1 13.15 landed
- 78e81e14db79 14.12 landed
- 09989ba84734 15.7 landed