2022/11/30分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Extract
#sync_timezone_changesmethod in AbstractMysqlAdapter to enable subclasses to sync database timezone changes without overriding#raw_execute. - Stop using
LOWER()for case-insensitive queries oncitextcolumns
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を追加しています。