pgsql: Revive "snapshot too old" with wal_level=minimal and SET TABLESP

Поиск
Список
Период
Сортировка
От Noah Misch
Тема pgsql: Revive "snapshot too old" with wal_level=minimal and SET TABLESP
Дата
Msg-id E1l5lkO-0004Zz-1H@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Revive "snapshot too old" with wal_level=minimal and SET TABLESPACE.

Given a permanent relation rewritten in the current transaction, the
old_snapshot_threshold mechanism assumed the relation had never been
subject to early pruning.  Hence, a query could fail to report "snapshot
too old" when the rewrite followed an early truncation.  ALTER TABLE SET
TABLESPACE is probably the only rewrite mechanism capable of exposing
this bug.  REINDEX sets indcheckxmin, avoiding the problem.  CLUSTER has
zeroed page LSNs since before old_snapshot_threshold existed, so
old_snapshot_threshold has never cooperated with it.  ALTER TABLE
... SET DATA TYPE makes the table look empty to every past snapshot,
which is strictly worse.  Back-patch to v13, where commit
c6b92041d38512a4176ed76ad06f713d2e6c01a8 broke this.

Kyotaro Horiguchi and Noah Misch

Discussion: https://postgr.es/m/20210113.160705.2225256954956139776.horikyota.ntt@gmail.com

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/d798ea750d22ee4f546c5a4521f957ca610de5b1

Modified Files
--------------
src/backend/utils/time/snapmgr.c | 3 ++-
src/include/utils/snapmgr.h      | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Noah Misch
Дата:
Сообщение: pgsql: Fix error with CREATE PUBLICATION, wal_level=minimal, and new ta
Следующее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: Allow GRANTED BY clause in normal GRANT and REVOKE statements