From 3aaac5b646ecd73a2fc684896402b1456e5238d8 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 27 Jul 2010 17:22:40 -0700 Subject: PERF: fewer objects --- lib/arel/algebra/relations/relation.rb | 9 ++++++++- lib/arel/engines/sql/christener.rb | 2 +- lib/arel/engines/sql/relations/table.rb | 5 +++-- 3 files changed, 12 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/arel/algebra/relations/relation.rb b/lib/arel/algebra/relations/relation.rb index b3dccaf8be..af97aa8344 100644 --- a/lib/arel/algebra/relations/relation.rb +++ b/lib/arel/algebra/relations/relation.rb @@ -71,7 +71,14 @@ module Arel end def where_clauses - wheres.collect { |w| w.to_sql(Sql::WhereClause.new(self)) } + wheres.collect { |w| + case w + when Value + w.value + else # FIXME: why do we have to pass in a whereclause? + w.to_sql(Sql::WhereClause.new(self)) + end + } end def group_clauses diff --git a/lib/arel/engines/sql/christener.rb b/lib/arel/engines/sql/christener.rb index 2c96020554..6160f244f7 100644 --- a/lib/arel/engines/sql/christener.rb +++ b/lib/arel/engines/sql/christener.rb @@ -5,7 +5,7 @@ module Arel # FIXME: this exists because all objects hash the same. :'( @used_names = Hash.new(0) @relation_names = Hash.new do |hash, relation| - name = relation.table_alias ? relation.table_alias : relation.name + name = relation.table_alias || relation.name @used_names[name] += 1 hash[relation] = name + (@used_names[name] > 1 ? "_#{@used_names[name]}" : '') end diff --git a/lib/arel/engines/sql/relations/table.rb b/lib/arel/engines/sql/relations/table.rb index 236a36c7a7..9e64e8e590 100644 --- a/lib/arel/engines/sql/relations/table.rb +++ b/lib/arel/engines/sql/relations/table.rb @@ -94,8 +94,9 @@ module Arel end def ==(other) - Table === other and - name == other.name and + super || + Table === other && + name == other.name && table_alias == other.table_alias end end -- cgit v1.2.3