From 4e3ecec9c76c612facd995031fb1c2a499d5d4c4 Mon Sep 17 00:00:00 2001 From: Geoff Buesing Date: Sat, 16 Feb 2008 20:13:38 +0000 Subject: Refactor ActiveRecord::ConnectionAdapters::Column.new_time: leverage DateTime failover behavior of Time#time_with_datetime_fallback git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8881 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/CHANGELOG | 2 ++ .../connection_adapters/abstract/schema_definitions.rb | 8 ++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index 7ebe34b190..6231cc8bf8 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Refactor ConnectionAdapters::Column.new_time: leverage DateTime failover behavior of Time#time_with_datetime_fallback [Geoff Buesing] + * Improve associations performance by using symbol callbacks instead of string callbacks. #11108 [adymo] * Optimise the BigDecimal conversion code. #11110 [adymo] diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb index f7ee7ac7fd..d30f9b4d32 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb @@ -172,12 +172,8 @@ module ActiveRecord def new_time(year, mon, mday, hour, min, sec, microsec) # Treat 0000-00-00 00:00:00 as nil. return nil if year.nil? || year == 0 - - Time.send(Base.default_timezone, year, mon, mday, hour, min, sec, microsec) - # Over/underflow to DateTime - rescue ArgumentError, TypeError - zone_offset = Base.default_timezone == :local ? DateTime.local_offset : 0 - DateTime.civil(year, mon, mday, hour, min, sec, zone_offset) rescue nil + + Time.time_with_datetime_fallback(Base.default_timezone, year, mon, mday, hour, min, sec, microsec) rescue nil end def fast_string_to_date(string) -- cgit v1.2.3