Re: Error working with Temporary Sequences in plpgsql in 8.1 (8.0

Поиск
Список
Период
Сортировка
От Daniel Schuchardt
Тема Re: Error working with Temporary Sequences in plpgsql in 8.1 (8.0
Дата
Msg-id 43E3AE3C.2020108@web.de
обсуждение исходный текст
Ответ на Re: Error working with Temporary Sequences in plpgsql in 8.1 (8.0 works fine)  (Jaime Casanova <systemguards@gmail.com>)
Список pgsql-hackers
A nice workaraound because

EXECUTE 'select nextval(''test'')' INTO I;

doesnt work in 8.0 seems to be:

myid:=nextval('stvtrsid_seq'::TEXT);


This seems to work in every case.


Daniel


Jaime Casanova schrieb:

try this way:

CREATE OR REPLACE FUNCTION testseq() RETURNS void AS
$BODY$BEGIN EXECUTE 'CREATE TEMP SEQUENCE test'; PERFORM testseq1(); DROP SEQUENCE test; RETURN;END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION testseq() OWNER TO postgres;


CREATE OR REPLACE FUNCTION testseq1() RETURNS void AS
$BODY$DECLARE I INTEGER;BEGIN EXECUTE 'select nextval(''test'')' INTO I;
raise notice '%', I; RETURN;END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION testseq1() OWNER TO postgres;

SELECT testseq();
SELECT testseq();


is the same problem as with temp tables, you must put their creation,
and in this case even the nextval in an execute...

--
regards,
Jaime Casanova
(DBA: DataBase Aniquilator ;)


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

Предыдущее
От: Josh Berkus
Дата:
Сообщение: Re: Multiple logical databases
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Function Stats WAS: Passing arguments to views