2022/11/30分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Extract
#sync_timezone_changes
method in AbstractMysqlAdapter to enable subclasses to sync database timezone changes without overriding#raw_execute
. - Stop using
LOWER()
for case-insensitive queries oncitext
columns
Extract #sync_timezone_changes
method in AbstractMysqlAdapter
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
、
activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb
の修正です。
MySQL adapterでquery実行時に行っているtimezoneの設定処理(:database_timezone
オプションの指定処理)をメソッド(sync_timezone_changes
)に切り出しています。アプリケーション側でtimezoneの指定処理をオーバーライド出来るようにする為。
More detailed error message for compute_class
errors
activerecord/lib/active_record/reflection.rb
の修正です。
associationのmodel取得処理でエラーになった場合のエラーメッセージについて、:class_name
オプションが指定されていた場合とそうでない場合でエラーメッセージの内容を変えるよう修正しています。
Don't use lower() for citext columns
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
の修正です。
citext
カラムに対してcase-insensitiveなqueryを実行する際に、LOWER()
を使用しないよう修正しています。citext
は大文字小文字の区別がない文字列型でLOWER()
の使用が不要、かつ、LOWER()
があると逆に性能劣化してしまう為、との事です。
Fix a flaky ActiveRecord finders test
activerecord/test/cases/finder_test.rb
の修正です。
不足していたrequireを追加しています。