BUG #6067: In PL/pgsql, EXISTS(SELECT ... INTO...) fails
| От | David Fetter |
|---|---|
| Тема | BUG #6067: In PL/pgsql, EXISTS(SELECT ... INTO...) fails |
| Дата | |
| Msg-id | 201106172246.p5HMk2Qs041851@wwwmaster.postgresql.org обсуждение |
| Ответы |
Re: BUG #6067: In PL/pgsql, EXISTS(SELECT ... INTO...) fails
Re: BUG #6067: In PL/pgsql, EXISTS(SELECT ... INTO...) fails |
| Список | pgsql-bugs |
The following bug has been logged online:
Bug reference: 6067
Logged by: David Fetter
Email address: dfetter@vmware.com
PostgreSQL version: 9.0.4
Operating system: Linux
Description: In PL/pgsql, EXISTS(SELECT ... INTO...) fails
Details:
Here's some example code that reproduces the problem:
CREATE OR REPLACE FUNCTION foo()
RETURNS void
LANGUAGE plpgsql
AS $$
DECLARE
i int;
BEGIN
IF EXISTS (SELECT 1 INTO STRICT i) THEN
RAISE NOTICE '%', a;
END IF;
RETURN;
END;
$$;
ERROR: syntax error at or near "i"
LINE 8: IF EXISTS (SELECT 1 INTO STRICT i) THEN
^
This came up in a case where there was an IF block that checked some
conditions before checking whether there was a row. If it found a row, it
was supposed to use it in an EXCEPTION. Instead, I had to do the query
unconditionally, check the FOUND block in a separate nested IF statement,
and generally uglify the code.
Not everybody in IRC agreed that this is a bug, though.
В списке pgsql-bugs по дате отправления: