From 6b316174c98c76a7381b51c1b404f90fa8b46d43 Mon Sep 17 00:00:00 2001 From: Yehuda Goldberg Date: Fri, 24 Apr 2020 14:07:35 +0300 Subject: [PATCH] aaded materialize_transactions guard to connection uses. for implementing supports for lazy transactions https://github.com/rails/rails/pull/32647#issue-182891795 --- .../connection_adapters/sqlserver/database_statements.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/active_record/connection_adapters/sqlserver/database_statements.rb b/lib/active_record/connection_adapters/sqlserver/database_statements.rb index ebea06705..d8dbdb3c7 100644 --- a/lib/active_record/connection_adapters/sqlserver/database_statements.rb +++ b/lib/active_record/connection_adapters/sqlserver/database_statements.rb @@ -136,6 +136,8 @@ def default_insert_value(column) # === SQLServer Specific ======================================== # def execute_procedure(proc_name, *variables) + materialize_transactions + vars = if variables.any? && variables.first.is_a?(Hash) variables.first.map { |k, v| "@#{k} = #{quote(v)}" } else @@ -268,6 +270,8 @@ def set_identity_insert(table_name, enable = true) # === SQLServer Specific (Executing) ============================ # def do_execute(sql, name = 'SQL') + materialize_transactions + log(sql, name) { raw_connection_do(sql) } end @@ -378,6 +382,8 @@ def identity_columns(table_name) # === SQLServer Specific (Selecting) ============================ # def raw_select(sql, name = 'SQL', binds = [], options = {}) + materialize_transactions + log(sql, name, binds) { _raw_select(sql, options) } end