2017/09/23分のコミットです。
CHANGELOGへの追加はありませんでした。
Prevent extra column_for
for change_column_{default,null,comment}
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
ConnectionAdapters::AbstractMysqlAdapter
のchange_column_default
、change_column_null
、change_column_comment
メソッドで、不要なcolumn_for
メソッドの呼び出しを行わないようリファクタリングを行っています。
column_for
はcolumnのsql typeを取得する為に使用しているのですが、column_for
メソッドはqueryを実行する為、余計なqueryを実行しないよう、一度取得した値を保持するようにし、不要な場合は呼び出しを行わないようにしています。
Ensure 1 AS one
for SQL Server with calculations.
activerecord/lib/active_record/relation/calculations.rb
の修正です。
Calculations#build_count_subquery
メソッドでcountのsubqueryを生成するのに、1
(SELECT 1
となるようにしていた)を使用していたのを、FinderMethods::ONE_AS_ONE
(実際の値は1 AS one
)を使用するよう修正しています。SELECT 1
だとSQL Serverでエラーになってしまう為との事です。
Adding legacy primary key should be compatible
activerecord/lib/active_record/migration/compatibility.rb
の修正です。
Rails 5.1より前に作られたmigrationファイルで、typeにprimary_key
を指定した場合に、typeがintegerになるべきが、bigintになってしまうバグがあったのを修正しています。
Move integer-like primary key normalization to new_column_definition
Active Recordの修正です。
migrationファイルでtypeにprimary_key
を指定した場合の処理をTableDefinition#new_column_definition
メソッドで行うよう修正しています。
add_column
メソッドでprimary_key
を指定した場合にも正常に動作するようにする為のようです。
Make bang version work with InheritableOptions
ActiveSupport::InheritableOptions
クラスでbangバージョンのgetメソッドが動作しないバグがあったのを修正しています。