Re: Record last SELECT on a row?

Laurenz Albe <laurenz.albe@cybertec.at>

From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Matthias Leisi <matthias@leisi.net>, "pgsql-generallists.postgresql.org" <pgsql-general@lists.postgresql.org>
Date: 2025-12-17T08:41:17Z
Lists: pgsql-general
On Wed, 2025-12-17 at 08:40 +0100, Matthias Leisi wrote:
> An application (which we can’t change) is accessing some Postgres table, and we would
> like to record when the rows in that table were last read (meaning: appeared in a
> SELECT result). The ultimate goal would be that we can „age out“ rows which have not
> been accessed in a certain period of time.
> 
> If we had full control over the application, we could eg use a function to select the
> records and then update some „last read“ column. But since we don’t control the
> application, that’s not an option. On the other hand, we have full control over the
> database, so we could put some other „object“ in lieu of the direct table.
> 
> Any other ways this could be achieved?

I don't think that is possible.  You could log all statements, but that won't show
which rows are accessed.

Yours,
Laurenz Albe