"Valentine Gogichashvili" <valgog@gmail.com> writes:
> After migration to 9.0RC1 some stored procedures, working ok in 8.4 does not
> work in 9.0.
> The problem is that SELECT ROW(a,b,c) INTO var does not work any longer in
> 9.0.
It didn't work in 8.4 either. I tried the attached and got some variant
of
ERROR: invalid input syntax for integer: "(1,a)"
CONTEXT: PL/pgSQL function "foo" line 9 at SQL statement
in every release back to 8.1.
regards, tom lane
CREATE TYPE ta AS (a1 integer, a2 text);
CREATE TYPE tb AS (b1 integer, b2 ta);
create or replace function foo() returns void language plpgsql as $$
DECLARE
a ta;
b tb;
BEGIN
SELECT 1, 'a' INTO a; -- ok
RAISE INFO 'a is %', a;
SELECT ROW(1, 'a') INTO a; -- ok in 8.4 but fails in 9.0
RAISE INFO 'a is %', a;
SELECT 1, 'a' INTO b.b2; -- ok
RAISE INFO 'b is %', b;
END;
$$;
select foo();