From e8563a6234b4f60f8d756d89b3b35026a467694e Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Wed, 30 Mar 2011 09:54:23 -0700 Subject: use TableAlias nodes for aliasing subselects --- lib/arel/factory_methods.rb | 4 ++++ lib/arel/select_manager.rb | 2 +- lib/arel/visitors/to_sql.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/arel/factory_methods.rb b/lib/arel/factory_methods.rb index 09b82c0555..2ced1f8971 100644 --- a/lib/arel/factory_methods.rb +++ b/lib/arel/factory_methods.rb @@ -2,6 +2,10 @@ module Arel ### # Methods for creating various nodes module FactoryMethods + def create_table_alias relation, name + Nodes::TableAlias.new(relation, name) + end + def create_join to, constraint = nil, klass = Nodes::InnerJoin klass.new(to, constraint) end diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb index de68b25b64..904a24bbb3 100644 --- a/lib/arel/select_manager.rb +++ b/lib/arel/select_manager.rb @@ -39,7 +39,7 @@ module Arel end def as other - Nodes::As.new grouping(@ast), Nodes::SqlLiteral.new(other) + create_table_alias grouping(@ast), Nodes::SqlLiteral.new(other) end def where_clauses diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index bbb2c54655..d1175df2a0 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -396,7 +396,7 @@ key on UpdateManager using UpdateManager#key= end def quote_table_name name - @quoted_tables[name] ||= @connection.quote_table_name(name) + @quoted_tables[name] ||= Arel::Nodes::SqlLiteral === name ? name : @connection.quote_table_name(name) end def quote_column_name name -- cgit v1.2.3