From a2be20a6967df2b860bbe34f7ef4b6826a958058 Mon Sep 17 00:00:00 2001 From: Greg Sabino Mullane Date: Mon, 20 Feb 2012 15:54:08 -0500 Subject: [PATCH] Allow txn_idle to work again for < 8.3 servers by switching to query_time. --- check_postgres.pl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/check_postgres.pl b/check_postgres.pl index 6f0b2c3d2..0e2f3a44d 100755 --- a/check_postgres.pl +++ b/check_postgres.pl @@ -7474,12 +7474,16 @@ sub check_txn_idle { ## We don't GROUP BY because we want details on every connection ## Someday we may even break things down by database + my $SQL2; if ($type ne 'qtime') { $SQL = q{SELECT datname, datid, procpid, usename, client_addr, xact_start, current_query, }. q{CASE WHEN client_port < 0 THEN 0 ELSE client_port END AS client_port, }. qq{COALESCE(ROUND(EXTRACT(epoch FROM now()-$start)),0) AS seconds }. qq{FROM pg_stat_activity WHERE $clause$USERWHERECLAUSE }. q{ORDER BY xact_start, query_start, procpid DESC}; + ## Craft an alternate version for old servers that do not have the xact_start column: + ($SQL2 = $SQL) =~ s/xact_start/query_start AS xact_start/; + $SQL2 =~ s/BY xact_start,/BY/; } else { $SQL = q{SELECT datname, datid, procpid, usename, client_addr, current_query, }. @@ -7489,8 +7493,7 @@ sub check_txn_idle { q{ORDER BY query_start, procpid DESC}; } - my $info = run_command($SQL, { emptyok => 1 } ); - + my $info = run_command($SQL, { emptyok => 1 , version => [ "<8.3 $SQL2" ] } ); ## Extract the first entry $db = $info->{db}[0]; @@ -9673,6 +9676,8 @@ Items not specifically attributed are by GSM (Greg Sabino Mullane). Allow for spaces in item lists when doing same_schema. + Allow txn_idle to work again for < 8.3 servers by switching to query_time. + =item B January 17, 2012 Add the --assume-prod option (Cédric Villemain) -- 2.30.2