2017/12/20分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activemodel/CHANGELOG.md
Fix validation callbacks on multiple context
activemodel/lib/active_model/validations/callbacks.rb
の修正です。
before_validation
/ after_validation
に複数のcontextを指定した場合に、正しく動作しないバグがあったのを修正しています。
Fix count(:all)
to correctly work distinct
with custom SELECT list
activerecord/lib/active_record/relation/calculations.rb
の修正です。
count(:all)
+ distinct
+ SELECT
に任意のリストを指定した場合に、正しく値が取得出来ないバグがあったのを修正しています。
Merge pull request #31177 from albertoalmagro/remove-default-mysql-engine-from-ar-5-2
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
、
activerecord/lib/active_record/migration/compatibility.rb
の修正です。
MySQL adapterでtableをcreateする際に、ENGINE=InnoDB
を明示的に指定していたのを、指定しないよう修正しています。
MySQL 5.5以上やMariaDBではInnoDB
がデフォルトになっており、明示的に指定する必要はもう無いだろうという事で削除されました。
Remove verbose_query_logs from new_framework_defaults_5_2.rb
activerecord/lib/active_record/log_subscriber.rb
、
railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_5_2.rb.tt
の修正です。
使用していない値の削除、及び、config.active_record.verbose_query_logs
の指定をnew_framework_defaults_5_2.rb.tt
から削除しています。
app:update
でアプリを更新した場合、config/environments/development.rb
に上記configは指定されるようになっており、new_framework_defaults_5_2.rb
のほうには不要な為。
Place args normalization from left_outer_joins
to left_outer_joins!
activerecord/lib/active_record/relation/query_methods.rb
の修正です。
left_outer_joins
メソッドで行っていたargumentのノーマライゼーションを、left_outer_joins!
メソッドでやるよう修正しています。
他のメソッドではbangメソッドでノーマライゼーションを行っており、処理を合わせる為。
Remove passing needless empty string options
in create_table
activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
、
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
CREATE TABLE
のオプションに不要なスペースが含まれてしまっていたのを削除しています。
Fix Illegal parameter data type bigint for operation 'get_lock' error
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
get_advisory_lock
、release_advisory_lock
メソッドでGET_LOCK
/ RELEASE_LOCK
を実行する前に、lock_name
をto_s
でStringに変換してから使用するよう修正しています。
def get_advisory_lock(lock_name, timeout = 0) # :nodoc: - query_value("SELECT GET_LOCK(#{quote(lock_name)}, #{timeout})") == 1 + query_value("SELECT GET_LOCK(#{quote(lock_name.to_s)}, #{timeout})") == 1 end
lock_name
にはintegerが渡されていたのですが、MariaDBではGET_LOCK
を渡すとエラーになってしまう為、Stringに変換するようにしたとの事です。
Add test case that configure config.active_support.hash_digest_class
railties/test/application/configuration_test.rb
の修正です。
config.active_support.hash_digest_class
を指定した場合のテストを追加しています。
Handle FrozenError
if it is available
テストの修正です。
Ruby 2.5からfreeze されたオブジェクトの変更で発生する例外がRuntimeError
からFrozenError
に変更になった為、オブジェクトを変更した際に例外が発生する事を確認するテストで、RuntimeError
ではなくFrozenError
がraiseされる事を確認するよう修正しています。