Re: BUG #5644: Selecting ROW() in variable with 9.0 not compatible with 8.4
От | Tom Lane |
---|---|
Тема | Re: BUG #5644: Selecting ROW() in variable with 9.0 not compatible with 8.4 |
Дата | |
Msg-id | 18651.1283700447@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #5644: Selecting ROW() in variable with 9.0 not compatible with 8.4 ("Valentine Gogichashvili" <valgog@gmail.com>) |
Ответы |
Re: BUG #5644: Selecting ROW() in variable with 9.0 not
compatible with 8.4
|
Список | pgsql-bugs |
"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();
В списке pgsql-bugs по дате отправления: