diff options
author | Sven Fuchs <svenfuchs@artweb-design.de> | 2010-12-07 10:05:25 +0100 |
---|---|---|
committer | Sven Fuchs <svenfuchs@artweb-design.de> | 2010-12-07 10:05:25 +0100 |
commit | 54d62de817f19dfaa206584516ecaedbdbbaea98 (patch) | |
tree | f15b1da46b1d0fa5a90712500af0f85bbfd6aac2 /test | |
parent | 4bec8c8e9e21c87a6beb22423fefbd23a7f8fb99 (diff) | |
download | rails-54d62de817f19dfaa206584516ecaedbdbbaea98.tar.gz rails-54d62de817f19dfaa206584516ecaedbdbbaea98.tar.bz2 rails-54d62de817f19dfaa206584516ecaedbdbbaea98.zip |
tests for passing a subquery to #in and #not_in
Diffstat (limited to 'test')
-rw-r--r-- | test/visitors/test_to_sql.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/visitors/test_to_sql.rb b/test/visitors/test_to_sql.rb index bae291d87c..3c9fc95a0b 100644 --- a/test/visitors/test_to_sql.rb +++ b/test/visitors/test_to_sql.rb @@ -137,6 +137,15 @@ module Arel } end + it 'can handle subqueries' do + table = Table.new(:users) + subquery = table.project(:id).where(table[:name].eq('Aaron')) + node = @attr.in subquery + @visitor.accept(node).must_be_like %{ + "users"."id" IN (SELECT id FROM "users" WHERE "users"."name" = 'Aaron') + } + end + it 'uses the same column for escaping values' do @attr = Table.new(:users)[:name] visitor = Class.new(ToSql) do @@ -185,6 +194,15 @@ module Arel } end + it 'can handle subqueries' do + table = Table.new(:users) + subquery = table.project(:id).where(table[:name].eq('Aaron')) + node = @attr.not_in subquery + @visitor.accept(node).must_be_like %{ + "users"."id" NOT IN (SELECT id FROM "users" WHERE "users"."name" = 'Aaron') + } + end + it 'uses the same column for escaping values' do @attr = Table.new(:users)[:name] visitor = Class.new(ToSql) do |