Re: Access to old versions of a row

From: Andres Freund <andres(at)anarazel(dot)de>
To: Vik Fearing <vik(at)postgresfriends(dot)org>
Cc: Matthias Apitz <guru(at)unixarea(dot)de>, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: Access to old versions of a row
Date: 2023-10-09 23:55:30
Message-ID: 20231009235530.jsje2lgvvtbargdx@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

On 2023-10-08 21:35:15 +0200, Vik Fearing wrote:
> On 10/8/23 16:25, Matthias Apitz wrote:
> >
> > As long as the vacuum is not run, older versions of a given row should
> > be "somewhere". Is there a way to read them?

(auto-)vacuum not having processed a table doesn't guarantee that row versions
have not been removed. Most importantly, on-access pruning can lead to row
versions being removed. There's also the issue that the toast table could
have been autovacuumed independently from the "main" table.

> No.
>
> But there is a pg_dirtyread extension that can do it.
> https://github.com/df7cb/pg_dirtyread

Note that there's a lot of potential for bogus data and even crashes when
using something like this. Which is fine when used for data recovery purposes,
but not for many other potential usecases.

Greetings,

Andres Freund

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message PG Bug reporting form 2023-10-10 06:26:26 BUG #18152: Join condition is not pushed down to union all subquery
Previous Message Tom Lane 2023-10-09 16:42:44 Re: BUG #18151: pg_upgradecluster fails when column default refers to column