#1609: Oracle - Execution with custom function results in "not a GROUP BY
expression" error
--------------------------+-------------------------------------------------
  Reporter:  tchakkapark  |       Owner:  guilhermeblanco      
      Type:  defect       |      Status:  new                  
  Priority:  major        |   Milestone:  1.0.4                
 Component:  Pager        |     Version:  1.0.3                
Resolution:               |    Keywords:  oracle group by      
  Has_test:  0            |    Mystatus:  Pending Core Response
 Has_patch:  0            |  
--------------------------+-------------------------------------------------
Old description:

> Symfony 1.1 w/ Doctrine plugin and pager
>
> Using changeset 5139
>
> Oracle 10g
>
> I need my dates converted to unixtime format, and have done the
> following:
>

> {{{
>                 $messages = Doctrine_Query::create()
>                             ->select("el.User_Id, el.To_Email,
> el.To_Name, el.To_Contact_Id, el.From_Email, el.From_Name,
> el.From_Contact_Id, el.Reply_Email, el.Subject, el.Text_Clob_Id,
> el.Html_Clob_Id, el.Attachment_Clob, el.Attachment_Name,
> el.Scheduled_Send, el.Status, el.Status_Text, ((el.created -
> to_date('01-JAN-1970','DD-MON-YYYY')) * (86400)) el.created")
>                             ->from('Email_Log el')
>                             ->where("el.to_email = ? AND el.status !=
> 'Deleted'", $this->getUser()->getAttribute('email'))
>                             ->setHydrationMode(Doctrine::HYDRATE_ARRAY);
>
>                 if($this->reduced == true){
>                         $pager = new Doctrine_Pager($messages, 0, 5);
>                 } else {
>                         $pager = new Doctrine_Pager($messages,
> $request->getParameter("page", 0), 30);
>                 }
>
>                 $this->results = $pager->execute();
>
> }}}
>
> Executing all of this results in a:
>

> {{{
> SQLSTATE[HY000]: General error: 979 OCIStmtExecute: ORA-00979: not a
> GROUP BY expression
> (ext\pdo_oci\oci_statement.c:146)
> }}}
>
> What's going on is:
>

> {{{
>
> (Read from bottom to top, with top being recent)
>
> at Doctrine_Connection->execute('SELECT COUNT(DISTINCT e.email_id) AS
> num_results, ((e.created - to_date('01-JAN-1970', 'DD-MON-YYYY')) *
> (86400)) AS e__0 FROM EMAIL_LOG e WHERE (e.to_email = ? AND e.status !=
> 'Deleted') GROUP BY e.email_id', array([EMAIL PROTECTED]))in
> SF_ROOT_DIR\plugins\sfDoctrinePlugin\lib\doctrine\Doctrine\Connection.php
> line 788 ...
>
> at Doctrine_Connection->fetchAll('SELECT COUNT(DISTINCT e.email_id) AS
> num_results, ((e.created - to_date('01-JAN-1970', 'DD-MON-YYYY')) *
> (86400)) AS e__0 FROM EMAIL_LOG e WHERE (e.to_email = ? AND e.status !=
> 'Deleted') GROUP BY e.email_id', array(null))in
> SF_ROOT_DIR\plugins\sfDoctrinePlugin\lib\doctrine\Doctrine\Query.php line
> 1940 ...
>
> at Doctrine_Query->count(array()) in
> SF_ROOT_DIR\plugins\sfDoctrinePlugin\lib\doctrine\Doctrine\Pager.php line
> 108 ...
> at Doctrine_Pager->_initialize(array())in
> SF_ROOT_DIR\plugins\sfDoctrinePlugin\lib\doctrine\Doctrine\Pager.php line
> 570 ...
> }}}
>
> It's including that custom function for the UNIX time when it should not
> be.

New description:

 Symfony 1.1 w/ Doctrine plugin and pager

 Using changeset 5139 (branch 1.1)

 Oracle 10g

 I need my dates converted to unixtime format, and have done the following:


 {{{
                 $messages = Doctrine_Query::create()
                             ->select("el.User_Id, el.To_Email, el.To_Name,
 el.To_Contact_Id, el.From_Email, el.From_Name, el.From_Contact_Id,
 el.Reply_Email, el.Subject, el.Text_Clob_Id, el.Html_Clob_Id,
 el.Attachment_Clob, el.Attachment_Name, el.Scheduled_Send, el.Status,
 el.Status_Text, ((el.created - to_date('01-JAN-1970','DD-MON-YYYY')) *
 (86400)) el.created")
                             ->from('Email_Log el')
                             ->where("el.to_email = ? AND el.status !=
 'Deleted'", $this->getUser()->getAttribute('email'))
                             ->setHydrationMode(Doctrine::HYDRATE_ARRAY);

                 if($this->reduced == true){
                         $pager = new Doctrine_Pager($messages, 0, 5);
                 } else {
                         $pager = new Doctrine_Pager($messages,
 $request->getParameter("page", 0), 30);
                 }

                 $this->results = $pager->execute();

 }}}

 Executing all of this results in a:


 {{{
 SQLSTATE[HY000]: General error: 979 OCIStmtExecute: ORA-00979: not a GROUP
 BY expression
 (ext\pdo_oci\oci_statement.c:146)
 }}}

 What's going on is:


 {{{

 (Read from bottom to top, with top being recent)

 at Doctrine_Connection->execute('SELECT COUNT(DISTINCT e.email_id) AS
 num_results, ((e.created - to_date('01-JAN-1970', 'DD-MON-YYYY')) *
 (86400)) AS e__0 FROM EMAIL_LOG e WHERE (e.to_email = ? AND e.status !=
 'Deleted') GROUP BY e.email_id', array([EMAIL PROTECTED]))in
 SF_ROOT_DIR\plugins\sfDoctrinePlugin\lib\doctrine\Doctrine\Connection.php
 line 788 ...

 at Doctrine_Connection->fetchAll('SELECT COUNT(DISTINCT e.email_id) AS
 num_results, ((e.created - to_date('01-JAN-1970', 'DD-MON-YYYY')) *
 (86400)) AS e__0 FROM EMAIL_LOG e WHERE (e.to_email = ? AND e.status !=
 'Deleted') GROUP BY e.email_id', array(null))in
 SF_ROOT_DIR\plugins\sfDoctrinePlugin\lib\doctrine\Doctrine\Query.php line
 1940 ...

 at Doctrine_Query->count(array()) in
 SF_ROOT_DIR\plugins\sfDoctrinePlugin\lib\doctrine\Doctrine\Pager.php line
 108 ...
 at Doctrine_Pager->_initialize(array())in
 SF_ROOT_DIR\plugins\sfDoctrinePlugin\lib\doctrine\Doctrine\Pager.php line
 570 ...
 }}}

 It's including that custom function for the UNIX time when it should not
 be.

-- 
Ticket URL: <http://trac.doctrine-project.org/ticket/1609#comment:3>
Doctrine <http://www.phpdoctrine.org>
PHP Doctrine Object Relational Mapper
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"doctrine-svn" group.
 To post to this group, send email to [email protected]
 To unsubscribe from this group, send email to [EMAIL PROTECTED]
 For more options, visit this group at 
http://groups.google.co.uk/group/doctrine-svn?hl=en-GB
-~----------~----~----~----~------~----~------~--~---

Reply via email to