pgsql: Ignore inherited temp relations from other sessions whentruncat

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема pgsql: Ignore inherited temp relations from other sessions whentruncat
Дата
Msg-id E1gcKL4-0005Cv-Cp@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Ignore inherited temp relations from other sessions when truncating

Inheritance trees can include temporary tables if the parent is
permanent, which makes possible the presence of multiple temporary
children from different sessions.  Trying to issue a TRUNCATE on the
parent in this scenario causes a failure, so similarly to any other
queries just ignore such cases, which makes TRUNCATE work
transparently.

This makes truncation behave similarly to any other DML query working on
the parent table with queries which need to be issues on children.  A
set of isolation tests is added to cover basic cases.

Reported-by: Zhou Digoal
Author: Amit Langote, Michael Paquier
Discussion: https://postgr.es/m/15565-ce67a48d0244436a@postgresql.org
Backpatch-through: 9.4

Branch
------
REL9_5_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/0a323ae6769968408d00ec1a9d1790706d5540fc

Modified Files
--------------
src/backend/commands/tablecmds.c             |  23 ++-
src/test/isolation/expected/inherit-temp.out | 217 +++++++++++++++++++++++++++
src/test/isolation/isolation_schedule        |   1 +
src/test/isolation/specs/inherit-temp.spec   |  78 ++++++++++
4 files changed, 316 insertions(+), 3 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix failure to check for open() or fsync() failures.
Следующее
От: Alexander Korotkov
Дата:
Сообщение: pgsql: Remove entry tree root conflict checking from GIN predicatelock