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  (Valentine Gogichashvili <valgog@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: "Valentine Gogichashvili"
Дата:
Сообщение: BUG #5644: Selecting ROW() in variable with 9.0 not compatible with 8.4
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: issue about information_schema REFERENTIAL_CONSTRAINTS