aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/CHANGELOG.md
diff options
context:
space:
mode:
authorDmitryTsepelev <dmitry.a.tsepelev@gmail.com>2018-11-26 11:12:42 +0300
committerDmitryTsepelev <dmitry.a.tsepelev@gmail.com>2018-11-27 16:30:26 +0300
commitd34c1fc3d64e51f9aeecfbffefd843e744dfbeac (patch)
tree64ee1bded54ac99df7eb170b85faa7db0b410294 /activerecord/CHANGELOG.md
parentb9c7305dbe57931a153a540d49ae5d469af61a14 (diff)
downloadrails-d34c1fc3d64e51f9aeecfbffefd843e744dfbeac.tar.gz
rails-d34c1fc3d64e51f9aeecfbffefd843e744dfbeac.tar.bz2
rails-d34c1fc3d64e51f9aeecfbffefd843e744dfbeac.zip
Cached columns_hash fields should be excluded from ResultSet#column_types
Diffstat (limited to 'activerecord/CHANGELOG.md')
-rw-r--r--activerecord/CHANGELOG.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index 13cc486e7f..9d7bfbcef1 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,3 +1,32 @@
+* Cached columns_hash fields should be excluded from ResultSet#column_types
+
+ PR #34528 addresses the inconsistent behaviour when attribute is defined for an ignored column. The following test
+ was passing for SQLite and MySQL, but failed for PostgreSQL:
+
+ ```ruby
+ class DeveloperName < ActiveRecord::Type::String
+ def deserialize(value)
+ "Developer: #{value}"
+ end
+ end
+
+ class AttributedDeveloper < ActiveRecord::Base
+ self.table_name = "developers"
+
+ attribute :name, DeveloperName.new
+
+ self.ignored_columns += ["name"]
+ end
+
+ developer = AttributedDeveloper.create
+ developer.update_column :name, "name"
+
+ loaded_developer = AttributedDeveloper.where(id: developer.id).select("*").first
+ puts loaded_developer.name # should be "Developer: name" but it's just "name"
+ ```
+
+ *Dmitry Tsepelev*
+
* Make the implicit order column configurable.
When calling ordered finder methods such as +first+ or +last+ without an