pgsql: Prevent "snapshot too old" from trying to return pruned TOAST tu
От | Robert Haas |
---|---|
Тема | pgsql: Prevent "snapshot too old" from trying to return pruned TOAST tu |
Дата | |
Msg-id | E1bV39W-0008CE-VK@gemulon.postgresql.org обсуждение исходный текст |
Ответы |
Re: pgsql: Prevent "snapshot too old" from trying to return pruned TOAST tu
|
Список | pgsql-committers |
Prevent "snapshot too old" from trying to return pruned TOAST tuples. Previously, we tested for MVCC snapshots to see whether they were too old, but not TOAST snapshots, which can lead to complaints about missing TOAST chunks if those chunks are subject to early pruning. Ideally, the threshold lsn and timestamp for a TOAST snapshot would be that of the corresponding MVCC snapshot, but since we have no way of deciding which MVCC snapshot was used to fetch the TOAST pointer, use the oldest active or registered snapshot instead. Reported by Andres Freund, who also sketched out what the fix should look like. Patch by me, reviewed by Amit Kapila. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/3e2f3c2e423b3ae906668c186bac79522b8e3e29 Modified Files -------------- src/backend/access/heap/tuptoaster.c | 37 +++++++++++++++++++++++++++++++---- src/backend/utils/time/snapmgr.c | 38 ++++++++++++++++++++++++++++++++++++ src/backend/utils/time/tqual.c | 1 - src/include/storage/bufmgr.h | 3 ++- src/include/utils/snapmgr.h | 1 + src/include/utils/tqual.h | 32 ++++++++++++++++++++---------- 6 files changed, 96 insertions(+), 16 deletions(-)
В списке pgsql-committers по дате отправления: