Skip to content

Commit bb3b729

Browse files
committed
feature: add functions drops to bootstrap
1 parent 3499aa3 commit bb3b729

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

mamonsu/tools/bootstrap/sql.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
3838
INSERT INTO mamonsu.timestamp_master_{1} (id) values (1);
3939
40+
DROP FUNCTION IF EXISTS mamonsu.timestamp_master_update();
4041
CREATE OR REPLACE FUNCTION mamonsu.timestamp_master_update()
4142
RETURNS void AS $$
4243
UPDATE mamonsu.timestamp_master_{1} SET
@@ -46,6 +47,7 @@
4647
id = 1;
4748
$$ LANGUAGE SQL SECURITY DEFINER;
4849
50+
DROP FUNCTION IF EXISTS mamonsu.timestamp_get();
4951
CREATE OR REPLACE FUNCTION mamonsu.timestamp_get()
5052
RETURNS double precision AS $$
5153
SELECT
@@ -60,12 +62,14 @@
6062
$do$
6163
BEGIN
6264
IF (SELECT setting::integer FROM pg_settings WHERE name = 'server_version_num') >= 100000 THEN
65+
DROP FUNCTION IF EXISTS mamonsu.count_autovacuum();
6366
CREATE OR REPLACE FUNCTION mamonsu.count_autovacuum()
6467
RETURNS BIGINT AS $$
6568
SELECT count(*)::bigint FROM pg_catalog.pg_stat_activity
6669
WHERE backend_type = 'autovacuum worker'
6770
$$ LANGUAGE SQL SECURITY DEFINER;
6871
ELSE
72+
DROP FUNCTION IF EXISTS mamonsu.count_autovacuum();
6973
CREATE OR REPLACE FUNCTION mamonsu.count_autovacuum()
7074
RETURNS BIGINT AS $$
7175
SELECT count(*)::bigint FROM pg_catalog.pg_stat_activity
@@ -81,6 +85,7 @@
8185
$do$
8286
BEGIN
8387
IF (SELECT setting::integer FROM pg_settings WHERE name = 'server_version_num') >= 100000 THEN
88+
DROP FUNCTION IF EXISTS mamonsu.get_connections_states();
8489
CREATE OR REPLACE FUNCTION mamonsu.get_connections_states()
8590
RETURNS TABLE(state text, waiting boolean) AS $$
8691
SELECT state,
@@ -89,6 +94,7 @@
8994
WHERE (backend_type = 'client backend' OR backend_type = 'parallel worker')
9095
$$ LANGUAGE SQL SECURITY DEFINER;
9196
ELSE
97+
DROP FUNCTION IF EXISTS mamonsu.get_connections_states();
9298
CREATE OR REPLACE FUNCTION mamonsu.get_connections_states()
9399
RETURNS TABLE(state text, waiting boolean) AS $$
94100
SELECT state,
@@ -100,6 +106,7 @@
100106
END
101107
$do$;
102108
109+
DROP FUNCTION IF EXISTS mamonsu.get_oldest_xid();
103110
CREATE or REPLACE FUNCTION mamonsu.get_oldest_xid()
104111
RETURNS BIGINT AS $$
105112
SELECT
@@ -108,6 +115,7 @@
108115
FROM pg_catalog.pg_stat_activity
109116
$$ LANGUAGE SQL SECURITY DEFINER;
110117
118+
DROP FUNCTION IF EXISTS mamonsu.get_oldest_transaction();
111119
CREATE or REPLACE FUNCTION mamonsu.get_oldest_transaction()
112120
RETURNS DOUBLE PRECISION AS $$
113121
SELECT
@@ -122,6 +130,7 @@
122130
pid <> pg_backend_pid()
123131
$$ LANGUAGE SQL SECURITY DEFINER;
124132
133+
DROP FUNCTION IF EXISTS mamonsu.count_{3}_files();
125134
CREATE OR REPLACE FUNCTION mamonsu.count_{3}_files()
126135
RETURNS BIGINT AS $$
127136
WITH list(filename) as (SELECT * FROM pg_catalog.pg_ls_dir('pg_{3}'))
@@ -132,6 +141,7 @@
132141
WHERE filename similar to '{2}'
133142
$$ LANGUAGE SQL SECURITY DEFINER;
134143
144+
DROP FUNCTION IF EXISTS mamonsu.archive_command_files();
135145
CREATE OR REPLACE FUNCTION mamonsu.archive_command_files()
136146
RETURNS TABLE(files_count BIGINT, files_size BIGINT) AS $$
137147
WITH values AS (
@@ -151,22 +161,26 @@
151161
FROM values
152162
$$ LANGUAGE SQL SECURITY DEFINER;
153163
164+
DROP FUNCTION IF EXISTS mamonsu.archive_stat();
154165
CREATE OR REPLACE FUNCTION mamonsu.archive_stat()
155166
RETURNS TABLE(archived_count BIGINT, failed_count BIGINT) AS $$
156167
SELECT archived_count, failed_count from pg_stat_archiver
157168
$$ LANGUAGE SQL SECURITY DEFINER;
158169
170+
DROP FUNCTION IF EXISTS mamonsu.get_sys_param(text);
159171
CREATE OR REPLACE FUNCTION mamonsu.get_sys_param(param text)
160172
RETURNS TABLE(SETTING TEXT) AS $$
161173
select setting from pg_catalog.pg_settings where name = param
162174
$$ LANGUAGE SQL SECURITY DEFINER;
163175
176+
DROP FUNCTION IF EXISTS mamonsu.prepared_transaction();
164177
CREATE OR REPLACE FUNCTION mamonsu.prepared_transaction()
165178
RETURNS TABLE(count_prepared BIGINT, oldest_prepared BIGINT) AS $$
166179
SELECT COUNT(*) AS count_prepared,
167180
coalesce (ROUND(MAX(EXTRACT (EPOCH FROM (now() - prepared)))),0)::bigint AS oldest_prepared
168181
FROM pg_catalog.pg_prepared_xacts$$ LANGUAGE SQL SECURITY DEFINER;
169182
183+
DROP FUNCTION IF EXISTS mamonsu.count_{3}_lag_lsn();
170184
CREATE OR REPLACE FUNCTION mamonsu.count_{3}_lag_lsn()
171185
RETURNS TABLE(application_name TEXT, {8} total_lag INTEGER) AS $$
172186
SELECT application_name,
@@ -188,7 +202,8 @@
188202
JOIN pg_namespace n
189203
ON e.extnamespace = n.oid
190204
WHERE e.extname = 'pg_buffercache';
191-
EXECUTE 'CREATE OR REPLACE FUNCTION mamonsu.buffer_cache()
205+
EXECUTE 'DROP FUNCTION IF EXISTS mamonsu.buffer_cache();
206+
CREATE OR REPLACE FUNCTION mamonsu.buffer_cache()
192207
RETURNS TABLE(SIZE BIGINT, TWICE_USED BIGINT, DIRTY BIGINT) AS $$
193208
SELECT
194209
SUM(1) * (current_setting(''block_size'')::int8),
@@ -225,7 +240,8 @@
225240
JOIN pg_namespace n
226241
ON e.extnamespace = n.oid
227242
WHERE e.extname = 'pgpro_stats';
228-
EXECUTE 'CREATE OR REPLACE FUNCTION mamonsu.wait_sampling_all_locks()
243+
EXECUTE 'DROP FUNCTION IF EXISTS mamonsu.wait_sampling_all_locks();
244+
CREATE OR REPLACE FUNCTION mamonsu.wait_sampling_all_locks()
229245
RETURNS TABLE(lock_type text, count bigint) AS $$
230246
WITH lock_table AS (
231247
SELECT setoflocks.key,
@@ -253,7 +269,8 @@
253269
GROUP BY 1
254270
ORDER BY count DESC;
255271
$$ LANGUAGE SQL SECURITY DEFINER;';
256-
EXECUTE 'CREATE OR REPLACE FUNCTION mamonsu.wait_sampling_hw_locks()
272+
EXECUTE 'DROP FUNCTION IF EXISTS mamonsu.wait_sampling_hw_locks();
273+
CREATE OR REPLACE FUNCTION mamonsu.wait_sampling_hw_locks()
257274
RETURNS TABLE(lock_type text, count bigint) AS $$
258275
WITH lock_table AS (
259276
SELECT setoflocks.key,
@@ -272,7 +289,8 @@
272289
GROUP BY 1
273290
ORDER BY count DESC;
274291
$$ LANGUAGE SQL SECURITY DEFINER;';
275-
EXECUTE 'CREATE OR REPLACE FUNCTION mamonsu.wait_sampling_lw_locks()
292+
EXECUTE 'DROP FUNCTION IF EXISTS mamonsu.wait_sampling_lw_locks();
293+
CREATE OR REPLACE FUNCTION mamonsu.wait_sampling_lw_locks()
276294
RETURNS TABLE(lock_type text, count bigint) AS $$
277295
WITH lock_table AS (
278296
SELECT setoflocks.key,
@@ -350,7 +368,8 @@
350368
JOIN pg_namespace n
351369
ON e.extnamespace = n.oid
352370
WHERE e.extname = 'pgpro_stats';
353-
EXECUTE 'CREATE OR REPLACE FUNCTION mamonsu.statements_pro()
371+
EXECUTE 'DROP FUNCTION IF EXISTS mamonsu.statements_pro();
372+
CREATE OR REPLACE FUNCTION mamonsu.statements_pro()
354373
RETURNS TABLE({columns}) AS $$
355374
SELECT {metrics}
356375
FROM ' || extension_schema || '.pgpro_stats_totals

0 commit comments

Comments
 (0)