aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-09-27 11:32:04 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-09-27 11:32:04 -0700
commitec998ae9a6aeda09ad64bb94a50ac8b9fccd246d (patch)
treed2a14792d04c89549473173000517093ce4d7ef0 /lib/arel
parenta25b9cbc391e7040fbbbccc932339cb57d11e531 (diff)
downloadrails-ec998ae9a6aeda09ad64bb94a50ac8b9fccd246d.tar.gz
rails-ec998ae9a6aeda09ad64bb94a50ac8b9fccd246d.tar.bz2
rails-ec998ae9a6aeda09ad64bb94a50ac8b9fccd246d.zip
using the last seen column for quoting
Diffstat (limited to 'lib/arel')
-rw-r--r--lib/arel/visitors/to_sql.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb
index b9379da8cc..deb087b390 100644
--- a/lib/arel/visitors/to_sql.rb
+++ b/lib/arel/visitors/to_sql.rb
@@ -6,11 +6,13 @@ module Arel
def initialize engine
@engine = engine
@connection = nil
+ @last_column = []
@quoted_tables = {}
@quoted_columns = {}
end
def accept object
+ @last_column = []
@engine.connection_pool.with_connection do |conn|
@connection = conn
visit object
@@ -226,6 +228,7 @@ module Arel
end
def visit_Arel_Attributes_Attribute o
+ @last_column.push o.column
join_name = o.relation.table_alias || o.relation.name
"#{quote_table_name join_name}.#{quote_column_name o.name}"
end
@@ -238,7 +241,7 @@ module Arel
alias :visit_Arel_Nodes_SqlLiteral :visit_Fixnum
alias :visit_Arel_SqlLiteral :visit_Fixnum # This is deprecated
- def visit_String o; quote(o) end
+ def visit_String o; quote(o, @last_column.pop) end
alias :visit_ActiveSupport_Multibyte_Chars :visit_String
alias :visit_BigDecimal :visit_String