aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-01-30 10:39:16 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2013-01-30 10:39:16 -0800
commit789d059316fed9987d3e3a42ff74f2292a16383a (patch)
tree3084f510da42b7c35c06490aebe5b7d173dbdb34
parent38d0a222e275d917a2c1d093b24457bafb600a00 (diff)
parent9c514f39bd040c45ffa7df43bab24c2a0c88c6e3 (diff)
downloadrails-789d059316fed9987d3e3a42ff74f2292a16383a.tar.gz
rails-789d059316fed9987d3e3a42ff74f2292a16383a.tar.bz2
rails-789d059316fed9987d3e3a42ff74f2292a16383a.zip
Merge pull request #159 from Noemj/master
SqlLiterals quoting fix
-rw-r--r--lib/arel/visitors/to_sql.rb1
-rw-r--r--test/test_update_manager.rb8
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb
index c4c2e6fe0f..050a9b2e63 100644
--- a/lib/arel/visitors/to_sql.rb
+++ b/lib/arel/visitors/to_sql.rb
@@ -589,6 +589,7 @@ key on UpdateManager using UpdateManager#key=
end
def quote value, column = nil
+ return value if Arel::Nodes::SqlLiteral === value
@connection.quote value, column
end
diff --git a/test/test_update_manager.rb b/test/test_update_manager.rb
index f9704af425..1dd881b259 100644
--- a/test/test_update_manager.rb
+++ b/test/test_update_manager.rb
@@ -8,6 +8,14 @@ module Arel
end
end
+ it "should not quote sql literals" do
+ table = Table.new(:users)
+ um = Arel::UpdateManager.new Table.engine
+ um.table table
+ um.set [[table[:name], (Arel::Nodes::BindParam.new '?')]]
+ um.to_sql.must_be_like %{ UPDATE "users" SET "name" = ? }
+ end
+
it 'handles limit properly' do
table = Table.new(:users)
um = Arel::UpdateManager.new Table.engine