aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/nodes
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-11-17 14:52:38 -0800
committerSean Griffin <sean@thoughtbot.com>2014-11-17 14:52:38 -0800
commit590c784a30b13153667f8db7915998d7731e24e5 (patch)
tree4ac5e5ed038cb6c57c453909b344231603ee2928 /lib/arel/nodes
parent5035526b534a5d7c9d95eb6b66ade349c3a947f0 (diff)
downloadrails-590c784a30b13153667f8db7915998d7731e24e5.tar.gz
rails-590c784a30b13153667f8db7915998d7731e24e5.tar.bz2
rails-590c784a30b13153667f8db7915998d7731e24e5.zip
Add order to BindParams in the ToSql collector
This removes the need for us to do the re-ordering by walking the AST in ActiveRecord. We're using a block to communicate with the collector, since the collector needs to be the thing which knows about the index, while the visitor is the thing that needs to know the syntax. The BindParam needs to know about neither of these things, so it's been changed to stop being a subclass of SqlLiteral I could also see an alternative implementation using format strings if for some reason blocks cause a problem.
Diffstat (limited to 'lib/arel/nodes')
-rw-r--r--lib/arel/nodes/bind_param.rb6
-rw-r--r--lib/arel/nodes/sql_literal.rb3
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/arel/nodes/bind_param.rb b/lib/arel/nodes/bind_param.rb
new file mode 100644
index 0000000000..160bc21b91
--- /dev/null
+++ b/lib/arel/nodes/bind_param.rb
@@ -0,0 +1,6 @@
+module Arel
+ module Nodes
+ class BindParam < Node
+ end
+ end
+end
diff --git a/lib/arel/nodes/sql_literal.rb b/lib/arel/nodes/sql_literal.rb
index b43288b29c..2c56644b99 100644
--- a/lib/arel/nodes/sql_literal.rb
+++ b/lib/arel/nodes/sql_literal.rb
@@ -10,8 +10,5 @@ module Arel
coder.scalar = self.to_s
end
end
-
- class BindParam < SqlLiteral
- end
end
end