From 1f93002201aa39503c7577092f715e22c4b1d9b9 Mon Sep 17 00:00:00 2001 From: Aidan Haran Date: Mon, 26 Apr 2021 16:32:19 +0100 Subject: [PATCH] Do not check if connection alive before using. Translate dead connection's exception. --- .../connection_adapters/sqlserver/database_statements.rb | 2 +- lib/active_record/connection_adapters/sqlserver_adapter.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/active_record/connection_adapters/sqlserver/database_statements.rb b/lib/active_record/connection_adapters/sqlserver/database_statements.rb index aecf55ba2..5a18df620 100644 --- a/lib/active_record/connection_adapters/sqlserver/database_statements.rb +++ b/lib/active_record/connection_adapters/sqlserver/database_statements.rb @@ -464,7 +464,7 @@ def finish_statement_handle(handle) end def ensure_established_connection! - raise TinyTds::Error, 'SQL Server client is not connected' if @connection.nil? || !@connection.active? + raise TinyTds::Error, 'SQL Server client is not connected' unless @connection yield end diff --git a/lib/active_record/connection_adapters/sqlserver_adapter.rb b/lib/active_record/connection_adapters/sqlserver_adapter.rb index 9a94f40c9..acf41e9af 100644 --- a/lib/active_record/connection_adapters/sqlserver_adapter.rb +++ b/lib/active_record/connection_adapters/sqlserver_adapter.rb @@ -375,7 +375,7 @@ def initialize_type_map(m = type_map) def translate_exception(e, message:, sql:, binds:) case message - when /SQL Server client is not connected/ + when /(SQL Server client is not connected) | (failed to execute statement)/i ConnectionNotEstablished.new(message) when /(cannot insert duplicate key .* with unique index) | (violation of unique key constraint)/i RecordNotUnique.new(message, sql: sql, binds: binds)