pgsql: Make DDL operations play nicely with Serializable Snapshot Isola

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема pgsql: Make DDL operations play nicely with Serializable Snapshot Isola
Дата
Msg-id E1QUGh8-0007Ra-5M@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Make DDL operations play nicely with Serializable Snapshot Isolation.

Truncating or dropping a table is treated like deletion of all tuples, and
check for conflicts accordingly. If a table is clustered or rewritten by
ALTER TABLE, all predicate locks on the heap are promoted to relation-level
locks, because the tuple or page ids of any existing tuples will change and
won't be valid after rewriting the table. Arguably ALTER TABLE should be
treated like a mass-UPDATE of every row, but if you e.g change the datatype
of a column, you could also argue that it's just a change to the physical
layout, not a logical change. Reindexing promotes all locks on the index to
relation-level lock on the heap.

Kevin Grittner, with a lot of cosmetic changes by me.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/8f9622bbb3c02b06176760c3ca2d33c5b5f629a7

Modified Files
--------------
src/backend/catalog/heap.c                |    9 +
src/backend/catalog/index.c               |   13 +
src/backend/commands/cluster.c            |    9 +
src/backend/commands/tablecmds.c          |   19 +
src/backend/storage/lmgr/predicate.c      |  521 ++++++++++++++++++++++++-----
src/include/storage/predicate.h           |    2 +
src/include/storage/predicate_internals.h |    6 +-
7 files changed, 499 insertions(+), 80 deletions(-)


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

Предыдущее
От: Robert Haas
Дата:
Сообщение: pgsql: Complain politely about access temp/unlogged tables during recov
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Allow domains over arrays to match ANYARRAY parameters again.