File tree 2 files changed +23
-3
lines changed
lib/active_record/connection_adapters
spec/active_record/oracle_enhanced/type
2 files changed +23
-3
lines changed Original file line number Diff line number Diff line change @@ -459,6 +459,11 @@ def reconnect! # :nodoc:
459
459
@logger . warn "#{ adapter_name } automatic reconnection failed: #{ e . message } " if @logger
460
460
end
461
461
462
+ def clear_cache! ( *args , **kwargs )
463
+ super
464
+ self . class . clear_type_map!
465
+ end
466
+
462
467
def reset!
463
468
clear_cache!
464
469
super
@@ -697,6 +702,15 @@ def check_version
697
702
end
698
703
699
704
class << self
705
+ def type_map
706
+ @type_map ||= Type ::TypeMap . new . tap { |m | initialize_type_map ( m ) }
707
+ @type_map
708
+ end
709
+
710
+ def clear_type_map!
711
+ @type_map = nil
712
+ end
713
+
700
714
private
701
715
def initialize_type_map ( m )
702
716
super
@@ -730,10 +744,8 @@ def initialize_type_map(m)
730
744
end
731
745
end
732
746
733
- TYPE_MAP = Type ::TypeMap . new . tap { |m | initialize_type_map ( m ) }
734
-
735
747
def type_map
736
- TYPE_MAP
748
+ self . class . type_map
737
749
end
738
750
739
751
def extract_value_from_default ( default )
Original file line number Diff line number Diff line change @@ -87,5 +87,13 @@ class ::Test2Employee < ActiveRecord::Base
87
87
create_employee2
88
88
expect ( @employee2 . is_manager ) . to be_a ( Integer )
89
89
end
90
+
91
+ it "should return Integer value from NUMBER(1) column if emulate_booleans is set to false" do
92
+ ActiveRecord ::ConnectionAdapters ::OracleEnhancedAdapter . emulate_booleans = false
93
+ ActiveRecord ::ConnectionAdapters ::OracleEnhancedAdapter . clear_type_map!
94
+ ActiveRecord ::Base . clear_cache!
95
+ create_employee2
96
+ expect ( @employee2 . is_manager ) . to be_a ( Integer )
97
+ end
90
98
end
91
99
end
You can’t perform that action at this time.
0 commit comments