Skip to content

Commit bb8ae0a

Browse files
committed
Eliminate uses of lease_connection
See rails/rails#51353
1 parent 05a9ab9 commit bb8ae0a

File tree

4 files changed

+28
-19
lines changed

4 files changed

+28
-19
lines changed

lib/active_record/connection_adapters/sqlserver/core_ext/attribute_methods.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ module AttributeMethods
1010
private
1111

1212
def attributes_for_update(attribute_names)
13-
return super unless self.class.lease_connection.adapter_name == "SQLServer"
13+
self.class.with_connection do |connection|
14+
return super(attribute_names) unless connection.sqlserver?
1415

15-
super.reject do |name|
16-
column = self.class.columns_hash[name]
17-
column && column.respond_to?(:is_identity?) && column.is_identity?
16+
super(attribute_names).reject do |name|
17+
column = self.class.columns_hash[name]
18+
column && column.respond_to?(:is_identity?) && column.is_identity?
19+
end
1820
end
1921
end
2022
end

lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ module SQLServer
99
module CoreExt
1010
module Calculations
1111
def calculate(operation, column_name)
12-
if klass.lease_connection.sqlserver?
13-
_calculate(operation, column_name)
14-
else
15-
super
12+
klass.with_connection do |connection|
13+
if connection.sqlserver?
14+
_calculate(operation, column_name)
15+
else
16+
super
17+
end
1618
end
1719
end
1820

@@ -54,9 +56,10 @@ def _calculate(operation, column_name)
5456
end
5557

5658
def build_count_subquery(relation, column_name, distinct)
57-
return super unless klass.lease_connection.adapter_name == "SQLServer"
58-
59-
super(relation.unscope(:order), column_name, distinct)
59+
klass.with_connection do |connection|
60+
relation = relation.unscope(:order) if connection.sqlserver?
61+
super(relation, column_name, distinct)
62+
end
6063
end
6164
end
6265
end

lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ module Explain
99
SQLSERVER_STATEMENT_REGEXP = /N'(.+)', N'(.+)', (.+)/
1010

1111
def exec_explain(queries, options = [])
12-
return super unless lease_connection.adapter_name == "SQLServer"
12+
with_connection do |connection|
13+
return super(queries, options) unless connection.sqlserver?
1314

14-
unprepared_queries = queries.map do |(sql, binds)|
15-
[unprepare_sqlserver_statement(sql, binds), binds]
15+
unprepared_queries = queries.map do |(sql, binds)|
16+
[unprepare_sqlserver_statement(sql, binds), binds]
17+
end
18+
super(unprepared_queries, options)
1619
end
17-
super(unprepared_queries, options)
1820
end
1921

2022
private

lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ module FinderMethods
1111
private
1212

1313
def construct_relation_for_exists(conditions)
14-
if klass.lease_connection.sqlserver?
15-
_construct_relation_for_exists(conditions)
16-
else
17-
super
14+
klass.with_connection do |connection|
15+
if connection.sqlserver?
16+
_construct_relation_for_exists(conditions)
17+
else
18+
super
19+
end
1820
end
1921
end
2022

0 commit comments

Comments
 (0)