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:
phpnut 2007-07-08 02:29:37 +00:00
parent b2805cff95
commit 8229587cfe
2 changed files with 14 additions and 2 deletions

View file

@ -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)) {

View file

@ -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() {