From 1741bbe2d5cb58af76fb2ca31a25c05eadfadb71 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Thu, 21 Oct 2010 11:19:45 -0700 Subject: avoiding statement cache if there are no bind values --- .../active_record/connection_adapters/postgresql_adapter.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index 5e46f6994c..64a07cccca 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -521,6 +521,8 @@ module ActiveRecord end def exec(sql, name = 'SQL', binds = []) + return exec_no_cache(sql, name) if binds.empty? + log(sql, name) do unless @statements.key? sql nextkey = "a#{@statements.length + 1}" @@ -962,6 +964,15 @@ module ActiveRecord end private + def exec_no_cache(sql, name) + log(sql, name) do + result = @connection.async_exec(sql) + ret = ActiveRecord::Result.new(result.fields, result_as_array(result)) + result.clear + ret + end + end + # The internal PostgreSQL identifier of the money data type. MONEY_COLUMN_TYPE_OID = 790 #:nodoc: # The internal PostgreSQL identifier of the BYTEA data type. -- cgit v1.2.3