diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-02-21 15:08:54 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-02-21 16:09:01 -0800 |
commit | 83e42d52e37a33682fcac856330fd5d06e5a529c (patch) | |
tree | b12fad103b977689f056029dec6880f33a29a60e /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | |
parent | a566ee5308023f1a0ea9c06e7b1b2f70cef85c87 (diff) | |
download | rails-83e42d52e37a33682fcac856330fd5d06e5a529c.tar.gz rails-83e42d52e37a33682fcac856330fd5d06e5a529c.tar.bz2 rails-83e42d52e37a33682fcac856330fd5d06e5a529c.zip |
prepared statements can be disabled
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index 9e2da4a9ee..729e20d707 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -1,4 +1,5 @@ require 'active_support/core_ext/object/blank' +require 'arel/visitors/bind_visitor' module ActiveRecord module ConnectionAdapters @@ -122,12 +123,21 @@ module ActiveRecord :boolean => { :name => "tinyint", :limit => 1 } } + class BindSubstitution < Arel::Visitors::MySQL # :nodoc: + include Arel::Visitors::BindVisitor + end + # FIXME: Make the first parameter more similar for the two adapters def initialize(connection, logger, connection_options, config) super(connection, logger) @connection_options, @config = connection_options, config @quoted_column_names, @quoted_table_names = {}, {} - @visitor = Arel::Visitors::MySQL.new self + + if config.fetch(:prepared_statements) { true } + @visitor = Arel::Visitors::MySQL.new self + else + @visitor = BindSubstitution.new self + end end def adapter_name #:nodoc: |