2016/12/06分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Don't try to run multiple insert queries at once
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
の修正です。
schema_migrations のinsert処理で、multi-row-insertが使用できない場合複数のINSERT文を一度に実行するようになっていたのを、INSERT文毎に別にSQLを実行するようにしています。
SQLiteのデフォルトのquery interfaceでは、最初のセミコロンの後のqueryは無視されるようになっており、複数のINSERTを同時に実行する事ができない為修正したようです。
Make :auto_increment
to internal primary key option
activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb
、
activerecord/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb
の修正です。
schemaのprimary keyを定義する際に、PostgreSQL、SQLite adapterでも:auto_increment
オプションを指定出来るよう修正しています。
:auto_increment
オプションが指定された場合、PostgreSQLではserial
型、SQLiteではprimary_key(NTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
として扱われるようになっています。primary keyのデフォルトをBIGINTに変える対応(Change Default Primary Keys to BIGINT)が行われており、その対応の関連との事です。
Merge pull request #26266 from jmccartie/jm/bigint
Active Recordの修正です。
新規に作成するテーブルのprimary keyに、PostgreSQLはbigserialを、MySQLではbigintをそれぞれ使用するよう修正しています。
型を変更した事によるパフォーマンスの影響は無く、テーブルが巨大化した場合には当然bigserial / bigintの方が良い為、デフォルトを変更したようです。
Do not try to set the content_type if the format is nil
actionpack/lib/action_controller/metal/rendering.rb
の修正です。
ActionController::Rendering#_set_rendered_content_type
メソッドで、formatがnilの場合はcontent_type
を設定しないよう修正しています。
Make :auto_increment
option works on :bigint
activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb
、
activerecord/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb
の修正です。
先ほどの:auto_increment
オプションの対応について、bigint
型の場合も処理が動作するよう修正しています。
Remove unnecessary connection_name
variable
activerecord/lib/active_record/migration/compatibility.rb
の修正です。
不要なconnection_name
変数を削除しています。
Merge pull request #26687 from kamipo/fix_add_index_to_normalize_options https://github.com/rails/rails/commit/5ff0d828f1f39b894a4b6752bddc5b3b96a61ec1
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
、
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
add_index
メソッドでcolumn namesとoptionのkeyを全てSymbolに変換するよう修正しています。StringとSymbolが混在した場合にエラーになってしまう問題があった為。
railties/lib/rails/generators/rails/app/templates/config/puma.rb
の修正です。
デフォルトのpuma.rb
のコメントのフォーマットを修正しています。
Translate NOT NULL violation to the specific exception
Active Recordの修正です。
insert or update実行時にNOT NULL violationでエラーになった場合に、StatementInvalid
ではなく、NOT NULL violation用のエラークラス(NotNullViolation
)をraiseするよう修正しています。
Should inherit StatementInvalid
rather than WrappedDatabaseException
activerecord/lib/active_record/errors.rb
の修正です。
MismatchedForeignKey
クラスの親クラスをWrappedDatabaseException
からStatementInvalid
に変更しています。
WrappedDatabaseException
は互換性の為だけにある無効なクラスで、新規のエラークラスはStatementInvalid
を継承するのが適切な為、のようです。