| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
|---|---|
| To: | Dmitry Dolgov <9erthalion6(at)gmail(dot)com> | 
| Cc: | drewk(at)cockroachlabs(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org | 
| Subject: | Re: BUG #18463: Possible bug in stored procedures with polymorphic OUT parameters | 
| Date: | 2024-05-14 19:35:37 | 
| Message-ID: | 1341220.1715715337@sss.pgh.pa.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
I wrote:
> It looks like we'd have to teach resolve_polymorphic_tupdesc how
> to get argument types out of a CallExpr, so that does not lead
> to an entirely trivial fix, but it's surely possible.
> Maybe it'd be better to not try to use build_function_result_tupdesc_t
> here at all.  It looks to me like the output argument list in the
> CallStmt is already fully polymorphically resolved, so we could just
> build a tupdesc based on that and probably save a lot of work.
Some experimentation showed that we need to return the correct
output column names in this tupdesc, so continuing to use
build_function_result_tupdesc_t seems like the easiest path for that.
However, stmt->outargs does hold nodes of the correct resolved data
types, so overwriting the atttypid's from that produces a nicely
small patch, as attached.
regards, tom lane
| Attachment | Content-Type | Size | 
|---|---|---|
| fix-polymorphic-procedure-outputs.patch | text/x-diff | 5.1 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | PG Bug reporting form | 2024-05-14 21:14:34 | BUG #18465: Wrong results from SELECT DISTINCT MIN in scalar subquery using HashAggregate | 
| Previous Message | David G. Johnston | 2024-05-14 17:28:06 | Re: DoS Vulnerability |