Suppress DROP CASCADE notices in regression tests

In the regression tests, when doing cascaded drops, we need to suppress
the notices from DROP CASCADE or there can be transient regression
failures as the order of drops can depend on the physical row order in
pg_depend.

Report and fix suggestion from Tom.
This commit is contained in:
Stephen Frost 2014-11-25 09:49:48 -05:00
parent 30bf4689a9
commit 81d815dc3e
2 changed files with 23 additions and 31 deletions

View File

@ -774,10 +774,10 @@ ERROR: infinite recursion detected in row-security policy for relation "rec1"
-- Mutual recursion via .s.b views
--
SET SESSION AUTHORIZATION rls_regress_user1;
-- Suppress NOTICE messages when doing a cascaded drop.
SET client_min_messages TO 'warning';
DROP VIEW rec1v, rec2v CASCADE;
NOTICE: drop cascades to 2 other objects
DETAIL: drop cascades to policy r1 on table rec1
drop cascades to policy r2 on table rec2
RESET client_min_messages;
CREATE VIEW rec1v WITH (security_barrier) AS SELECT * FROM rec1;
CREATE VIEW rec2v WITH (security_barrier) AS SELECT * FROM rec2;
SET SESSION AUTHORIZATION rls_regress_user0;
@ -1606,10 +1606,10 @@ EXPLAIN (COSTS OFF) SELECT * FROM y2 WHERE f_leak(b);
-- Plancache invalidate on user change.
--
RESET SESSION AUTHORIZATION;
-- Suppress NOTICE messages when doing a cascaded drop.
SET client_min_messages TO 'warning';
DROP TABLE t1 CASCADE;
NOTICE: drop cascades to 2 other objects
DETAIL: drop cascades to table t2
drop cascades to table t3
RESET client_min_messages;
CREATE TABLE t1 (a integer);
GRANT SELECT ON t1 TO rls_regress_user1, rls_regress_user2;
CREATE POLICY p1 ON t1 TO rls_regress_user1 USING ((a % 2) = 0);
@ -2205,32 +2205,10 @@ DROP TABLE copy_t;
-- Clean up objects
--
RESET SESSION AUTHORIZATION;
-- Suppress NOTICE messages when doing a cascaded drop.
SET client_min_messages TO 'warning';
DROP SCHEMA rls_regress_schema CASCADE;
NOTICE: drop cascades to 24 other objects
DETAIL: drop cascades to function f_leak(text)
drop cascades to table uaccount
drop cascades to table category
drop cascades to table document
drop cascades to table dependent
drop cascades to table rec1
drop cascades to table rec2
drop cascades to view rec1v
drop cascades to view rec2v
drop cascades to table s1
drop cascades to table s2
drop cascades to view v2
drop cascades to table z1
drop cascades to table x1
drop cascades to table y1
drop cascades to table y2
drop cascades to table t1
drop cascades to table t2
drop cascades to table t3
drop cascades to table t4
drop cascades to table event_trigger_test
drop cascades to function start_command()
drop cascades to function end_command()
drop cascades to function drop_sql_command()
RESET client_min_messages;
DROP USER rls_regress_user0;
DROP USER rls_regress_user1;
DROP USER rls_regress_user2;

View File

@ -321,7 +321,12 @@ SELECT * FROM rec1; -- fail, mutual recursion via views
-- Mutual recursion via .s.b views
--
SET SESSION AUTHORIZATION rls_regress_user1;
-- Suppress NOTICE messages when doing a cascaded drop.
SET client_min_messages TO 'warning';
DROP VIEW rec1v, rec2v CASCADE;
RESET client_min_messages;
CREATE VIEW rec1v WITH (security_barrier) AS SELECT * FROM rec1;
CREATE VIEW rec2v WITH (security_barrier) AS SELECT * FROM rec2;
SET SESSION AUTHORIZATION rls_regress_user0;
@ -601,7 +606,12 @@ EXPLAIN (COSTS OFF) SELECT * FROM y2 WHERE f_leak(b);
-- Plancache invalidate on user change.
--
RESET SESSION AUTHORIZATION;
-- Suppress NOTICE messages when doing a cascaded drop.
SET client_min_messages TO 'warning';
DROP TABLE t1 CASCADE;
RESET client_min_messages;
CREATE TABLE t1 (a integer);
GRANT SELECT ON t1 TO rls_regress_user1, rls_regress_user2;
@ -914,7 +924,11 @@ DROP TABLE copy_t;
--
RESET SESSION AUTHORIZATION;
-- Suppress NOTICE messages when doing a cascaded drop.
SET client_min_messages TO 'warning';
DROP SCHEMA rls_regress_schema CASCADE;
RESET client_min_messages;
DROP USER rls_regress_user0;
DROP USER rls_regress_user1;