aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-01-28 07:58:02 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-01-28 07:58:02 +0000
commitc6b15dde1be9f93b77e9e33ee981124a1a49c6f8 (patch)
tree1ebae04357fcee271149551b7e17d69dd1a6666e /activerecord
parent17fee001a9d40aaed4c62f1e159242ca47182c2b (diff)
downloadrails-c6b15dde1be9f93b77e9e33ee981124a1a49c6f8.tar.gz
rails-c6b15dde1be9f93b77e9e33ee981124a1a49c6f8.tar.bz2
rails-c6b15dde1be9f93b77e9e33ee981124a1a49c6f8.zip
Use Date#to_s(:db) for quoted dates. Closes #7411.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6061 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG2
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/quoting.rb10
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb7
3 files changed, 12 insertions, 7 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index 7eff9e9c93..cda2262ed4 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Use Date#to_s(:db) for quoted dates. #7411 [Michael Schoen]
+
* Don't create instance writer methods for class attributes. Closes #7401 [Rick]
* Docs: validations examples. #7343 [zackchandler]
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb
index ce9495a5d2..aa405eb47c 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb
@@ -25,9 +25,7 @@ module ActiveRecord
# BigDecimals need to be output in a non-normalized form and quoted.
when BigDecimal then value.to_s('F')
else
- if value.acts_like?(:date)
- "'#{value.to_s}'"
- elsif value.acts_like?(:time)
+ if value.acts_like?(:date) || value.acts_like?(:time)
"'#{quoted_date(value)}'"
else
"'#{quote_string(value.to_yaml)}'"
@@ -50,13 +48,13 @@ module ActiveRecord
def quoted_true
"'t'"
end
-
+
def quoted_false
"'f'"
end
-
+
def quoted_date(value)
- value.strftime("%Y-%m-%d %H:%M:%S")
+ value.to_s(:db)
end
end
end
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
index eb9d0e94df..2f4b2b9a3a 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -125,8 +125,13 @@ module ActiveRecord
%("#{name}")
end
+ # Include microseconds if the value is a Time responding to usec.
def quoted_date(value)
- value.strftime("%Y-%m-%d %H:%M:%S.#{sprintf("%06d", value.usec)}")
+ if value.acts_like?(:time) && value.respond_to?(:usec)
+ "#{super}.#{sprintf("%06d", value.usec)}"
+ else
+ super
+ end
end