diff options
Diffstat (limited to 'src/test/modules/test_oat_hooks/sql')
| -rw-r--r-- | src/test/modules/test_oat_hooks/sql/alter_table.sql | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/test/modules/test_oat_hooks/sql/alter_table.sql b/src/test/modules/test_oat_hooks/sql/alter_table.sql new file mode 100644 index 00000000000..3d308a47c11 --- /dev/null +++ b/src/test/modules/test_oat_hooks/sql/alter_table.sql @@ -0,0 +1,48 @@ +-- +-- OAT checks for ALTER TABLE +-- + +-- This test script fails if debug_discard_caches is enabled, because cache +-- flushes cause extra calls of the OAT hook in recomputeNamespacePath, +-- resulting in more NOTICE messages than are in the expected output. +SET debug_discard_caches = 0; + +LOAD 'test_oat_hooks'; +SET test_oat_hooks.audit = true; + +CREATE SCHEMA test_oat_schema; +CREATE TABLE test_oat_schema.test_oat_tab (c1 int, c2 text); +CREATE RULE test_oat_notify AS + ON UPDATE TO test_oat_schema.test_oat_tab + DO ALSO NOTIFY test_oat_tab; + +CREATE FUNCTION test_oat_schema.test_trigger() +RETURNS trigger +LANGUAGE plpgsql +AS $$ +BEGIN + IF TG_OP = 'DELETE' + THEN + RETURN OLD; + ELSE + RETURN NEW; + END IF; +END; $$; +CREATE TRIGGER test_oat_trigger BEFORE INSERT ON test_oat_schema.test_oat_tab + FOR EACH STATEMENT EXECUTE FUNCTION test_oat_schema.test_trigger(); + +-- RLS +ALTER TABLE test_oat_schema.test_oat_tab ENABLE ROW LEVEL SECURITY; +ALTER TABLE test_oat_schema.test_oat_tab DISABLE ROW LEVEL SECURITY; +ALTER TABLE test_oat_schema.test_oat_tab FORCE ROW LEVEL SECURITY; +ALTER TABLE test_oat_schema.test_oat_tab NO FORCE ROW LEVEL SECURITY; + +-- Rules +ALTER TABLE test_oat_schema.test_oat_tab DISABLE RULE test_oat_notify; +ALTER TABLE test_oat_schema.test_oat_tab ENABLE RULE test_oat_notify; + +-- Triggers +ALTER TABLE test_oat_schema.test_oat_tab DISABLE TRIGGER test_oat_trigger; +ALTER TABLE test_oat_schema.test_oat_tab ENABLE TRIGGER test_oat_trigger; + +DROP TABLE test_oat_schema.test_oat_tab; |
