提交 aebc8310 编写于 作者: A Aaron Patterson

implementing where_sql method

上级 9742785d
......@@ -122,6 +122,13 @@ def wheres
Compatibility::Wheres.new @engine, @ctx.wheres
end
def where_sql
return if @ctx.wheres.empty?
viz = Visitors::WhereSql.new @engine
Nodes::SqlLiteral.new viz.accept @ctx
end
def take limit
@head.limit = limit
self
......
......@@ -3,6 +3,7 @@
require 'arel/visitors/mysql'
require 'arel/visitors/oracle'
require 'arel/visitors/join_sql'
require 'arel/visitors/where_sql'
require 'arel/visitors/order_clauses'
require 'arel/visitors/dot'
......
......@@ -379,6 +379,23 @@ def execute sql, name = nil, *args
end
end
describe 'where_sql' do
it 'gives me back the where sql' do
table = Table.new :users
manager = Arel::SelectManager.new Table.engine
manager.from table
manager.where table[:id].eq 10
manager.where_sql.should be_like %{ WHERE "users"."id" = 10 }
end
it 'returns nil when there are no wheres' do
table = Table.new :users
manager = Arel::SelectManager.new Table.engine
manager.from table
manager.where_sql.should be_nil
end
end
describe 'update' do
it 'copies limits' do
engine = EngineProxy.new Table.engine
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册