BUG #14099: Altering temporary sequence in session has no effect

Поиск
Список
Период
Сортировка
От imraan@techie.com
Тема BUG #14099: Altering temporary sequence in session has no effect
Дата
Msg-id 20160418171347.22920.22798@wrigleys.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #14099: Altering temporary sequence in session has no effect  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      14099
Logged by:          Imraan Parker
Email address:      imraan@techie.com
PostgreSQL version: 9.5.2
Operating system:   Linux
Description:

Altering a temporary sequence using ALTER SEQUENCE within a session has no
effect. I am trying to set the starting value of the sequence. All this
happens within a PL/PGSQL function as seen below.

CREATE OR REPLACE FUNCTION _test_seq() RETURNS integer AS
$BODY$
BEGIN
   BEGIN
      CREATE TEMP SEQUENCE tt_seq;
      EXCEPTION WHEN OTHERS THEN
         ALTER SEQUENCE tt_seq START 1;
         --PERFORM setval('tt_seq', 1);
   END;
   PERFORM nextval('tt_seq');
   PERFORM nextval('tt_seq');
   PERFORM nextval('tt_seq');
   RETURN currval('tt_seq');
END;
$BODY$ LANGUAGE plpgsql VOLATILE;

SELECT * FROM _test_seq();

Running the function increments the sequence but never sets it back to 1. If
you uncomment the setval(), then it works.

The ALTER SEQUENCE works on 9.1 and 9.3. I do not have a 9.4 instance to
test on so I cannot be sure if the problem is there too.

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

Предыдущее
От: johnlumby@hotmail.com
Дата:
Сообщение: BUG #14098: misleading message "out of shared memory" when lock table space exhausted
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #14098: misleading message "out of shared memory" when lock table space exhausted