aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/type
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/type')
-rw-r--r--activerecord/lib/active_record/connection_adapters/type/date_time.rb4
-rw-r--r--activerecord/lib/active_record/connection_adapters/type/numeric.rb4
-rw-r--r--activerecord/lib/active_record/connection_adapters/type/value.rb3
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