From 7d83ef4f7bd9e5766ebdb438370621a98be06a7c Mon Sep 17 00:00:00 2001 From: Ryuta Kamizono Date: Wed, 12 Dec 2018 23:12:51 +0900 Subject: Ensure that preventing writes is invoked before `materialize_transactions` consistently --- .../active_record/connection_adapters/mysql/database_statements.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'activerecord/lib/active_record/connection_adapters/mysql') diff --git a/activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb b/activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb index e1b791fe41..6adcc14545 100644 --- a/activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb @@ -40,8 +40,6 @@ module ActiveRecord end def exec_query(sql, name = "SQL", binds = [], prepare: false) - materialize_transactions - if without_prepared_statement?(binds) execute_and_free(sql, name) do |result| if result @@ -62,8 +60,6 @@ module ActiveRecord end def exec_delete(sql, name = nil, binds = []) - materialize_transactions - if without_prepared_statement?(binds) execute_and_free(sql, name) { @connection.affected_rows } else @@ -126,6 +122,8 @@ module ActiveRecord raise ActiveRecord::ReadOnlyError, "Write query attempted while in readonly mode: #{sql}" end + materialize_transactions + # make sure we carry over any changes to ActiveRecord::Base.default_timezone that have been # made since we established the connection @connection.query_options[:database_timezone] = ActiveRecord::Base.default_timezone -- cgit v1.2.3