Michael, * Michael Paquier (michael.paqu...@gmail.com) wrote: > Today while playing with some queries I bumped into the following thing: > =# with count_query as (select generate_series(0,1) as a) select b > from count_query, generate_series(1, count_query.a) as b; > b > --- > 1 > (1 row)
The above results in an implicit LATERAL being done. > =# with count_query as (select generate_series(0,1) as a) select b > from generate_series(1, count_query.a) as b, count_query; > ERROR: 42P01: missing FROM-clause entry for table "count_query" > LINE 1: ...eries(0,1) as a) select b from generate_series(1, count_quer... > ^ > LOCATION: errorMissingRTE, parse_relation.c:2850 This doesn't because the generate_series() is first- where would it get the count_query relation? > I have been a little bit surprised by the fact that different entry > ordering in the FROM clause of the main query had different effects. > Perhaps there is something I am missing? I haven't looked at the code > but if this happens to be a bug I am fine to submit a patch. Yeah, it's simply because we can turn one into an implicit LATERAL, but we can't do that for the other. Thanks, Stephen
signature.asc
Description: Digital signature