From f87c8398d95f3f4b162a3a78299489189d7a0a45 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Thu, 29 Jul 2010 12:13:26 -0700 Subject: PERF: pushing christener down for faster method lookup and calling --- lib/arel/algebra/relations/operations/project.rb | 3 ++- lib/arel/engines/sql/relations/table.rb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/arel/algebra/relations/operations/project.rb b/lib/arel/algebra/relations/operations/project.rb index 649ec19713..1c24ae6caf 100644 --- a/lib/arel/algebra/relations/operations/project.rb +++ b/lib/arel/algebra/relations/operations/project.rb @@ -1,10 +1,11 @@ module Arel class Project < Compound - attr_reader :projections, :attributes + attr_reader :projections, :attributes, :christener def initialize(relation, projections) super(relation) @projections = projections.map { |p| p.bind(relation) } + @christener = Sql::Christener.new @attributes = Header.new(projections.map { |x| x.bind(self) }) end diff --git a/lib/arel/engines/sql/relations/table.rb b/lib/arel/engines/sql/relations/table.rb index 65a0f91e8c..f56fd7d813 100644 --- a/lib/arel/engines/sql/relations/table.rb +++ b/lib/arel/engines/sql/relations/table.rb @@ -12,12 +12,13 @@ module Arel def tables= e; @@tables = e; end end - attr_reader :name, :engine, :table_alias, :options + attr_reader :name, :engine, :table_alias, :options, :christener def initialize(name, options = {}) @name = name.to_s @table_exists = nil @table_alias = nil + @christener = Sql::Christener.new if options.is_a?(Hash) @options = options -- cgit v1.2.3