mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-09-06 11:32:40 +00:00
Adding fix for #2837, dbo_source looping bug on parsing fields, can't use database function
Added test for #2837 git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5397 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
parent
b2805cff95
commit
8229587cfe
2 changed files with 14 additions and 2 deletions
|
@ -1354,7 +1354,7 @@ class DboSource extends DataSource {
|
|||
$results = array();
|
||||
$length = strlen($fields);
|
||||
|
||||
while ($offset < $length) {
|
||||
while ($offset <= $length) {
|
||||
$tmpOffset = -1;
|
||||
$offsets = array(strpos($fields, ',', $offset), strpos($fields, '(', $offset), strpos($fields, ')', $offset));
|
||||
for ($i = 0; $i < 3; $i++) {
|
||||
|
@ -1379,7 +1379,7 @@ class DboSource extends DataSource {
|
|||
$offset = ++$tmpOffset;
|
||||
} else {
|
||||
$results[] = $buffer . substr($fields, $offset);
|
||||
$offset = $length;
|
||||
$offset = $length + 1;
|
||||
}
|
||||
}
|
||||
if (empty($results) && !empty($buffer)) {
|
||||
|
|
|
@ -1695,6 +1695,18 @@ class DboSourceTest extends UnitTestCase {
|
|||
$result = $this->db->fields($this->model, null, 'SUM(Thread.unread_buyer) AS ' . $this->db->name('sum_unread_buyer'));
|
||||
$expected = array('SUM(`Thread`.`unread_buyer`) AS `sum_unread_buyer`');
|
||||
$this->assertEqual($result, $expected);
|
||||
|
||||
$result = $this->db->fields($this->model, null, 'name, count(*)');
|
||||
$expected = array('`TestModel`.`name`', 'count(*)');
|
||||
$this->assertEqual($result, $expected);
|
||||
|
||||
$result = $this->db->fields($this->model, null, 'count(*), name');
|
||||
$expected = array('count(*)', '`TestModel`.`name`');
|
||||
$this->assertEqual($result, $expected);
|
||||
|
||||
$result = $this->db->fields($this->model, null, 'field1, field2, field3, count(*), name');
|
||||
$expected = array('`TestModel`.`field1`', '`TestModel`.`field2`', '`TestModel`.`field3`', 'count(*)', '`TestModel`.`name`');
|
||||
$this->assertEqual($result, $expected);
|
||||
}
|
||||
|
||||
function testMergeAssociations() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue