Support retrieving value from any sequence

Поиск
Список
Период
Сортировка
От Thom Brown
Тема Support retrieving value from any sequence
Дата
Msg-id CAA-aLv5ntC3TOmduvEgLRH+R08r3GtZ8e3a3j5rcjwuwygDjzw@mail.gmail.com
обсуждение исходный текст
Ответы Re: Support retrieving value from any sequence  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: Support retrieving value from any sequence  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
Hi all,

When using currval() to find the current value of all sequences, it chokes on those that aren't initialised.  This is expected and documented as behaving in this manner.  However, I think it would be useful to also support retrieving the current value of a sequence, regardless of whether it's been used.  As this wouldn't be to get a sequence value for the current session, but all sessions, this would ideally get the real current value.

The use-case I have in mind is for finding out how close to the 32-bit integer limit sequences have reached.  At the moment, this isn't possible without creating a custom function to go fetch the last_value from the specified sequence.

So would it be desirable to have a function which accepts a sequence regclass as a parameter, and returns the last_value from the sequence?

Effectively, the same result as what this provides:

CREATE FUNCTION lastval(tablename regclass) RETURNS bigint AS $$
DECLARE
  last_value bigint;
BEGIN
  EXECUTE format('SELECT last_value FROM %I ', tablename) INTO last_value USING tablename;
  RETURN last_value;
END
$$ LANGUAGE plpgsql;

Thom

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: TABLESAMPLE patch is really in pretty sad shape
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: TABLESAMPLE patch is really in pretty sad shape