File tree 4 files changed +29
-21
lines changed
lib/active_record/connection_adapters/sqlserver/core_ext
4 files changed +29
-21
lines changed Original file line number Diff line number Diff line change @@ -10,12 +10,13 @@ module AttributeMethods
10
10
private
11
11
12
12
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?
14
15
15
- super . reject do |name |
16
- column = self . class . columns_hash [ name ]
17
- column && column . respond_to? ( :is_identity? ) && column . is_identity?
18
- end
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
19
20
end
20
21
end
21
22
end
Original file line number Diff line number Diff line change @@ -9,11 +9,12 @@ module SQLServer
9
9
module CoreExt
10
10
module Calculations
11
11
def calculate ( operation , column_name )
12
- if klass . lease_connection . sqlserver?
13
- _calculate ( operation , column_name )
14
- else
15
- super
16
- end
12
+ klass . with_connection do |connection |
13
+ if connection . sqlserver?
14
+ _calculate ( operation , column_name )
15
+ else
16
+ super
17
+ end
17
18
end
18
19
19
20
private
@@ -54,9 +55,10 @@ def _calculate(operation, column_name)
54
55
end
55
56
56
57
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 )
58
+ klass . with_connection do |connection |
59
+ relation = relation . unscope ( :order ) if connection . sqlserver?
60
+ super ( relation , column_name , distinct )
61
+ end
60
62
end
61
63
end
62
64
end
Original file line number Diff line number Diff line change @@ -9,12 +9,15 @@ module Explain
9
9
SQLSERVER_STATEMENT_REGEXP = /N'(.+)', N'(.+)', (.+)/
10
10
11
11
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?
13
14
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
+
19
+ super ( unprepared_queries , options )
16
20
end
17
- super ( unprepared_queries , options )
18
21
end
19
22
20
23
private
Original file line number Diff line number Diff line change @@ -11,10 +11,12 @@ module FinderMethods
11
11
private
12
12
13
13
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
18
20
end
19
21
end
20
22
You can’t perform that action at this time.
0 commit comments