File tree Expand file tree Collapse file tree 4 files changed +29
-21
lines changed
lib/active_record/connection_adapters/sqlserver/core_ext Expand file tree Collapse file tree 4 files changed +29
-21
lines changed Original file line number Diff line number Diff line change @@ -10,12 +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?
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
1920 end
2021 end
2122 end
Original file line number Diff line number Diff line change @@ -9,11 +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
16- end
12+ klass . with_connection do |connection |
13+ if connection . sqlserver?
14+ _calculate ( operation , column_name )
15+ else
16+ super
17+ end
1718 end
1819
1920 private
@@ -54,9 +55,10 @@ def _calculate(operation, column_name)
5455 end
5556
5657 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
6062 end
6163 end
6264 end
Original file line number Diff line number Diff line change @@ -9,12 +9,15 @@ 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+
19+ super ( unprepared_queries , options )
1620 end
17- super ( unprepared_queries , options )
1821 end
1922
2023 private
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments