2017/02/10分のコミットです。
CHANGELOGへの追加はありませんでした。
Add note about breakage in file uploads in controller tests to upgrading
rails guideのA Guide for Upgrading Ruby on Rails
の修正です。
Upgrading from Rails 4.2 to Rails 5.0
にNew behavior when uploading files
の項を追加し、テストでActionDispatch::Http::UploadedFile
を使用していた場合は、Rack::Test::UploadedFile
に変更する必要がある旨説明を追加しています。
Simplify and speed up Postgres query for primary_keys
activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
の修正です。
PostgreSQLでprimary keyを取得する為のqueryのリファクタリングを行なっています。
def primary_keys(table_name) # :nodoc: select_values(<<-SQL.strip_heredoc, "SCHEMA") - WITH pk_constraint AS ( - SELECT conrelid, unnest(conkey) AS connum FROM pg_constraint - WHERE contype = 'p' - AND conrelid = #{quote(quote_table_name(table_name))}::regclass - ), cons AS ( - SELECT conrelid, connum, row_number() OVER() AS rownum FROM pk_constraint - ) - SELECT attr.attname FROM pg_attribute attr - INNER JOIN cons ON attr.attrelid = cons.conrelid AND attr.attnum = cons.connum - ORDER BY cons.rownum + SELECT a.attname + FROM pg_index i + CROSS JOIN unnest(i.indkey) as k + JOIN pg_attribute a + ON a.attrelid = i.indrelid + AND a.attnum = k + WHERE i.indrelid = #{quote(quote_table_name(table_name))}::regclass + AND i.indisprimary SQL end
元々はpg_constraint + pg_attributeから取得していたのを、pg_index + pg_attributeから取得するようにしています。処理が重いWITH問い合わせやWindows関数を使用せずに済む為との事です。
が、この対応によりcolumn orderが維持されなくなってしまった為、後ほどrevertされています。
Update configuration guide about ActiveRecord’s config option.
rails guideのConfiguring Rails Applications
の修正です。
config.active_record.use_schema_cache_dump
オプションについての説明を追加しています。
Fix test_composite_primary_key_out_of_order
activerecord/test/cases/primary_keys_test.rb
の修正です。
composite primary keyのテストで、テストに使用するテーブル名が誤っていたのを修正しています。
Revert “Simplify and speed up Postgres query for primary_keys”
PostgreSQLでprimary keyを取得する為のqueryのリファクタリングを行った、Simplify and speed up Postgres query for primary_keys をrevertしています。理由は先に書いたとおり。
rubocopのルールに違反していた箇所をまとめて修正しています。
Gemfile
の修正です。
resque
がGitHubのリポジトリを指定していたのを、リリース済みのgemを使用するよう修正しています。 resque 1.2.6にバグがあった為GitHubのリポジトリを指定していたのですが、バグfixが含まれたgemがリリースされ、GitHubのリポジトリを指定する必要は無くなった為修正しています。