File tree 2 files changed +44
-0
lines changed
lib/active_record/connection_adapters
2 files changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ require 'active_record/relation'
2
+ require 'active_record/version'
3
+
4
+ module ActiveRecord
5
+ module ConnectionAdapters
6
+ module SQLServer
7
+ module CoreExt
8
+ module FinderMethods
9
+
10
+ private
11
+
12
+ # Same as original except we order by values in distinct select if present.
13
+ def construct_relation_for_exists ( conditions )
14
+ if distinct_value && offset_value
15
+ relation = limit! ( 1 )
16
+
17
+ if select_values . present?
18
+ relation = relation . order ( *select_values )
19
+ else
20
+ relation = relation . except ( :order )
21
+ end
22
+ else
23
+ relation = except ( :select , :distinct , :order ) . _select! ( ::ActiveRecord ::FinderMethods ::ONE_AS_ONE ) . limit! ( 1 )
24
+ end
25
+
26
+ case conditions
27
+ when Array , Hash
28
+ relation . where! ( conditions ) unless conditions . empty?
29
+ else
30
+ relation . where! ( primary_key => conditions ) unless conditions == :none
31
+ end
32
+
33
+ relation
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ ActiveSupport . on_load ( :active_record ) do
42
+ ActiveRecord ::Relation . include ( ActiveRecord ::ConnectionAdapters ::SQLServer ::CoreExt ::FinderMethods )
43
+ end
Original file line number Diff line number Diff line change 7
7
require 'active_record/connection_adapters/sqlserver/core_ext/explain'
8
8
require 'active_record/connection_adapters/sqlserver/core_ext/explain_subscriber'
9
9
require 'active_record/connection_adapters/sqlserver/core_ext/attribute_methods'
10
+ require 'active_record/connection_adapters/sqlserver/core_ext/finder_methods'
10
11
require 'active_record/connection_adapters/sqlserver/version'
11
12
require 'active_record/connection_adapters/sqlserver/type'
12
13
require 'active_record/connection_adapters/sqlserver/database_limits'
You can’t perform that action at this time.
0 commit comments