Postgres-XLをメインのPostgreSQLドキュメントと比較しています。歴史は共有されていますが、2つの異なる製品。 Postgres-XLにはたくさんがあります 在庫のPostgreSQLからの変更の。
CREATE TRIGGER
Pgのドキュメントに記載されているはずですが、記載されていません。これは見落としです。
ソースコードをざっと見てみると、CREATE TRIGGER
ShareRowExclusiveLock
を取ります したがって、この場合、XLのドキュメントはPostgreSQLの動作と一致します。
次のような操作を行うことで、ソースを確認せずに自分でこれを確認できます。
CREATE TABLE test();
CREATE OR REPLACE FUNCTION dummy_tg() RETURNS TRIGGER
LANGUAGE plpgsql AS $$ BEGIN END; $$;
BEGIN;
CREATE TRIGGER blah BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE dummy_tg();
\x
SELECT * FROM pg_locks
WHERE pid = pg_backend_pid()
AND relation = 'test'::regclass;
ROLLBACK;
...これは、私が情報源の読み方について間違っていたことを示しています。理由は次のとおりです。
locktype | relation
mode | AccessExclusiveLock
AccessExclusiveLockが必要でした。