2023/11/02分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activestorage/CHANGELOG.md
Do not use INSERT IGNORE
when upserting to MariaDB
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
upserting処理でMariaDBの場合INSERT IGNORE
を使用しないよう修正しています。Support RETURNING clause for MariaDBで重複のinsertを避ける処理をINSERT IGNORE
を使用するよう修正したのですが、これはDBでwarningが発生するSQLになってしまっていた為、INSERT IGNORE
を使用しないよう修正しています。
Allow accepting service
as a proc
Active Storageの修正です。
has_one_attached
及びhas_many_attached
のservive
オプションにProcを指定出来るようにして、動的に使用するserviceを切り替えられるよう対応しています。
class User < ActiveRecord::Base has_one_attached :avatar, service: ->(user) { user.in_europe_region? ? :s3_europe : :s3_usa } end class Gallery < ActiveRecord::Base has_many_attached :photos, service: ->(gallery) { gallery.personal? ? :personal_s3 : :s3 } end
Document async option in guides for query.active_record events
rails guideのActive Support Instrumentation
の修正です。
sql.active_record
のpayloadについて説明している箇所に:async
keyについての説明を追加しています。
Expand the transaction callback ordering in guides [ci-skip]
docの修正です。
rails guideのActive Record Callbacks
のTransactional Callback Ordering
セクションに、transactionのorderはconfig.active_record.run_after_transaction_callbacks_in_order_defined
で変更出来る旨説明を追加、及び、関連するdocのグラマーの修正を行っています。
Optimize ActiveRecord::QueryMethods.excluding
activerecord/lib/active_record/relation/query_methods.rb
の修正です。
ActiveRecord::QueryMethods.excluding
にActiveRecord::QueryMethods
またはActiveRecord::Relation
のインスタンスが指定された場合、一旦Arrayに変換して処理が行われていたのを、Arrayへの変換を行わず処理を行えるよう修正しています。合わせて、指定されたインスタンスに異なるclassが混ざっていた場合エラーとするよう修正しています。