mirror of https://github.com/postgres/postgres
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.
48 lines
1.5 KiB
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;
|
|
|