#1209: ATTR_QUOTE_IDENTIFIER Doctrine_Query->getCountQuery() postgresql
-----------------------------------+--------------------------------------- -
Reporter: abusquets | Owner: jwage
Type: defect | Status: new
Priority: critical | Milestone: 0.11.1
Component: Attributes | Version: 0.11
Keywords: | Has_test: 0
Mystatus: Pending Core Response | Has_patch: 0
-----------------------------------+--------------------------------------- -
PHP 5.2.5[[BR]]
Apache 2.2[[BR]]
PostgreSQL 8.1[[BR]]
Doctrine 0.11.0[[BR]]
Doctrine_Query->getCountQuery() function not works correctly with the
Doctrine::ATTR_QUOTE_IDENTIFIER.[[BR]]
I have the Doctrine::ATTR_QUOTE_IDENTIFIER => true[[BR]]
I'm working with the Pager and[[BR]]
Doctrine_Query->getCountQuery() creates this sql count[[BR]]
SELECT COUNT(DISTINCT p.7_parcela) AS num_results FROM "parcela" "p"
GROUP BY p.7_parcela
and the correct sql should be
SELECT COUNT(DISTINCT "p"."7_parcela") AS num_results FROM "parcela"
"p" GROUP BY "p"."7_parcela"
{{{
<?php
define('DOCTRINE_PATH',
realpath(dirname(__file__)."/../").DIRECTORY_SEPARATOR.'library'.DIRECTORY_ SEPARATOR.'Doctrine');
define('SANDBOX_PATH',
realpath(dirname(__file__)."/../").DIRECTORY_SEPARATOR.'application');
define('DATA_FIXTURES_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR .
'doctrine' . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR .
'fixtures');
define('MODELS_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'models');
define('MIGRATIONS_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'doctrine'
. DIRECTORY_SEPARATOR . 'migrations');
define('SQL_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'doctrine' .
DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'sql');
define('YAML_SCHEMA_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR .
'doctrine' . DIRECTORY_SEPARATOR . 'schema');
define('DSN', 'pgsql://postgres:123456@server:5432/prova');
require_once(DOCTRINE_PATH . DIRECTORY_SEPARATOR . 'Doctrine.php');
spl_autoload_register(array('Doctrine', 'autoload'));
Doctrine_Manager::connection(DSN, 'sandbox');
Doctrine_Manager::getInstance()->setAttribute(Doctrine::ATTR_QUOTE_IDENTIFI ER
, true);
abstract class BaseParcela extends Doctrine_Record
{
public function setTableDefinition()
{
$this->setTableName('parcela');
$this->hasColumn('1_acreedor', 'integer', 4,
array('unsigned' => false, 'notnull' => false, 'primary' => false));
$this->hasColumn('2_nom', 'string', 255, array('fixed' =>
false, 'notnull' => false, 'primary' => false));
$this->hasColumn('3_verema', 'string', 255, array('fixed'
=> false, 'notnull' => false, 'primary' => false));
$this->hasColumn('4_centre', 'string', 255, array('fixed'
=> false, 'notnull' => false, 'primary' => false));
$this->hasColumn('5_nom', 'string', 255, array('fixed' =>
false, 'notnull' => false, 'primary' => false));
$this->hasColumn('6_ind_fina', 'string', 255,
array('fixed' => false, 'notnull' => false, 'primary' => false));
$this->hasColumn('7_parcela as id', 'integer', 4,
array('unsigned' => false, 'notnull' => true, 'primary' => true));
}
public function setUp()
{
parent::setUp();
}
}
class Parcela extends BaseParcela{}
$query = Doctrine_Query::create()->from('Parcela');
$pager = new Doctrine_Pager(
$query ,
1,
2
);
$pager->execute();
}}}
--
Ticket URL: <http://trac.phpdoctrine.org/ticket/1209>
Doctrine <http://www.phpdoctrine.org>
PHP Doctrine Object Relational Mapper