Skip to content

Commit 41d76ac

Browse files
phumpalmajormoses
authored andcommitted
Adds version function
1 parent bf62bb4 commit 41d76ac

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

bin/check-postgres-replication.rb

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ def compute_lag(master, slave, m_segbytes)
104104
((m_segment.hex - s_segment.hex) * m_segbytes) + (m_offset.hex - s_offset.hex)
105105
end
106106

107+
def check_vsn(conn)
108+
pg_vsn = conn.exec("SELECT current_setting('server_version')").getvalue(0, 0)
109+
return if Gem::Version.new(pg_vsn) < Gem::Version.new('10.0') && Gem::Version.new(pg_vsn) >= Gem::Version.new('9.0')
110+
end
111+
107112
def run
108113
ssl_mode = config[:ssl] ? 'require' : 'prefer'
109114

@@ -117,12 +122,10 @@ def run
117122
sslmode: ssl_mode,
118123
connect_timeout: config[:timeout])
119124

120-
pg_vsn = conn_master.exec("SELECT current_setting('server_version')").getvalue(0, 0)
121-
122-
master = if Gem::Version.new(pg_vsn) > Gem::Version.new('9.6')
123-
conn_master.exec('SELECT pg_current_wal_lsn()').getvalue(0, 0)
124-
else
125+
master = if check_vsn(conn_master)
125126
conn_master.exec('SELECT pg_current_xlog_location()').getvalue(0, 0)
127+
else
128+
conn_master.exec('SELECT pg_current_wal_lsn()').getvalue(0, 0)
126129
end
127130
m_segbytes = conn_master.exec('SHOW wal_segment_size').getvalue(0, 0).sub(/\D+/, '').to_i << 20
128131
conn_master.close
@@ -136,10 +139,10 @@ def run
136139
sslmode: ssl_mode,
137140
connect_timeout: config[:timeout])
138141

139-
slave = if Gem::Version.new(pg_vsn) > Gem::Version.new('9.6')
140-
conn_slave.exec('SELECT pg_last_wal_replay_lsn()').getvalue(0, 0)
141-
else
142+
slave = if check_vsn(conn_slave)
142143
conn_slave.exec('SELECT pg_last_xlog_receive_location()').getvalue(0, 0)
144+
else
145+
conn_slave.exec('SELECT pg_last_wal_replay_lsn()').getvalue(0, 0)
143146
end
144147
conn_slave.close
145148

0 commit comments

Comments
 (0)