Skip to content

Commit 575df7c

Browse files
committed
fix: updated Archive Queue query to fit PG 10- wal_segment_size
1 parent 3827fa5 commit 575df7c

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

mamonsu/plugins/pgsql/archive_command.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class ArchiveCommand(Plugin):
1313
query_agent_count_files = """
1414
WITH values AS (
1515
SELECT
16-
4096/(coalesce(pg_settings.setting::bigint/1024/1024, 1)) AS segment_parts_count,
16+
4096/(ceil(pg_settings.setting::numeric/1024/1024)) AS segment_parts_count,
1717
setting::bigint AS segment_size,
1818
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
1919
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -23,13 +23,13 @@ class ArchiveCommand(Plugin):
2323
('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
2424
FROM pg_settings, pg_stat_archiver
2525
WHERE pg_settings.name = 'wal_segment_size')
26-
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
26+
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)::bigint AS count_files
2727
FROM values;
2828
"""
2929
query_agent_size_files = """
3030
WITH values AS (
3131
SELECT
32-
4096/(coalesce(pg_settings.setting::bigint/1024/1024, 1)) AS segment_parts_count,
32+
4096/(ceil(pg_settings.setting::numeric/1024/1024)) AS segment_parts_count,
3333
setting::bigint AS segment_size,
3434
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
3535
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -39,7 +39,7 @@ class ArchiveCommand(Plugin):
3939
('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
4040
FROM pg_settings, pg_stat_archiver
4141
WHERE pg_settings.name = 'wal_segment_size')
42-
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
42+
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)::bigint AS size_files
4343
FROM values;
4444
"""
4545

@@ -61,7 +61,7 @@ def run(self, zbx):
6161
query_queue = """
6262
WITH values AS (
6363
SELECT
64-
4096/(coalesce(pg_settings.setting::bigint/1024/1024, 1)) AS segment_parts_count,
64+
4096/(ceil(pg_settings.setting::numeric/1024/1024)) AS segment_parts_count,
6565
setting::bigint AS segment_size,
6666
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
6767
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -71,8 +71,8 @@ def run(self, zbx):
7171
('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
7272
FROM pg_settings, pg_stat_archiver
7373
WHERE pg_settings.name = 'wal_segment_size')
74-
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,
75-
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
74+
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)::bigint AS count_files,
75+
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)::bigint AS size_files
7676
FROM values;
7777
"""
7878

mamonsu/tools/bootstrap/sql.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
RETURNS TABLE(COUNT_FILES BIGINT, SIZE_FILES BIGINT) AS $$
114114
WITH values AS (
115115
SELECT
116-
4096/(coalesce(pg_settings.setting::bigint/1024/1024, 1)) AS segment_parts_count,
116+
4096/(ceil(pg_settings.setting::numeric/1024/1024)) AS segment_parts_count,
117117
setting::bigint AS segment_size,
118118
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
119119
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -123,8 +123,8 @@
123123
('x' || substring(pg_{10}_name(pg_current_{4}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
124124
FROM pg_settings, pg_stat_archiver
125125
WHERE pg_settings.name = 'wal_segment_size')
126-
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,
127-
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+
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)::bigint AS count_files,
127+
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)::bigint AS size_files
128128
FROM values
129129
$$ LANGUAGE SQL SECURITY DEFINER;
130130

0 commit comments

Comments
 (0)