Skip to content

Commit 3de7b7c

Browse files
authored
Merge pull request #69 from moufmouf/fix_another_alias
Fixing an issue if there is no alias in subquery
2 parents 1294fd8 + 306f4f4 commit 3de7b7c

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/SQLParser/Node/NodeFactory.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static function toObject(array $desc)
4242

4343
// If the constant has an alias, it is declared in the columns section.
4444
// If this is the case, let's wrap it in an "expression"
45-
if (isset($desc['alias'])) {
45+
if (isset($desc['alias']['name'])) {
4646
$expression = new Expression();
4747
$expression->setBaseExpression($desc['base_expr']);
4848
$expression->setSubTree($const);
@@ -108,7 +108,7 @@ public static function toObject(array $desc)
108108
$instance->setDatabase($baseName);
109109
}
110110

111-
if (!empty($desc['alias'])) {
111+
if (!empty($desc['alias']['name'])) {
112112
$instance->setAlias($desc['alias']['name']);
113113
}
114114

@@ -225,7 +225,7 @@ public static function toObject(array $desc)
225225
$expr->setJoinType($desc['join_type']);
226226
}
227227

228-
if (isset($desc['alias'])) {
228+
if (isset($desc['alias']['name'])) {
229229
$expr->setAlias($desc['alias']['name']);
230230
}
231231

@@ -285,7 +285,7 @@ public static function toObject(array $desc)
285285
$expr->setSubTree(self::buildFromSubtree($desc['sub_tree']));
286286
}
287287

288-
if (isset($desc['alias'])) {
288+
if (isset($desc['alias']['name'])) {
289289
$expr->setAlias($desc['alias']['name']);
290290
}
291291
if (isset($desc['direction'])) {

tests/Mouf/Database/MagicQueryTest.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public function testStandardSelect()
146146

147147
$sql = "SELECT Substring_index(ee.`data`, ':', -1) as foo FROM users";
148148
$this->assertEquals("SELECT Substring_index(ee.data, ':', -1) AS foo FROM users", self::simplifySql($magicQuery->build($sql)));
149-
149+
150150
$sql = 'SELECT * FROM users GROUP BY id, login';
151151
$this->assertEquals('SELECT * FROM users GROUP BY id, login', self::simplifySql($magicQuery->build($sql)));
152152

@@ -202,6 +202,9 @@ public function testStandardSelect()
202202

203203
$sql = 'SELECT (id + 2) AS foo FROM bar';
204204
$this->assertEquals($sql, self::simplifySql($magicQuery->build($sql)));
205+
206+
$sql = 'SELECT COUNT(*) FROM (SELECT DISTINCT states.country_id, states.code FROM states)';
207+
$this->assertEquals($sql, self::simplifySql($magicQuery->build($sql)));
205208
}
206209

207210
/**
@@ -380,9 +383,9 @@ public function testMatchAgainst()
380383
ORDER BY MATCH(column) AGAINST(:searchTerm IN BOOLEAN MODE) DESC
381384
";
382385
$expectedSql = "SELECT MATCH(column) AGAINST('searchString' IN BOOLEAN MODE) AS rang FROM table WHERE MATCH(column) AGAINST('searchString' IN BOOLEAN MODE) ORDER BY MATCH(column) AGAINST('searchString' IN BOOLEAN MODE) DESC";
383-
386+
384387
$params["searchTerm"] = "searchString";
385-
388+
386389
$this->assertEquals($expectedSql, self::simplifySql($magicQuery->build($sql, $params)));
387390
}
388391

0 commit comments

Comments
 (0)