Обсуждение: bug in integration SQL parser to plpgsq
Hello it doesn't support EXPLAIN as possible begin of SQL statement: postgres=# create or replace function foo(_a int) returns void as $$declare s varchar; begin for s in explain select * from omega where a = _a loop raise notice '%', s; end loop; return; end; $$ language plpgsql; CREATE FUNCTION postgres=# select foo(10); ERROR: column "_a" does not exist CONTEXT: PL/pgSQL function "foo" line 1 at FOR over SELECT rows postgres=# create or replace function foo(_a int) returns void as $$declare s varchar; begin for s in select * from omega where a = _a loop raise notice '%', s; end loop; return; end; $$ language plpgsql; CREATE FUNCTION postgres=# select foo(10);foo ----- (1 row) Regards Pavel Stehule
Pavel Stehule <pavel.stehule@gmail.com> writes: > it doesn't support EXPLAIN as possible begin of SQL statement: > postgres=# create or replace function foo(_a int) returns void as > $$declare s varchar; begin for s in explain select * from omega where > a = _a loop raise notice '%', s; end loop; return; end; $$ language > plpgsql; > CREATE FUNCTION > postgres=# select foo(10); > ERROR: column "_a" does not exist > CONTEXT: PL/pgSQL function "foo" line 1 at FOR over SELECT rows No, that's got nothing to do with EXPLAIN per se. It's not passing down the parameter resolution hook into utility statements in general. This may take a little bit of thought to fix :-( regards, tom lane
Pavel Stehule <pavel.stehule@gmail.com> writes: > it doesn't support EXPLAIN as possible begin of SQL statement: I've applied a fix for that. regards, tom lane
2010/1/15 Tom Lane <tgl@sss.pgh.pa.us>: > Pavel Stehule <pavel.stehule@gmail.com> writes: >> it doesn't support EXPLAIN as possible begin of SQL statement: > > I've applied a fix for that. Thank you Pavel Stehule > > regards, tom lane >