summaryrefslogtreecommitdiff
path: root/lib/gitlab/database/postgresql_adapter/empty_query_ping.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/database/postgresql_adapter/empty_query_ping.rb')
-rw-r--r--lib/gitlab/database/postgresql_adapter/empty_query_ping.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/gitlab/database/postgresql_adapter/empty_query_ping.rb b/lib/gitlab/database/postgresql_adapter/empty_query_ping.rb
new file mode 100644
index 00000000000..906312478ac
--- /dev/null
+++ b/lib/gitlab/database/postgresql_adapter/empty_query_ping.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+# rubocop:disable Gitlab/ModuleWithInstanceVariables
+module Gitlab
+ module Database
+ module PostgresqlAdapter
+ module EmptyQueryPing
+ # ActiveRecord uses `SELECT 1` to check if the connection is alive
+ # We patch this here to use an empty query instead, which is a bit faster
+ def active?
+ @lock.synchronize do
+ @connection.query ';'
+ end
+ true
+ rescue PG::Error
+ false
+ end
+ end
+ end
+ end
+end
+# rubocop:enable Gitlab/ModuleWithInstanceVariables