|
37 | 37 |
|
38 | 38 | INSERT INTO mamonsu.timestamp_master_{1} (id) values (1);
|
39 | 39 |
|
| 40 | +DROP FUNCTION IF EXISTS mamonsu.timestamp_master_update(); |
40 | 41 | CREATE OR REPLACE FUNCTION mamonsu.timestamp_master_update()
|
41 | 42 | RETURNS void AS $$
|
42 | 43 | UPDATE mamonsu.timestamp_master_{1} SET
|
|
46 | 47 | id = 1;
|
47 | 48 | $$ LANGUAGE SQL SECURITY DEFINER;
|
48 | 49 |
|
| 50 | +DROP FUNCTION IF EXISTS mamonsu.timestamp_get(); |
49 | 51 | CREATE OR REPLACE FUNCTION mamonsu.timestamp_get()
|
50 | 52 | RETURNS double precision AS $$
|
51 | 53 | SELECT
|
|
60 | 62 | $do$
|
61 | 63 | BEGIN
|
62 | 64 | IF (SELECT setting::integer FROM pg_settings WHERE name = 'server_version_num') >= 100000 THEN
|
| 65 | + DROP FUNCTION IF EXISTS mamonsu.count_autovacuum(); |
63 | 66 | CREATE OR REPLACE FUNCTION mamonsu.count_autovacuum()
|
64 | 67 | RETURNS BIGINT AS $$
|
65 | 68 | SELECT count(*)::bigint FROM pg_catalog.pg_stat_activity
|
66 | 69 | WHERE backend_type = 'autovacuum worker'
|
67 | 70 | $$ LANGUAGE SQL SECURITY DEFINER;
|
68 | 71 | ELSE
|
| 72 | + DROP FUNCTION IF EXISTS mamonsu.count_autovacuum(); |
69 | 73 | CREATE OR REPLACE FUNCTION mamonsu.count_autovacuum()
|
70 | 74 | RETURNS BIGINT AS $$
|
71 | 75 | SELECT count(*)::bigint FROM pg_catalog.pg_stat_activity
|
|
81 | 85 | $do$
|
82 | 86 | BEGIN
|
83 | 87 | IF (SELECT setting::integer FROM pg_settings WHERE name = 'server_version_num') >= 100000 THEN
|
| 88 | + DROP FUNCTION IF EXISTS mamonsu.get_connections_states(); |
84 | 89 | CREATE OR REPLACE FUNCTION mamonsu.get_connections_states()
|
85 | 90 | RETURNS TABLE(state text, waiting boolean) AS $$
|
86 | 91 | SELECT state,
|
|
89 | 94 | WHERE (backend_type = 'client backend' OR backend_type = 'parallel worker')
|
90 | 95 | $$ LANGUAGE SQL SECURITY DEFINER;
|
91 | 96 | ELSE
|
| 97 | + DROP FUNCTION IF EXISTS mamonsu.get_connections_states(); |
92 | 98 | CREATE OR REPLACE FUNCTION mamonsu.get_connections_states()
|
93 | 99 | RETURNS TABLE(state text, waiting boolean) AS $$
|
94 | 100 | SELECT state,
|
|
100 | 106 | END
|
101 | 107 | $do$;
|
102 | 108 |
|
| 109 | +DROP FUNCTION IF EXISTS mamonsu.get_oldest_xid(); |
103 | 110 | CREATE or REPLACE FUNCTION mamonsu.get_oldest_xid()
|
104 | 111 | RETURNS BIGINT AS $$
|
105 | 112 | SELECT
|
|
108 | 115 | FROM pg_catalog.pg_stat_activity
|
109 | 116 | $$ LANGUAGE SQL SECURITY DEFINER;
|
110 | 117 |
|
| 118 | +DROP FUNCTION IF EXISTS mamonsu.get_oldest_transaction(); |
111 | 119 | CREATE or REPLACE FUNCTION mamonsu.get_oldest_transaction()
|
112 | 120 | RETURNS DOUBLE PRECISION AS $$
|
113 | 121 | SELECT
|
|
122 | 130 | pid <> pg_backend_pid()
|
123 | 131 | $$ LANGUAGE SQL SECURITY DEFINER;
|
124 | 132 |
|
| 133 | +DROP FUNCTION IF EXISTS mamonsu.count_{3}_files(); |
125 | 134 | CREATE OR REPLACE FUNCTION mamonsu.count_{3}_files()
|
126 | 135 | RETURNS BIGINT AS $$
|
127 | 136 | WITH list(filename) as (SELECT * FROM pg_catalog.pg_ls_dir('pg_{3}'))
|
|
132 | 141 | WHERE filename similar to '{2}'
|
133 | 142 | $$ LANGUAGE SQL SECURITY DEFINER;
|
134 | 143 |
|
| 144 | +DROP FUNCTION IF EXISTS mamonsu.archive_command_files(); |
135 | 145 | CREATE OR REPLACE FUNCTION mamonsu.archive_command_files()
|
136 | 146 | RETURNS TABLE(files_count BIGINT, files_size BIGINT) AS $$
|
137 | 147 | WITH values AS (
|
|
151 | 161 | FROM values
|
152 | 162 | $$ LANGUAGE SQL SECURITY DEFINER;
|
153 | 163 |
|
| 164 | +DROP FUNCTION IF EXISTS mamonsu.archive_stat(); |
154 | 165 | CREATE OR REPLACE FUNCTION mamonsu.archive_stat()
|
155 | 166 | RETURNS TABLE(archived_count BIGINT, failed_count BIGINT) AS $$
|
156 | 167 | SELECT archived_count, failed_count from pg_stat_archiver
|
157 | 168 | $$ LANGUAGE SQL SECURITY DEFINER;
|
158 | 169 |
|
| 170 | +DROP FUNCTION IF EXISTS mamonsu.get_sys_param(text); |
159 | 171 | CREATE OR REPLACE FUNCTION mamonsu.get_sys_param(param text)
|
160 | 172 | RETURNS TABLE(SETTING TEXT) AS $$
|
161 | 173 | select setting from pg_catalog.pg_settings where name = param
|
162 | 174 | $$ LANGUAGE SQL SECURITY DEFINER;
|
163 | 175 |
|
| 176 | +DROP FUNCTION IF EXISTS mamonsu.prepared_transaction(); |
164 | 177 | CREATE OR REPLACE FUNCTION mamonsu.prepared_transaction()
|
165 | 178 | RETURNS TABLE(count_prepared BIGINT, oldest_prepared BIGINT) AS $$
|
166 | 179 | SELECT COUNT(*) AS count_prepared,
|
167 | 180 | coalesce (ROUND(MAX(EXTRACT (EPOCH FROM (now() - prepared)))),0)::bigint AS oldest_prepared
|
168 | 181 | FROM pg_catalog.pg_prepared_xacts$$ LANGUAGE SQL SECURITY DEFINER;
|
169 | 182 |
|
| 183 | +DROP FUNCTION IF EXISTS mamonsu.count_{3}_lag_lsn(); |
170 | 184 | CREATE OR REPLACE FUNCTION mamonsu.count_{3}_lag_lsn()
|
171 | 185 | RETURNS TABLE(application_name TEXT, {8} total_lag INTEGER) AS $$
|
172 | 186 | SELECT application_name,
|
|
188 | 202 | JOIN pg_namespace n
|
189 | 203 | ON e.extnamespace = n.oid
|
190 | 204 | 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() |
192 | 207 | RETURNS TABLE(SIZE BIGINT, TWICE_USED BIGINT, DIRTY BIGINT) AS $$
|
193 | 208 | SELECT
|
194 | 209 | SUM(1) * (current_setting(''block_size'')::int8),
|
|
225 | 240 | JOIN pg_namespace n
|
226 | 241 | ON e.extnamespace = n.oid
|
227 | 242 | 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() |
229 | 245 | RETURNS TABLE(lock_type text, count bigint) AS $$
|
230 | 246 | WITH lock_table AS (
|
231 | 247 | SELECT setoflocks.key,
|
|
253 | 269 | GROUP BY 1
|
254 | 270 | ORDER BY count DESC;
|
255 | 271 | $$ 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() |
257 | 274 | RETURNS TABLE(lock_type text, count bigint) AS $$
|
258 | 275 | WITH lock_table AS (
|
259 | 276 | SELECT setoflocks.key,
|
|
272 | 289 | GROUP BY 1
|
273 | 290 | ORDER BY count DESC;
|
274 | 291 | $$ 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() |
276 | 294 | RETURNS TABLE(lock_type text, count bigint) AS $$
|
277 | 295 | WITH lock_table AS (
|
278 | 296 | SELECT setoflocks.key,
|
|
350 | 368 | JOIN pg_namespace n
|
351 | 369 | ON e.extnamespace = n.oid
|
352 | 370 | 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() |
354 | 373 | RETURNS TABLE({columns}) AS $$
|
355 | 374 | SELECT {metrics}
|
356 | 375 | FROM ' || extension_schema || '.pgpro_stats_totals
|
|
0 commit comments