Re: BUG #16018: pg_sequence_last_value() doesn't give results for owners - Mailing list pgsql-bugs

From David G. Johnston
Subject Re: BUG #16018: pg_sequence_last_value() doesn't give results for owners
Date
Msg-id CAKFQuwaLu2vXFt40ZyRdk0ws+gH1iFWaVNndAOvez7bd9Kx9Kw@mail.gmail.com
Whole thread Raw
In response to BUG #16018: pg_sequence_last_value() doesn't give results for owners  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #16018: pg_sequence_last_value() doesn't give results for owners
List pgsql-bugs
On Mon, Sep 23, 2019 at 2:46 PM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      16018
Logged by:          Robert Treat
Email address:      rob@xzilla.net
PostgreSQL version: 11.5
Operating system:   osx
Description:       

I think there is a bug of sorts with pg_sequence_last_value(), in that the
security checks prevent a superuser (or owner) from seeing the last_value of
a sequence by way of this function. That seems like a use case that should
be supported (and since it isn't, it causes problems for a lot of other use
cases). As an example:

postgres@54321:pagila=# create sequence x;
CREATE SEQUENCE

postgres@54321:pagila=# select pg_sequence_last_value('x'::regclass);
 pg_sequence_last_value
------------------------

(1 row)


From pg_sequences:
"""
last_value bigint The last sequence value written to disk. If caching is used, this value can be greater than the last value handed out from the sequence. Null if the sequence has not been read from yet. Also, if the current user does not have USAGE or SELECT privilege on the sequence, the value is null.
"""

The null in the example seems to be due to the first condition (not been read from) not the second (privileges).

postgres@54321:pagila=# select * from x;
 last_value | log_cnt | is_called
------------+---------+-----------
          1 |       0 | f
(1 row)

The "last_value" on the sequence object has a different definition than the one on the relatively new pg_sequences catalog.

I'm not seeing where a bug has been shown to exist though I'll agree that the quick reading of the documentation leaves some level of confusion.

David J.

pgsql-bugs by date:

Previous
From: PG Bug reporting form
Date:
Subject: BUG #16018: pg_sequence_last_value() doesn't give results for owners
Next
From: Robert Treat
Date:
Subject: Re: BUG #16018: pg_sequence_last_value() doesn't give results for owners