diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-05-13 11:49:39 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-05-13 13:04:44 -0700 |
commit | ce1a1b47be2abc42062c24954108550d8a431e1b (patch) | |
tree | b310560bdf232911aa638462ff1ac2a513e70d0c /activerecord/lib/active_record | |
parent | b1ceffd7b224c397d8ba5344b9c1438dd62f8325 (diff) | |
download | rails-ce1a1b47be2abc42062c24954108550d8a431e1b.tar.gz rails-ce1a1b47be2abc42062c24954108550d8a431e1b.tar.bz2 rails-ce1a1b47be2abc42062c24954108550d8a431e1b.zip |
supporting infinity and -infinity for timestamps in PG. fixes #544
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index 37db2be7a9..f4beeceb61 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -39,6 +39,16 @@ module ActiveRecord # :stopdoc: class << self attr_accessor :money_precision + def string_to_time(string) + return string unless String === string + + case string + when 'infinity' then 1.0 / 0.0 + when '-infinity' then -1.0 / 0.0 + else + super + end + end end # :startdoc: @@ -349,6 +359,9 @@ module ActiveRecord return super unless column case value + when Float + return super unless value.infinite? && column.type == :datetime + "'#{value.to_s.downcase}'" when Numeric return super unless column.sql_type == 'money' # Not truly string input, so doesn't require (or allow) escape string syntax. |