aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-10-13 17:38:34 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-10-26 13:44:09 -0700
commitfe2ee4fafdb6b29e4dde7ba287a4c342701e1056 (patch)
tree64571f71493ff1681f72c1779b73dbcd6841bedd /activerecord/lib
parentee959a9ca1f3eb75baa4e7dc6929cb209c610c85 (diff)
downloadrails-fe2ee4fafdb6b29e4dde7ba287a4c342701e1056.tar.gz
rails-fe2ee4fafdb6b29e4dde7ba287a4c342701e1056.tar.bz2
rails-fe2ee4fafdb6b29e4dde7ba287a4c342701e1056.zip
monkey patching Mysql::Stmt, calling free on the metadata
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/mysql_adapter.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
index f2e8366bb9..76d5611cd2 100644
--- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -24,6 +24,12 @@ class Mysql
end
end
+class Mysql
+ class Stmt
+ include Enumerable
+ end
+end
+
module ActiveRecord
class Base
# Establishes a connection to the database that's used by all Active Record objects.
@@ -334,12 +340,11 @@ module ActiveRecord
})
if metadata = stmt.result_metadata
cols = metadata.fetch_fields.map { |field| field.name }
- values = []
- stmt.each { |thing| values << thing }
- stmt.free_result
- result = ActiveRecord::Result.new(cols, values)
+ metadata.free
+ result = ActiveRecord::Result.new(cols, stmt.to_a)
end
+ stmt.free_result
stmt.close if bind_values.empty?
result