提交 10457475 编写于 作者: R Ryuta Kamizono

An explain query does not raise the `ReadOnlyError` if preventing writes

上级 07f0f1a8
......@@ -19,7 +19,7 @@ def query(sql, name = nil) # :nodoc:
execute(sql, name).to_a
end
READ_QUERY = ActiveRecord::ConnectionAdapters::AbstractAdapter.build_read_query_regexp(:begin, :select, :set, :show, :release, :savepoint, :rollback) # :nodoc:
READ_QUERY = ActiveRecord::ConnectionAdapters::AbstractAdapter.build_read_query_regexp(:begin, :explain, :select, :set, :show, :release, :savepoint, :rollback) # :nodoc:
private_constant :READ_QUERY
def write_query?(sql) # :nodoc:
......
......@@ -67,7 +67,7 @@ def query(sql, name = nil) #:nodoc:
end
end
READ_QUERY = ActiveRecord::ConnectionAdapters::AbstractAdapter.build_read_query_regexp(:begin, :select, :set, :show, :savepoint, :rollback) # :nodoc:
READ_QUERY = ActiveRecord::ConnectionAdapters::AbstractAdapter.build_read_query_regexp(:begin, :explain, :select, :set, :show, :savepoint, :rollback) # :nodoc:
private_constant :READ_QUERY
def write_query?(sql) # :nodoc:
......
......@@ -209,7 +209,7 @@ def disable_referential_integrity # :nodoc:
# DATABASE STATEMENTS ======================================
#++
READ_QUERY = ActiveRecord::ConnectionAdapters::AbstractAdapter.build_read_query_regexp(:begin, :select, :pragma, :savepoint, :rollback) # :nodoc:
READ_QUERY = ActiveRecord::ConnectionAdapters::AbstractAdapter.build_read_query_regexp(:begin, :explain, :select, :pragma, :savepoint, :rollback) # :nodoc:
private_constant :READ_QUERY
def write_query?(sql) # :nodoc:
......
......@@ -1530,4 +1530,12 @@ def test_protected_environments_are_stored_as_an_array_of_string
assert_equal bird, Bird.where(name: "Bluejay").first
end
end
test "an explain query does not raise if preventing writes" do
Bird.create!(name: "Bluejay")
ActiveRecord::Base.connection.while_preventing_writes do
assert_queries(2) { Bird.where(name: "Bluejay").explain }
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册