From: | Robert Treat <rob(at)xzilla(dot)net> |
---|---|
To: | Mihail Nikalayeu <mihailnikalayeu(at)gmail(dot)com> |
Cc: | Antonin Houska <ah(at)cybertec(dot)at>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Adding REPACK [concurrently] |
Date: | 2025-08-25 16:36:10 |
Message-ID: | CAJSLCQ36BynNAC2vYuWkJ-Y-rECRFoE4rB7NV-O+ENE3bKdp4A@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Aug 25, 2025 at 10:15 AM Mihail Nikalayeu
<mihailnikalayeu(at)gmail(dot)com> wrote:
> 1) we have a whole initial table snapshot with all xmin copied from
> the original table. All such xmin are committed.
> 2) appling transaction sees ALL the self-alive (no xmax) tuple in it
> because its xmin\xmax is committed and SnapshotSelf is happy with it
> 3) each update/delete during the replay selects the last existing
> tuple version, updates it xmax=original xid and inserts a new one
> keeping with xmin=orignal xid
> 4) --//--
> 5) --//--
>
Advancing the tables min xid to at least repack XID is a pretty big
feature, but the above scenario sounds like it would result in any
non-modified pre-existing tuples ending up with their original xmin
rather than repack XID, which seems like it could lead to weird
side-effects. Maybe I am mis-thinking it though?
Robert Treat
https://xzilla.net
From | Date | Subject | |
---|---|---|---|
Next Message | Nathan Bossart | 2025-08-25 16:46:35 | Re: GetNamedLWLockTranche crashes on Windows in normal backend |
Previous Message | Tom Lane | 2025-08-25 16:25:10 | Re: [BUG] Remove self joins causes 'variable not found in subplan target lists' error |