Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling)
От | Andres Freund |
---|---|
Тема | Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling) |
Дата | |
Msg-id | 20160902152937.r32ao3neffdn4hpm@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling) (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On 2016-09-02 10:34:54 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > On 2016-09-02 10:20:42 -0400, Tom Lane wrote: > >> ... ISTM all we > >> need is that the SRF be on the inside of the join, which is automatic > >> if it's LATERAL. > > > Right. But there's nothing to force a lateral reference to be there > > intrinsically. I've added a "fake" lateral reference to the ROWS FROM > > RTE to the subquery, when there's none otherwise, but that's not > > entirely pretty. > > Hm, do you get cases like this right: > > select generate_series(1, t1.a) from t1, t2; > > That would result in a lateral ref from the SRF RTE to t1, but you really > need to treat it as laterally dependent on the join of t1/t2 in order to > preserve the old semantics. That is, you need to be laterally dependent > on the whole FROM clause regardless of which variable references appear. Yes - as the original query is moved into a subquery, the lateral dependency I force-add simply is to the entire subquery atm (as a wholerow var).
В списке pgsql-hackers по дате отправления: