From: | Thom Brown <thom(at)linux(dot)com> |
---|---|
To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Support retrieving value from any sequence |
Date: | 2015-07-14 14:52:04 |
Message-ID: | CAA-aLv5ntC3TOmduvEgLRH+R08r3GtZ8e3a3j5rcjwuwygDjzw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2015-07-14 14:55:22 | Re: TABLESAMPLE patch is really in pretty sad shape |
Previous Message | Tom Lane | 2015-07-14 14:32:07 | Re: TABLESAMPLE patch is really in pretty sad shape |