Обсуждение: Access to old versions of a row

Поиск
Список
Период
Сортировка

Access to old versions of a row

От
Matthias Apitz
Дата:
As long as the vacuum is not run, older versions of a given row should
be "somewhere". Is there a way to read them?

Thanks

    matthias
-- 
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub



Re: Access to old versions of a row

От
Vik Fearing
Дата:
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?

No.

But there is a pg_dirtyread extension that can do it. 
https://github.com/df7cb/pg_dirtyread
-- 
Vik Fearing




Re: Access to old versions of a row

От
Alvaro Herrera
Дата:
On 2023-Oct-08, 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?

Maybe with 
https://github.com/df7cb/pg_dirtyread

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/



Re: Access to old versions of a row

От
Andres Freund
Дата:
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