Skip to content

Commit caf7c54

Browse files
committed
Merge branch 'dev'
2 parents a87ae53 + b5b5577 commit caf7c54

File tree

2 files changed

+17
-20
lines changed

2 files changed

+17
-20
lines changed

mamonsu/tools/bootstrap/sql.py

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -109,25 +109,21 @@
109109
110110
CREATE OR REPLACE FUNCTION mamonsu.archive_command_files()
111111
RETURNS TABLE(COUNT_FILES BIGINT, SIZE_FILES BIGINT) AS $$
112-
WITH segment_parts_count AS
113-
(SELECT 4096/(setting::bigint/1024/1024) AS value FROM pg_settings
114-
WHERE name = 'wal_segment_size'),
115-
segment_size AS
116-
(SELECT setting::bigint AS value FROM pg_settings
117-
WHERE name = 'wal_segment_size'),
118-
last_wal_div AS
119-
(SELECT ('x' || substring(last_archived_wal from 9 for 8))::bit(32)::int AS value
120-
FROM pg_stat_archiver),
121-
last_wal_mod AS
122-
(SELECT ('x' || substring(last_archived_wal from 17 for 8))::bit(32)::int AS value
123-
FROM pg_stat_archiver),
124-
current_wal_div AS
125-
(SELECT ('x' || substring(pg_walfile_name(pg_current_wal_lsn()) from 9 for 8))::bit(32)::int AS value),
126-
current_wal_mod AS
127-
(SELECT ('x' || substring(pg_walfile_name(pg_current_wal_lsn()) from 17 for 8))::bit(32)::int AS value)
128-
SELECT greatest(coalesce((segment_parts_count.value - last_wal_mod.value) + ((current_wal_div.value - last_wal_div.value - 1) * segment_parts_count.value) + current_wal_mod.value - 1, 0), 0) AS count_files,
129-
greatest(coalesce(((segment_parts_count.value - last_wal_mod.value) + ((current_wal_div.value - last_wal_div.value - 1) * segment_parts_count.value) + current_wal_mod.value - 1) * segment_size.value, 0), 0) AS size_files
130-
FROM segment_parts_count, segment_size, last_wal_div, last_wal_mod, current_wal_div, current_wal_mod
112+
WITH values AS (
113+
SELECT
114+
4096/(pg_settings.setting::bigint/1024/1024) AS segment_parts_count,
115+
setting::bigint AS segment_size,
116+
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
117+
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
118+
CASE WHEN pg_is_in_recovery() THEN NULL ELSE
119+
('x' || substring(pg_{10}_name(pg_current_{4}()) from 9 for 8))::bit(32)::int END AS current_wal_div,
120+
CASE WHEN pg_is_in_recovery() THEN NULL ELSE
121+
('x' || substring(pg_{10}_name(pg_current_{4}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
122+
FROM pg_settings, pg_stat_archiver
123+
WHERE pg_settings.name = 'wal_segment_size')
124+
SELECT greatest(coalesce((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1, 0), 0) AS count_files,
125+
greatest(coalesce(((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1) * segment_size, 0), 0) AS size_files
126+
FROM values
131127
$$ LANGUAGE SQL SECURITY DEFINER;
132128
133129
CREATE OR REPLACE FUNCTION mamonsu.archive_stat()

mamonsu/tools/bootstrap/start.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@ def fill_query_params(queries):
167167
'wal_lsn' if Pooler.server_version_greater('10.0') else 'xlog_location',
168168
'flush_lag INTERVAL, replay_lag INTERVAL, write_lag INTERVAL,' if Pooler.server_version_greater('10.0')
169169
else '',
170-
'lsn' if Pooler.server_version_greater('10.0') else 'location'
170+
'lsn' if Pooler.server_version_greater('10.0') else 'location',
171+
'walfile' if Pooler.server_version_greater('10.0') else 'xlogfile'
171172
).split(QuerySplit):
172173
formatted_queries += sql
173174
return formatted_queries

0 commit comments

Comments
 (0)