2023/05/02分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #47352 from basecamp/ar-freeze-cached
Acitve Record、Active Modelの修正です。
serialize
attributeにClass
を指定、かつ、その値でqueryを実行した際にエラーになってしまっていたのを、queryが実行出来るよう修正しています。
Revert "Merge pull request #47352 from basecamp/ar-freeze-cached"
直前のMerge pull request #47352 from basecamp/ar-freeze-cachedをRevertしています。テストがfailしてしまった為。後ほど違う方向性で対応が行われています。
Object#deep_dup
no longer duplicate named classes and modules.
activesupport/lib/active_support/core_ext/object/deep_dup.rb
の修正です。
Object#deep_dup
で、named classとmoduleは複製しないよう修正しています。
Before:
hash = { class: Object, module: Kernel } hash.deep_dup # => {:class=>#<Class:0x00000001063ffc80>, :module=>#<Module:0x00000001063ffa00>}
After:
hash = { class: Object, module: Kernel } hash.deep_dup # => {:class=>Object, :module=>Kernel}
Class
を指定したserialize
attributeに対するqueryがエラーになってしまっていたのの対応。
Add a test for querying serialized attributes containing Module
activerecord/test/cases/serialized_attribute_test.rb
の修正です。
serialize
attributeにModule
が含まれている場合に、そのattributeに対するqueryが問題なく実行出来る事を確認するテストを追加しています。
Improve queue adapter name extraction for logs
activejob/lib/active_job/log_subscriber.rb
、
activejob/lib/active_job/queue_adapter.rb
の修正です。
同じqueue adapter nameの抽出処理を違う処理でそれぞれ実装していたのを、共通のメソッドに切り出してそちらを使用するよう修正しています。
Remove AbstractMysqlAdapterTest
Active Record: clear query cache automatically when calling #executeのrefactorにより不要になったactiverecord/test/cases/adapters/abstract_mysql_adapter_test.rb
を削除しています。