aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/CHANGELOG.md')
-rw-r--r--activerecord/CHANGELOG.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index 7cae105ddb..f73e27b91f 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,3 +1,23 @@
+* PostgreSQL `tsrange` now preserves subsecond precision
+
+ PostgreSQL 9.1+ introduced range types, and Rails added support for using
+ this datatype in ActiveRecord. However, the serialization of
+ PostgreSQL::OID::Range was incomplete, because it did not properly
+ cast the bounds that make up the range. This led to subseconds being
+ dropped in SQL commands:
+
+ (byebug) from = type_cast_single_for_database(range.first)
+ 2010-01-01 13:30:00 UTC
+
+ (byebug) to = type_cast_single_for_database(range.last)
+ 2011-02-02 19:30:00 UTC
+
+ (byebug) "[#{from},#{to}#{value.exclude_end? ? ')' : ']'}"
+ "[2010-01-01 13:30:00 UTC,2011-02-02 19:30:00 UTC)"
+
+ (byebug) "[#{type_cast(from)},#{type_cast(to)}#{value.exclude_end? ? ')' : ']'}"
+ "['2010-01-01 13:30:00.670277','2011-02-02 19:30:00.745125')"
+
* Passing a `Set` to `Relation#where` now behaves the same as passing an
array.