diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2016-02-06 15:25:36 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2016-04-04 03:57:29 +0900 |
commit | 8200b3ba325be07ebd579c57c7104434b0bf036e (patch) | |
tree | 960f72b96d735efd92a8a50331270df7fbe8c360 /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | |
parent | bdcacc856641b6d2956616e393926e02b422199e (diff) | |
download | rails-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.rb | 14 |
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 |