diff options
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/type')
3 files changed, 11 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/type/date_time.rb b/activerecord/lib/active_record/connection_adapters/type/date_time.rb index c34f4c5a53..43203a4cd4 100644 --- a/activerecord/lib/active_record/connection_adapters/type/date_time.rb +++ b/activerecord/lib/active_record/connection_adapters/type/date_time.rb @@ -8,6 +8,10 @@ module ActiveRecord :datetime end + def extract_precision(sql_type) + $1.to_i if sql_type =~ /\((\d+)\)/ + end + private def cast_value(string) diff --git a/activerecord/lib/active_record/connection_adapters/type/numeric.rb b/activerecord/lib/active_record/connection_adapters/type/numeric.rb index a3379831cb..15081daf8d 100644 --- a/activerecord/lib/active_record/connection_adapters/type/numeric.rb +++ b/activerecord/lib/active_record/connection_adapters/type/numeric.rb @@ -14,6 +14,10 @@ module ActiveRecord else super end end + + def extract_precision(sql_type) + $1.to_i if sql_type =~ /\((\d+)(,\d+)?\)/ + end end end end diff --git a/activerecord/lib/active_record/connection_adapters/type/value.rb b/activerecord/lib/active_record/connection_adapters/type/value.rb index 52d9ed9bc0..6687c9a2a4 100644 --- a/activerecord/lib/active_record/connection_adapters/type/value.rb +++ b/activerecord/lib/active_record/connection_adapters/type/value.rb @@ -3,8 +3,11 @@ module ActiveRecord module Type class Value # :nodoc: def type; end + def extract_scale(sql_type); end + def extract_precision(sql_type); end + def type_cast(value) cast_value(value) unless value.nil? end |