BUG #2123: join between stored procedures
| От | Konstantin S. Zhinko [tIT] |
|---|---|
| Тема | BUG #2123: join between stored procedures |
| Дата | |
| Msg-id | 20051223085648.CD7ACF0AC7@svr2.postgresql.org обсуждение исходный текст |
| Ответы |
Re: BUG #2123: join between stored procedures
|
| Список | pgsql-bugs |
The following bug has been logged online:
Bug reference: 2123
Logged by: Konstantin S. Zhinko [tIT]
Email address: k.zhinko@grape.ru
PostgreSQL version: 8.1.0
Operating system: CentOS 3.5
Description: join between stored procedures
Details:
Hi all!
I have a very big problem...
Here the code:
/*SQL START*/
CREATE TABLE "public"."test_data" (
"id" INTEGER NOT NULL,
"type" INTEGER NOT NULL,
"short_text" VARCHAR(255),
CONSTRAINT "test_data_pkey" PRIMARY KEY("id")
) WITH OIDS;
CREATE TYPE "public"."ret_id" AS (
"id" INTEGER
);
CREATE TYPE "public"."test" AS (
"id" INTEGER,
"type" INTEGER,
"info" VARCHAR(255)
);
CREATE OR REPLACE FUNCTION "public"."get_obj_list" () RETURNS SETOF
"public"."ret_id" AS
$body$
declare
ret ret_id;
begin
for ret in select test_data.id from test_data
loop
return next ret;
end loop;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
CREATE OR REPLACE FUNCTION "public"."get_obj" (id integer) RETURNS
"public"."test" AS
$body$
declare
ret test;
in_id alias for $1;
begin
select * from test_data a into ret where a.id=in_id;
return ret;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
/*SQL END*/
It is ok, but when I try to join these procedures, server responses error
/*SQL START*/
SELECT b.*
FROM get_obj_list a
LEFT JOIN get_obj(a.id) b ON 1=1
/*SQL END*/
Error: relation "a" does not exists.
Why it's so?
В списке pgsql-bugs по дате отправления: