You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
postgres/src/test/modules/test_oat_hooks/sql/alter_table.sql

48 lines
1.5 KiB

--
-- 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;