Browse Source

Fixes #5107 and removes some unneded code

Jose Lorenzo Rodriguez 11 years ago
parent
commit
87d500733f
2 changed files with 5 additions and 5 deletions
  1. 4 3
      src/ORM/Query.php
  2. 1 2
      tests/TestCase/ORM/QueryRegressionTest.php

+ 4 - 3
src/ORM/Query.php

@@ -511,13 +511,14 @@ class Query extends DatabaseQuery implements JsonSerializable {
 		}
 
 		$count = ['count' => $query->func()->count('*')];
-		if (!count($query->clause('group')) && !$query->clause('distinct')) {
+		$complex = count($query->clause('group')) || $query->clause('distinct');
+		$complex = $complex || count($query->clause('union'));
+
+		if (!$complex) {
 			$statement = $query
 				->select($count, true)
 				->execute();
 		} else {
-			// Forcing at least one field to be selected
-			$query->select(['_one_' => $query->newExpr()->add('1')]);
 			$statement = $this->connection()->newQuery()
 				->select($count)
 				->from(['count_source' => $query])

+ 1 - 2
tests/TestCase/ORM/QueryRegressionTest.php

@@ -194,8 +194,7 @@ class QueryRegressionTest extends TestCase {
 		$articles->belongsToMany('Tags');
 		$tags->belongsToMany('Articles');
 
-		$result = $articles->find()->contain(['Tags'])->first();
-		$sub = $articles->Tags->find()->select(['id'])->matching('Articles', function ($q) use ($result) {
+		$sub = $articles->Tags->find()->select(['id'])->matching('Articles', function ($q) {
 			return $q->where(['Articles.id' => 1]);
 		});