aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-09-29 06:36:43 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-09-29 06:36:43 -0700
commit414d1eaf6cd9333fe0c4123ba8d7157946505a3b (patch)
treee753634660ddb33e2927c7eda1c048ea4cf45ac6 /activerecord
parent94f63f8337acc09406caee5d3add43fe2f529ff6 (diff)
parent747ccb0f7c9bdecb96369b2867aca8e746064b57 (diff)
downloadrails-414d1eaf6cd9333fe0c4123ba8d7157946505a3b.tar.gz
rails-414d1eaf6cd9333fe0c4123ba8d7157946505a3b.tar.bz2
rails-414d1eaf6cd9333fe0c4123ba8d7157946505a3b.zip
Merge pull request #12383 from marclennox/master
Fixed issue #12327
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb4
-rw-r--r--activerecord/test/cases/base_test.rb9
2 files changed, 11 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb
index 86b96a77fb..85f645123e 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb
@@ -157,8 +157,8 @@ module ActiveRecord
def exec_delete(sql, name = 'SQL', binds = [])
log(sql, name, binds) do
- result = binds.empty? ? exec_no_cache(sql, binds) :
- exec_cache(sql, binds)
+ result = without_prepared_statement?(binds) ? exec_no_cache(sql, binds) :
+ exec_cache(sql, binds)
affected = result.cmd_tuples
result.clear
affected
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb
index 5812e20a1b..a2f350817c 100644
--- a/activerecord/test/cases/base_test.rb
+++ b/activerecord/test/cases/base_test.rb
@@ -566,6 +566,15 @@ class BasicsTest < ActiveRecord::TestCase
assert_equal topic, Topic.find(topic.id)
end
+ def test_destroy_without_prepared_statement
+ topic = Topic.create(title: 'foo')
+ Topic.connection.unprepared_statement do
+ Topic.find(topic.id).destroy
+ end
+
+ assert_equal nil, Topic.find_by_id(topic.id)
+ end
+
def test_blank_ids
one = Subscriber.new(:id => '')
two = Subscriber.new(:id => '')