File: 03_db_module.sql

package info (click to toggle)
powa-archivist 5.1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,224 kB
  • sloc: sql: 40,620; ansic: 495; makefile: 34; sh: 4
file content (59 lines) | stat: -rw-r--r-- 3,511 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
-- General setup
\set SHOW_CONTEXT never

-- registering a remote server should have registered all default db modules
SELECT * FROM "PoWA".powa_db_module_config
ORDER BY srvid, db_module COLLATE "C";

-- Can't deactivate a specific db on an "all databases" config
SELECT * FROM "PoWA".powa_deactivate_db_module(1, 'pg_stat_user_functions', ARRAY['test']);
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Activating a specifc db on an "all databases" config switch to that db only
SELECT * FROM "PoWA".powa_activate_db_module(1, 'pg_stat_user_functions', ARRAY['d1']);
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Activating a specifc db on an specific db config replace that database
SELECT * FROM "PoWA".powa_activate_db_module(1, 'pg_stat_user_functions', ARRAY['d2']);
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Deactivating without specific database switches back to "all db", and mark it as disabled
SELECT * FROM "PoWA".powa_deactivate_db_module(1, 'pg_stat_user_functions');
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Activating with multiple db switches back to enabled and setup the datbases
SELECT * FROM "PoWA".powa_activate_db_module(1, 'pg_stat_user_functions', ARRAY['d1', 'd3', 'd4']);
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Deactivating a specific db will just remove that db
SELECT * FROM "PoWA".powa_deactivate_db_module(1, 'pg_stat_user_functions', ARRAY['d3']);
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Can't deactivate a non existing specific db
SELECT * FROM "PoWA".powa_deactivate_db_module(1, 'pg_stat_user_functions', ARRAY['d3']);
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Deactivating all remaining db will switch back to "all db", and mark it as disabled
SELECT * FROM "PoWA".powa_deactivate_db_module(1, 'pg_stat_user_functions', ARRAY['d1', 'd4']);
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Deactivating a deactivated db module is a noop
SELECT * FROM "PoWA".powa_deactivate_db_module(1, 'pg_stat_user_functions', ARRAY['d1', 'd4']);
SELECT enabled, dbnames FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_user_functions';

-- Deactivating a known but not configured db module isn't supported
DELETE FROM "PoWA".powa_db_module_config WHERE srvid = 1 AND db_module = 'pg_stat_all_indexes';
SELECT * FROM "PoWA".powa_deactivate_db_module(1, 'pg_stat_all_indexes');

-----------------------------------------------------------
-- Test the query source API, with different major versions
-----------------------------------------------------------

-- pg 13.1 should see n_ins_since_vacuum but not last_seq_scan and other fields
-- introduced in pg16
SELECT * FROM "PoWA".powa_db_functions(1, 130001)
ORDER BY db_module COLLATE "C", operation COLLATE "C";

-- Check that we don't see n_ins_since_vacuum on pg13-
SELECT query_source FROM "PoWA".powa_db_functions(1, 120012)
WHERE db_module = 'pg_stat_all_tables' AND operation = 'snapshot';