2024/02/29分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Expose a generic fixture accessor for fixture names that may conflict with Minitest
activerecord/lib/active_record/test_fixtures.rb
の修正です。
fixtureをfixture
メソッド経由でも取得出来るよう修正しています。
# 元々の取得方法 assert_equal "Ruby on Rails", web_sites(:rubyonrails).name # 今回追加された`fixture`メソッド経由での取得方法 assert_equal "Ruby on Rails", fixture(:web_sites, :rubyonrails).name
従来通りfixture名経由でも取得出来るのですが、このfixture名がminitestのメソッドとコンフリして使用出来ない場合にもデータを取得出来るようにする為。
Clear all threads query cache when a connection is pinned
activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb
の修正です。
clear_query_cache
メソッドで、connectionが固定されている場合全てのスレッドのquery cacheをclearするよう修正しています。poolがquery cacheを保持するようになった影響で、system testのようにtransactional testで複数スレッドが動作する場合、異なるスレッドが同じconnectionを保持するが、cacheは違うデータを保持する、という事が発生するようになりました。そのため、そのような場合に、異なるcacheを使用する事でメソッド実行時にエラーになるのを避ける為、全てのスレッドのquery cacheをclearするよう修正しています。