| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Andres Freund <andres(at)anarazel(dot)de> |
| Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling) |
| Date: | 2017-01-18 19:24:12 |
| Message-ID: | 13690.1484767452@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Andres Freund <andres(at)anarazel(dot)de> writes:
> On 2017-01-18 08:43:24 -0500, Tom Lane wrote:
>> ... except for one thing. The more I look at it,
>> the more disturbed I am by the behavioral change shown in rangefuncs.out
>> --- that's the SRF-in-one-arm-of-CASE issue.
> I'm fine with leaving it as is in the patch, but I'm also fine with
> changing things to ERROR. Personally I don't think it matters much, and
> we can whack it back and forth as we want later. Thus I'm inclined to
> commit it without erroring out; since presumably we'll take some time
> deciding on what exactly we want to prohibit.
I agree. If we do decide to throw an error, it would best be done in
parse analysis, and thus would be practically independent of this patch
anyway.
>> * This bit in ExecProjectSRF was no good:
>> + else if (IsA(gstate->arg, FuncExprState) &&
>> + ((FuncExpr *) gstate->arg->expr)->funcretset)
> Argh. That should have been FunExprState->func->fn_retset.
Nope; that was my first thought as well, but fn_retset isn't valid if
init_fcache hasn't been run yet, which it won't have been the first time
through.
So I think we can push this patch now and get on with the downstream
patches. Do you want to do the honors, or shall I?
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2017-01-18 19:32:18 | Re: Declarative partitioning vs. information_schema |
| Previous Message | Andres Freund | 2017-01-18 19:19:24 | Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling) |