The following bug has been logged online:

Bug reference:      6067
Logged by:          David Fetter
Email address:      dfet...@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.

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to