aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-03-06 00:49:11 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-03-06 00:49:11 +0000
commitd1b08f4a751f12fbe32ccf7a31cc905656a344ff (patch)
tree182fb1339aa9889878b9a378952bdf630f9f126e /activerecord/lib/active_record
parente52c28a425192966379ecf4ae3b20f0b9442e9e2 (diff)
downloadrails-d1b08f4a751f12fbe32ccf7a31cc905656a344ff.tar.gz
rails-d1b08f4a751f12fbe32ccf7a31cc905656a344ff.tar.bz2
rails-d1b08f4a751f12fbe32ccf7a31cc905656a344ff.zip
Fix an edge case with dates during the Italian calendar reform! Hehe. Closes #7724.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6341 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb7
1 files changed, 6 insertions, 1 deletions
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 ec839e6f64..0a9049b703 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
@@ -115,7 +115,12 @@ module ActiveRecord
time_hash[:sec_fraction] = microseconds(time_hash)
time_array = time_hash.values_at(:year, :mon, :mday, :hour, :min, :sec, :sec_fraction)
# treat 0000-00-00 00:00:00 as nil
- Time.send(Base.default_timezone, *time_array) rescue DateTime.new(*time_array[0..5]) rescue nil
+ begin
+ Time.send(Base.default_timezone, *time_array)
+ rescue
+ # Append zero offset to account for dates skipped by calendar reform.
+ DateTime.new(*time_array[0..5] << 0 << 0) rescue nil
+ end
end
def self.string_to_dummy_time(string)