1-- 2-- Hot Standby tests 3-- 4-- hs_primary_extremes.sql 5-- 6 7drop table if exists hs_extreme; 8create table hs_extreme (col1 integer); 9 10CREATE OR REPLACE FUNCTION hs_subxids (n integer) 11RETURNS void 12LANGUAGE plpgsql 13AS $$ 14 BEGIN 15 IF n <= 0 THEN RETURN; END IF; 16 INSERT INTO hs_extreme VALUES (n); 17 PERFORM hs_subxids(n - 1); 18 RETURN; 19 EXCEPTION WHEN raise_exception THEN NULL; END; 20$$; 21 22BEGIN; 23SELECT hs_subxids(257); 24ROLLBACK; 25BEGIN; 26SELECT hs_subxids(257); 27COMMIT; 28 29set client_min_messages = 'warning'; 30 31CREATE OR REPLACE FUNCTION hs_locks_create (n integer) 32RETURNS void 33LANGUAGE plpgsql 34AS $$ 35 BEGIN 36 IF n <= 0 THEN 37 CHECKPOINT; 38 RETURN; 39 END IF; 40 EXECUTE 'CREATE TABLE hs_locks_' || n::text || ' ()'; 41 PERFORM hs_locks_create(n - 1); 42 RETURN; 43 EXCEPTION WHEN raise_exception THEN NULL; END; 44$$; 45 46CREATE OR REPLACE FUNCTION hs_locks_drop (n integer) 47RETURNS void 48LANGUAGE plpgsql 49AS $$ 50 BEGIN 51 IF n <= 0 THEN 52 CHECKPOINT; 53 RETURN; 54 END IF; 55 EXECUTE 'DROP TABLE IF EXISTS hs_locks_' || n::text; 56 PERFORM hs_locks_drop(n - 1); 57 RETURN; 58 EXCEPTION WHEN raise_exception THEN NULL; END; 59$$; 60 61BEGIN; 62SELECT hs_locks_drop(257); 63SELECT hs_locks_create(257); 64SELECT count(*) > 257 FROM pg_locks; 65ROLLBACK; 66BEGIN; 67SELECT hs_locks_drop(257); 68SELECT hs_locks_create(257); 69SELECT count(*) > 257 FROM pg_locks; 70COMMIT; 71SELECT hs_locks_drop(257); 72 73SELECT pg_switch_xlog(); 74