В доке не нашел.
Спасибо
Помню уже было обсуждение это как-то раз давно. В памяти осталось лишь, что TRUNCATE - это как твоя бывшая. С ней всё сложно.
в случае Postgres я отношу TRUNCATE к DDL — из-за необходимости в AccessExclusiveLock.
По ISO SQL — DML. И это (даже несколько раз) написано в документации PostgreSQL, между прочим.
И относите неправильно, кстати. Команды относятся к DML или DDL на основании того, что они делают, а не на основании дефектов их реализации в конкретных СУБД. ;)
Спасибо за ответ А не скинете ссылку на доку?
ISO SQL:2016: 14 Data manipulation ... 14.10 <truncate table statement> > А не скинете ссылку на доку? Прямо в документации PostgreSQL это не написано, учтите (как и многое другое — видимо, подразумевается, что все прочитают это... в стандарте или где-то ещё). Зато упоминается там, где это имеет практическое значение. Пример 1 (из https://www.postgresql.org/docs/current/runtime-config-logging.html ): log_statement (enum) Controls which SQL statements are logged. Valid values are none (off), ddl, mod, and all (all statements). ddl logs all data definition statements, such as CREATE, ALTER, and DROP statements. mod logs all ddl statements, plus data-modifying statements such as INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM. Пример 2 (из https://www.postgresql.org/docs/current/plpgsql-trigger.html ), где на этом основано разделение видов триггеров: 43.10.1. Triggers on Data Changes 43.10.2. Triggers on Events Триггеры на TRUNCATE относятся к первому виду. И так далее (надоело искать). А вот ( https://www.postgresql.org/docs/current/mvcc-caveats.html ), например, ошибка в документации: Some DDL commands, currently only TRUNCATE and the table-rewriting forms of ALTER TABLE, are not MVCC-safe. Вот взяли бы Вы и написали bug report по этому поводу, кстати, раз уж я за Вас по-grep-ал документацию. ;)
Спасибо вам большое за ответ, очень много полезной информации) По поводу заведения бага, не разу не пробовал, но попробую (после отпуска 😁)
Обсуждают сегодня