From 71e92992e66f461acaabc3ac2f3ec6480167962e Mon Sep 17 00:00:00 2001 From: Emilio Tagua Date: Wed, 23 Jun 2010 11:54:48 -0300 Subject: Add support for counting rows with conditions or limit using a subquery. --- spec/engines/sql/unit/relations/take_spec.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'spec/engines') diff --git a/spec/engines/sql/unit/relations/take_spec.rb b/spec/engines/sql/unit/relations/take_spec.rb index cc3c3dbbf5..1e0d3e3cfe 100644 --- a/spec/engines/sql/unit/relations/take_spec.rb +++ b/spec/engines/sql/unit/relations/take_spec.rb @@ -52,6 +52,24 @@ module Arel }) end end + + it "manufactures count sql with limit" do + sql = Take.new(@relation.project(@relation[:id].count), @taken).to_sql + + adapter_is :mysql do + sql.should be_like(%Q{ + SELECT COUNT(`users`.`id`) AS count_id + FROM (SELECT 1 FROM `users` LIMIT 4) + }) + end + + adapter_is_not :mysql, :oracle do + sql.should be_like(%Q{ + SELECT COUNT("users"."id") AS count_id + FROM (SELECT 1 FROM "users" LIMIT 4) + }) + end + end end end end -- cgit v1.2.3