Prev: pgsql: Make standby server continuouslyretry restoring the next WAL
Next: PostgreSQL::PLPerl::Call - Simple interface for calling SQLfunctions from PostgreSQL PL/Perl
From: Tom Lane on 12 Feb 2010 16:59 Came across something interesting while looking at Marko Tiikkaja's cut-down WITH patch. I see that our grammar allows a WITH clause in front of VALUES, and analyze.c makes some effort to process it, but AFAICT there isn't any actual use case for this because you can't reference the WITH clause from the body of VALUES: regression=# with q as (select * from int8_tbl) values (42); column1 --------- 42 (1 row) regression=# with q as (select * from int8_tbl) values (q1); ERROR: column "q1" does not exist LINE 1: with q as (select * from int8_tbl) values (q1); ^ regression=# with q as (select * from int8_tbl) values (q.q1); ERROR: missing FROM-clause entry for table "q" LINE 1: with q as (select * from int8_tbl) values (q.q1); ^ Even if you go back to 8.4 and turn on add_missing_from, you get: regression=# with q as (select * from int8_tbl) values (q.q1); NOTICE: adding missing FROM-clause entry for table "q" LINE 1: with q as (select * from int8_tbl) values (q.q1); ^ ERROR: VALUES must not contain table references LINE 1: with q as (select * from int8_tbl) values (q.q1); ^ So on the whole this seems like useless code. Perhaps we should instead throw an error along the line of "WITH cannot be attached to VALUES"? regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers |