aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2016-02-06 15:25:36 +0900
committerRyuta Kamizono <kamipo@gmail.com>2016-04-04 03:57:29 +0900
commit8200b3ba325be07ebd579c57c7104434b0bf036e (patch)
tree960f72b96d735efd92a8a50331270df7fbe8c360 /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
parentbdcacc856641b6d2956616e393926e02b422199e (diff)
downloadrails-8200b3ba325be07ebd579c57c7104434b0bf036e.tar.gz
rails-8200b3ba325be07ebd579c57c7104434b0bf036e.tar.bz2
rails-8200b3ba325be07ebd579c57c7104434b0bf036e.zip
Extract `arel_visitor` and move up to the abstract adapter
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_adapter.rb14
1 files changed, 12 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
index 069346253a..41e40494e6 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -104,9 +104,15 @@ module ActiveRecord
@config = config
@pool = nil
@schema_cache = SchemaCache.new self
- @visitor = nil
- @prepared_statements = false
@quoted_column_names, @quoted_table_names = {}, {}
+ @visitor = arel_visitor
+
+ if self.class.type_cast_config_to_boolean(config.fetch(:prepared_statements) { true })
+ @prepared_statements = true
+ @visitor.extend(DetermineIfPreparableVisitor)
+ else
+ @prepared_statements = false
+ end
end
class Version
@@ -142,6 +148,10 @@ module ActiveRecord
end
end
+ def arel_visitor # :nodoc:
+ (Arel::Visitors::VISITORS[@config[:adapter]] || Arel::Visitors::ToSql).new(self)
+ end
+
def valid_type?(type)
true
end