From: | Stephen Frost <sfrost(at)snowman(dot)net> |
---|---|
To: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com> |
Cc: | PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Relation ordering in FROM clause causing error related to missing entry... Or not. |
Date: | 2015-03-10 13:30:35 |
Message-ID: | 20150310133035.GU29780@tamriel.snowman.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Michael,
* Michael Paquier (michael(dot)paquier(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2015-03-10 13:32:03 | Re: Relation ordering in FROM clause causing error related to missing entry... Or not. |
Previous Message | Kohei KaiGai | 2015-03-10 13:28:56 | Re: One question about security label command |