diff --git a/libraries/classes/Sql.php b/libraries/classes/Sql.php index eac7c5cbb9..f7e03b08f2 100644 --- a/libraries/classes/Sql.php +++ b/libraries/classes/Sql.php @@ -752,6 +752,7 @@ class Sql if ( $analyzedSqlResults['is_group'] === false && $analyzedSqlResults['distinct'] === false + && $analyzedSqlResults['union'] === false && count($statement->expr) === 1 ) { $statement->expr[0] = new Expression(); diff --git a/test/classes/SqlTest.php b/test/classes/SqlTest.php index bed82794ef..7436f62dbb 100644 --- a/test/classes/SqlTest.php +++ b/test/classes/SqlTest.php @@ -571,6 +571,14 @@ class SqlTest extends AbstractTestCase false, 'SELECT COUNT(*) FROM (SELECT DISTINCT country_id FROM city ) as cnt', ], + [ + 'SELECT * FROM t1 UNION SELECT * FROM t2;', + ['max_rows' => -1, 'pos' => 0], + 25, + 109, + false, + 'SELECT COUNT(*) FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ) as cnt', + ], ]; }