2017/07/19分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activerecord/test/cases/dirty_test.rb
の修正です。
raise
をrause
にタイポしていたのを修正しています。
Don’t convert dates to strings when using prepared statements in mysql
`activerecord/lib/active_record/connection_adapters/mysql/quoting.rb
MySQLでprepared statements を使用している場合、Date、Time等の値をStringに変換しないよう修正しています。
mysql2
gemの方でDateをそのまま扱える、かつ、そちらの方が高速な為、との事です。
Merge pull request #29834 from kamipo/fix_unscoping_default_scope_with_sti_association
Active Recordの修正です。
Post.joins(:users) should not be affected by `User.current_scope`の対応の影響で、STI associationsのdefault_scope
をunscope出来なくなってしまっていたのを、再度出来るよう修正しています。
Merge pull request #29815 from posthumanism/add-except-option
activejob/lib/active_job/queue_adapters/test_adapter.rb
、
activejob/lib/active_job/test_helper.rb
の修正です。
Active Jobのテスト用ヘルパーメソッド(assert_enqueued_jobs
, assert_performed_jobs
等)でexcept
オプションを使用出来るよう修正しています。only
オプションの逆で、除外するJob Classを指定する為のオプションです。
perform_enqueued_jobs(except: HelloJob) do MyJob.perform_later(1, 2, 3) # will be performed HelloJob.perform_later(1, 2, 3) # will not be performed end assert_performed_jobs 1
Merge pull request #29785 from cswilliams/rescue_postgres_connection_errors_on_dealloc
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
の修正です。
DEALLOCATE
処理でエラーになった場合に、何も処理をせずエラーを無視するよう修正しています。
def dealloc(key)
@connection.query "DEALLOCATE #{key}" if connection_active?
+ rescue PG::Error
end
このDEALLOCATE
でエラーになるのはconnectionが停止している / 切断されている時で、その状態でエラーになっても何も処理を行う必要が無い為、エラーを無視するようにしたようです。
因みに、connection_active?
メソッドはconnectionが停止 / 切断 している時にtrueを返す事があるとの事です。参考:PostgreSQL adapter: reconnection problem
Merge pull request #29780 from MaxLap/fix_unscope_where_column_with_or
activerecord/lib/active_record/relation/where_clause.rb
の修正です。
unscoped(where: [columns])
を使用した場合に、誤ったbind valuesを削除してしまうケースがあったのを修正しています。
Post.where(id: 1).or(Post.where(id: 2)).where(foo: 3).unscope(where: :foo).to_sql # before # => SELECT "posts".* FROM "posts" WHERE ("posts"."id" = 2 OR "posts"."id" = 3) # after # => SELECT "posts".* FROM "posts" WHERE ("posts"."id" = 1 OR "posts"."id" = 2)
Merge pull request #29775 from yui-knk/assign_once
actionpack/lib/action_controller/metal/data_streaming.rb
の修正です。
DataStreaming#send_file_headers!
メソッドで複数回行われていたcontent_type
の設定処理を、一度だけ行うようリファクタリングしています。
Fix type casting a time for MariaDB
activerecord/lib/active_record/connection_adapters/mysql/quoting.rb
の修正です。
Don’t convert dates to strings when using prepared statements in mysqlでMySQLでDate、Time等の値をStringに変換しないよう修正してたのですが、MariaDBではまだTimeのtype castが必要そう、という事で、Timeについては再度type castするよう修正しています。
Merge pull request #29033 from kamipo/make_preload_query_to_prepared_statements
activerecord/lib/active_record/associations/preloader/association.rb
の修正です。
preload queryもprepared statementsに出来るよう修正しています。
Fix warning: circular argument reference
activejob/lib/active_job/test_helper.rb
の修正です。
warning: circular argument reference - except
のwarningが出ていたので、不要な引数の参照を削除しています。
Create rails@localhost
user on travis ci
ci/travis.rb
の修正です。
CIでMySQLのテストを実行する前に、rails@localhost
ユーザを作成、及び、rails@localhost
ユーザに権限を付与するようにしています。
CIでAccess denied
のエラーが出るようになった為、明示的にユーザを作成するようにしたとの事です。これ何でいきなり出るようになったんでしょうねえ。
[ci skip]Replace jquery-ujs with rails-ujs
actionview/lib/action_view/helpers/csrf_helper.rb
のdocの修正です。
csrf_meta_tags
メソッドのdocにjquery-rails
についての説明があったのを、rails-ujs
に修正しています。
Add expires_at, expires_in, and purpose meta_data to messages.
activesupport/lib/active_support/message_encryptor.rb
、activesupport/lib/active_support/messages/metadata.rb
の修正です。
Message Encryptorで生成するencrypted messageにメタデータ(purpose
、expires_at
、expires_in
)を含められるよう修正しています。