Re: Bug with FOR ... LOOP and composite types

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Bug with FOR ... LOOP and composite types
Дата
Msg-id 162867790809010548h30d189a7tc6ac8ba179cab726@mail.gmail.com
обсуждение исходный текст
Ответ на Bug with FOR ... LOOP and composite types  ("Oleg Serov" <serovov@gmail.com>)
Ответы Re: Bug with FOR ... LOOP and composite types  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Bug with FOR ... LOOP and composite types  ("Oleg Serov" <serovov@gmail.com>)
Список pgsql-bugs
Hello

2008/9/1 Oleg Serov <serovov@gmail.com>:
> Hello.
>
> Seems there is an error when I try to use a table with one field - composite
> type, when SELECT QUERY in FOR ... LOOP instruction returns empty result.
> Here are steps to reproduce:
>
> CREATE TYPE "t_type" AS (
> "a" BIGINT
> );
>
> CREATE TABLE"t_table" (
> "id" BIGINT NOT NULL,
> "t" "t_type",
> CONSTRAINT "t_table_pkey" PRIMARY KEY("id")
> ) WITH OIDS;
>
> CREATE OR REPLACE FUNCTION "t_func" () RETURNS SETOF "t_table" AS
> $body$
> DECLARE
> rec t_table%ROWTYPE;
> BEGIN
> FOR rec IN
> SELECT *
> FROM t_table
> WHERE 1=0
> LOOP
> RETURN NEXT rec;
> END LOOP;
> END;
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
> SELECT * FROM t_func()
>
> Result:
>
> ERROR: cannot assign non-composite value to a row variable
> CONTEXT: PL/pgSQL function "t_func" line 4 at FOR over SELECT rows

ROWTYPE is problem.

postgres=# CREATE OR REPLACE FUNCTION "t_func" () RETURNS SETOF "t_table" AS
postgres-# $body$
postgres$# DECLARE
postgres$# rec record;
postgres$# BEGIN
postgres$# FOR rec IN
postgres$# SELECT *
postgres$# FROM t_table
postgres$# WHERE 1=0
postgres$# LOOP
postgres$# RETURN NEXT rec;
postgres$# END LOOP;
postgres$# END;
postgres$# $body$
postgres-# LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
CREATE FUNCTION
postgres=# select * from t_func();
 id | t
----+---
(0 rows)

regards
Pavel Stehule

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "Oleg Serov"
Дата:
Сообщение: Bug with FOR ... LOOP and composite types
Следующее
От: "Oleg Serov"
Дата:
Сообщение: Bug in RETURN QUERY