Skip to content

Commit 9a33eeb

Browse files
NikolaySclaude
andcommitted
Fix PostgreSQL version detection using server_version_num
- Use server_version_num instead of table existence check - This avoids query planning errors when tables don't exist - PostgreSQL 17+ (170000+) uses pg_stat_checkpointer - Earlier versions use pg_stat_bgwriter 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 1717ff9 commit 9a33eeb

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

sql/0_node.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ select
5252
'Checkpoints',
5353
(
5454
case
55-
when exists (select 1 from information_schema.tables where table_schema = 'pg_catalog' and table_name = 'pg_stat_checkpointer')
55+
when current_setting('server_version_num')::int >= 170000
5656
then (select (num_timed + num_requested)::text from pg_stat_checkpointer)
5757
else (select (checkpoints_timed + checkpoints_req)::text from pg_stat_bgwriter)
5858
end
@@ -62,7 +62,7 @@ select
6262
'Forced Checkpoints',
6363
(
6464
case
65-
when exists (select 1 from information_schema.tables where table_schema = 'pg_catalog' and table_name = 'pg_stat_checkpointer')
65+
when current_setting('server_version_num')::int >= 170000
6666
then (
6767
select round(100.0 * num_requested::numeric /
6868
(nullif(num_timed + num_requested, 0)), 1)::text || '%'
@@ -80,7 +80,7 @@ select
8080
'Checkpoint MB/sec',
8181
(
8282
case
83-
when exists (select 1 from information_schema.tables where table_schema = 'pg_catalog' and table_name = 'pg_stat_checkpointer')
83+
when current_setting('server_version_num')::int >= 170000
8484
then (
8585
select round((nullif(buffers_written::numeric, 0) /
8686
((1024.0 * 1024 /

0 commit comments

Comments
 (0)