Fix inappropriate quoting of "distinct" in XML query

https://rhymix.org/qna/1914711
This commit is contained in:
Kijin Sung 2025-08-19 00:22:02 +09:00
parent 6917a76726
commit e7d14be6bb
3 changed files with 23 additions and 3 deletions

View file

@ -7,5 +7,7 @@
</columns>
<conditions>
<condition operation="search" column="content" var="s_content" />
<condition operation="equal" column="COUNT(DISTINCT voted_count)" var="s_voted_count" />
<condition operation="equal" column="other_table.blamed_count" var="s_blamed_count" />
</conditions>
</query>

View file

@ -132,6 +132,23 @@ class DBQueryParserTest extends \Codeception\Test\Unit
$this->assertEquals(['%검색%', '%키워드%', '%라이믹스 유닛테스트%'], $params);
}
public function testQuoteName()
{
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectTest3.xml');
$args = array('s_voted_count' => 24);
$sql = $query->getQueryString('rx_', $args);
$params = $query->getQueryParams();
$this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE COUNT(DISTINCT `voted_count`) = ?', $sql);
$this->assertEquals([24], $params);
$args = array('s_blamed_count' => 42);
$sql = $query->getQueryString('rx_', $args);
$params = $query->getQueryParams();
$this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE `other_table`.`blamed_count` = ?', $sql);
$this->assertEquals([42], $params);
}
public function testJoin1()
{
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectJoinTest1.xml');