aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-12-22 18:02:56 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2010-12-22 18:02:56 -0800
commit162e1d8df332f170b9dafdc91f60ee2cb359c1e5 (patch)
tree5368658186f0ffb13b1c3b61e4a85d0830e9a964 /lib/arel
parenta75ed569346c98c27c9ab1ec9c91332ffd4892b3 (diff)
downloadrails-162e1d8df332f170b9dafdc91f60ee2cb359c1e5.tar.gz
rails-162e1d8df332f170b9dafdc91f60ee2cb359c1e5.tar.bz2
rails-162e1d8df332f170b9dafdc91f60ee2cb359c1e5.zip
sql literals may be used as column attributes
Diffstat (limited to 'lib/arel')
-rw-r--r--lib/arel/table.rb2
-rw-r--r--lib/arel/visitors/to_sql.rb45
2 files changed, 25 insertions, 22 deletions
diff --git a/lib/arel/table.rb b/lib/arel/table.rb
index a13fd9fa5b..d1d1e40e11 100644
--- a/lib/arel/table.rb
+++ b/lib/arel/table.rb
@@ -109,7 +109,7 @@ Arel 3.0.0 with no replacement. PEW PEW PEW!!!
end
def [] name
- ::Arel::Attribute.new self, name.to_sym
+ ::Arel::Attribute.new self, name
end
def select_manager
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb
index d959782620..7669fd67ab 100644
--- a/lib/arel/visitors/to_sql.rb
+++ b/lib/arel/visitors/to_sql.rb
@@ -318,26 +318,29 @@ module Arel
alias :visit_Arel_Attributes_Time :visit_Arel_Attributes_Attribute
alias :visit_Arel_Attributes_Boolean :visit_Arel_Attributes_Attribute
- def visit_Fixnum o; o end
- alias :visit_Arel_Nodes_SqlLiteral :visit_Fixnum
- alias :visit_Arel_SqlLiteral :visit_Fixnum # This is deprecated
- alias :visit_Bignum :visit_Fixnum
-
- def visit_String o; quote(o, @last_column) end
-
- alias :visit_ActiveSupport_Multibyte_Chars :visit_String
- alias :visit_BigDecimal :visit_String
- alias :visit_Date :visit_String
- alias :visit_DateTime :visit_String
- alias :visit_FalseClass :visit_String
- alias :visit_Float :visit_String
- alias :visit_Hash :visit_String
- alias :visit_Symbol :visit_String
- alias :visit_Time :visit_String
- alias :visit_TrueClass :visit_String
- alias :visit_NilClass :visit_String
- alias :visit_ActiveSupport_StringInquirer :visit_String
- alias :visit_Class :visit_String
+ def literal o; o end
+
+ alias :visit_Arel_Nodes_SqlLiteral :literal
+ alias :visit_Arel_SqlLiteral :literal # This is deprecated
+ alias :visit_Bignum :literal
+ alias :visit_Fixnum :literal
+
+ def quoted o; quote(o, @last_column) end
+
+ alias :visit_ActiveSupport_Multibyte_Chars :quoted
+ alias :visit_ActiveSupport_StringInquirer :quoted
+ alias :visit_BigDecimal :quoted
+ alias :visit_Class :quoted
+ alias :visit_Date :quoted
+ alias :visit_DateTime :quoted
+ alias :visit_FalseClass :quoted
+ alias :visit_Float :quoted
+ alias :visit_Hash :quoted
+ alias :visit_NilClass :quoted
+ alias :visit_String :quoted
+ alias :visit_Symbol :quoted
+ alias :visit_Time :quoted
+ alias :visit_TrueClass :quoted
def visit_Array o
o.empty? ? 'NULL' : o.map { |x| visit x }.join(', ')
@@ -352,7 +355,7 @@ module Arel
end
def quote_column_name name
- @quoted_columns[name] ||= @connection.quote_column_name(name)
+ @quoted_columns[name] ||= Arel::Nodes::SqlLiteral === name ? name : @connection.quote_column_name(name)
end
end
end