<!--
RSS generated by JIRA (5.2.7#850-sha1:b2af0c8dc8537b36121c6a579fabbdf79fc919e5) at Tue May 21 12:25:10 UTC 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://www.doctrine-project.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+DC+AND+resolution+%3D+Unresolved+AND+component+%3D+Connection+ORDER+BY+priority+DESC&tempMax=1000&field=key&field=summary
-->
<!-- If you wish to do custom client-side styling of RSS, uncomment this:
<?xml-stylesheet href="http://www.doctrine-project.org/jira/styles/jiraxml2html.xsl" type="text/xsl"?>
-->
<rss version="0.92">
    <channel>
        <title>Doctrine Project</title>
        <link>http://www.doctrine-project.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+DC+AND+resolution+%3D+Unresolved+AND+component+%3D+Connection+ORDER+BY+priority+DESC</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="33" total="33"/>
                <build-info>
            <version>5.2.7</version>
            <build-number>850</build-number>
            <build-date>21-02-2013</build-date>
        </build-info>
<item>
            <title>[DC-1034] ORA-00904 in Doctrine_Connection_Oracle</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-1034</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;When i execute this code:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; 
$q = Doctrine_Query::create()
            -&amp;gt;from(&apos;AGENT ag&apos;)
            -&amp;gt;leftJoin(&apos;ag.CHANTIER_AGENT cag)
            -&amp;gt;orderBy(&apos;ag.nom&apos;)
            -&amp;gt;limit(10)
            -&amp;gt;offset(10)
            -&amp;gt;execute();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Doctrine executes :&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; 
SELECT a.pk AS a__pk, a.ts AS a__ts, a.ck_agent AS a__ck_agent, a.matricule AS a__matricule, a.nom AS a__nom, a.prenom AS a__prenom, a.agent_maitrise AS a__agent_maitrise, 
c.pk AS c__pk, c.ts AS c__ts, c.ck_chantier_agent AS c__ck_chantier_agent, c.ek_chantier AS c__ek_chantier, c.fk_chantier AS c__fk_chantier, c.ek_agent AS c__ek_agent, c.fk_agent AS c__fk_agent 
FROM AGENT a 
LEFT JOIN CHANTIER_AGENT c ON a.ck_agent = c.ek_agent 
WHERE a.ck_agent IN 
(SELECT b.ck_agent 
FROM ( SELECT a.*, ROWNUM AS doctrine_rownum 
FROM ( SELECT DISTINCT a2.ck_agent, a2.nom FROM AGENT a2 LEFT JOIN CHANTIER_AGENT c2 ON a2.ck_agent = c2.ek_agent ORDER BY a2.nom ) 
a2 ) 
b 
WHERE doctrine_rownum BETWEEN 11 AND 20) 
ORDER BY a.nom
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 

&lt;p&gt;The problem is in function _createLimitSubquery in Doctrine_Connection_Oracle :&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; 
                    $query= &apos;SELECT &apos;.$&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier(&apos;b&apos;).&apos;.&apos;.$column.&apos; FROM ( &apos;.
                                 &apos;SELECT &apos;.$&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier(&apos;a&apos;).&apos;.*, ROWNUM AS doctrine_rownum FROM ( &apos;
                                   . $query . &apos; ) &apos; . $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier(&apos;a&apos;) . &apos; &apos;.
                              &apos; ) &apos; . $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier(&apos;b&apos;) . &apos; &apos;.
                              &apos;WHERE doctrine_rownum BETWEEN &apos; . $min .  &apos; AND &apos; . $max;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 

&lt;p&gt;Error occures, because table name is  AGENT and Doctrine give the first letter of the table name for identifier. &lt;br/&gt;
To correct this. Use more than one letter in the quoteIdentifier.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; 
                    $query = &apos;SELECT &apos;.$&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier(&apos;limb&apos;).&apos;.&apos;.$column.&apos; FROM ( &apos;.
                                 &apos;SELECT &apos;.$&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier(&apos;lima&apos;).&apos;.*, ROWNUM AS doctrine_rownum FROM ( &apos;
                                   . $query . &apos; ) &apos; . $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier(&apos;lima&apos;) . &apos; &apos;.
                              &apos; ) &apos; . $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier(&apos;limb&apos;) . &apos; &apos;.
                              &apos;WHERE doctrine_rownum BETWEEN &apos; . $min .  &apos; AND &apos; . $max;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; </description>
                <environment>Windows 7 64 bits, PHP 5.2.11, Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi, Symfony 1.4.13&lt;br/&gt;
</environment>
            <key id="12987">DC-1034</key>
            <summary>ORA-00904 in Doctrine_Connection_Oracle</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="jayson">Jayson LE PAPE</reporter>
                        <labels>
                    </labels>
                <created>Thu, 1 Sep 2011 08:43:20 +0000</created>
                <updated>Thu, 1 Sep 2011 08:43:20 +0000</updated>
                                    <version>1.2.4</version>
                                <fixVersion>1.2.4</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-1035] ORA-01791 due to bad driver name in Doctrine_Adapter_Oracle</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-1035</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;When i execute this code:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; 
$q = Doctrine_Query::create()
            -&amp;gt;from(&apos;AGENT ag&apos;)
            -&amp;gt;leftJoin(&apos;ag.CHANTIER_AGENT cag)
            -&amp;gt;orderBy(&apos;ag.nom&apos;)
            -&amp;gt;limit(10)
            -&amp;gt;execute();
$q2 = Doctrine_Query::create()
            -&amp;gt;from(&apos;AGENT ag&apos;)
            -&amp;gt;leftJoin(&apos;ag.CHANTIER_AGENT cag)
            -&amp;gt;orderBy(&apos;ag.nom&apos;)
            -&amp;gt;limit(10)
            -&amp;gt;execute();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Doctrine executes :&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; 
SELECT a.pk AS a__pk, a.ts AS a__ts, a.ck_agent AS a__ck_agent, a.matricule AS a__matricule, a.nom AS a__nom, 
a.prenom AS a__prenom, a.agent_maitrise AS a__agent_maitrise, c.pk AS c__pk, c.ts AS c__ts, c.ck_chantier_agent AS c__ck_chantier_agent, 
c.ek_chantier AS c__ek_chantier, c.fk_chantier AS c__fk_chantier, c.ek_agent AS c__ek_agent, c.fk_agent AS c__fk_agent 
FROM AGENT a 
LEFT JOIN CHANTIER_AGENT c ON a.ck_agent = c.ek_agent 
WHERE a.ck_agent IN (
SELECT a2.ck_agent FROM ( 
SELECT DISTINCT a2.ck_agent, a2.nom FROM AGENT a2 LEFT JOIN CHANTIER_AGENT c2 ON a2.ck_agent = c2.ek_agent ORDER BY a2.nom ) 
a2 WHERE ROWNUM &amp;lt;= 10) ORDER BY a.nom

SELECT a.pk AS a__pk, a.ts AS a__ts, a.ck_agent AS a__ck_agent, a.matricule AS a__matricule, a.nom AS a__nom, 
a.prenom AS a__prenom, a.agent_maitrise AS a__agent_maitrise, c.pk AS c__pk, c.ts AS c__ts, c.ck_chantier_agent AS c__ck_chantier_agent, 
c.ek_chantier AS c__ek_chantier, c.fk_chantier AS c__fk_chantier, c.ek_agent AS c__ek_agent, c.fk_agent AS c__fk_agent 
FROM AGENT a 
LEFT JOIN CHANTIER_AGENT c ON a.ck_agent = c.ek_agent 
WHERE a.ck_agent IN (
SELECT a2.ck_agent FROM ( 
SELECT DISTINCT a2.ck_agent FROM AGENT a2 LEFT JOIN CHANTIER_AGENT c2 ON a2.ck_agent = c2.ek_agent ORDER BY a2.nom ) 
a2 WHERE ROWNUM &amp;lt;= 10) ORDER BY a.nom
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 

&lt;p&gt;This causes &quot;Oracle DB Error ORA-01791 not a SELECTed expression&quot; because the sql query don&apos;t have a2.nom in SELECT DISTINCT and it&apos;s indispensable for ORDER BY a2.nom&lt;br/&gt;
The problem is caused by the variable $attributes in Doctrine_Adapter_Oracle :&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; 
&lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; $attributes = array(Doctrine_Core::ATTR_DRIVER_NAME    =&amp;gt; &lt;span class=&quot;code-quote&quot;&gt;&quot;oci8&quot;&lt;/span&gt;,
                                  Doctrine_Core::ATTR_ERRMODE        =&amp;gt; Doctrine_Core::ERRMODE_SILENT);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The problem is in Query.php line 1417 : &lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;	&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ($driverName == &apos;pgsql&apos; || $driverName == &apos;oracle&apos; || $driverName == &apos;oci&apos; || $driverName == &apos;mssql&apos; || $driverName == &apos;odbc&apos;) {
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The driver name declared in Doctrine_Adapter_Oracle not in this conditional. &lt;br/&gt;
To resolve this we have to modify the declaration of $attributes in Doctrine_Adapter_Oracle to :&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; $attributes = array(Doctrine_Core::ATTR_DRIVER_NAME    =&amp;gt; &lt;span class=&quot;code-quote&quot;&gt;&quot;oracle&quot;&lt;/span&gt;,
                                  Doctrine_Core::ATTR_ERRMODE        =&amp;gt; Doctrine_Core::ERRMODE_SILENT);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;An other problem is probably located at line 1409 &lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (($driverName == &apos;oracle&apos; || $driverName == &apos;oci&apos;) &amp;amp;&amp;amp; $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;_isOrderedByJoinedColumn()) {
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;and 1497&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (($driverName == &apos;oracle&apos; || $driverName == &apos;oci&apos;) &amp;amp;&amp;amp; $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;_isOrderedByJoinedColumn()) {
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;if don&apos;t correct the declaration of $attributes in Doctrine_Adapter_Oracle.&lt;/p&gt;</description>
                <environment>Windows 7 64 bits, PHP 5.2.11, Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi, Symfony 1.4.13</environment>
            <key id="12988">DC-1035</key>
            <summary>ORA-01791 due to bad driver name in Doctrine_Adapter_Oracle</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="jayson">Jayson LE PAPE</reporter>
                        <labels>
                    </labels>
                <created>Thu, 1 Sep 2011 09:30:57 +0000</created>
                <updated>Thu, 1 Sep 2011 09:31:24 +0000</updated>
                                    <version>1.2.4</version>
                                <fixVersion>1.2.4</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-1031] CLONE -Multiple connections and i18n (raised as unresolved - original ticket marked as resolved)</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-1031</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;I used to work with a single database named &quot;doctrine&quot;. The query was working properly.&lt;/p&gt;

&lt;p&gt;I then decided to use 2 databases so I got my schema like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;connection: doctrine&lt;/p&gt;

&lt;p&gt;Category:&lt;br/&gt;
  actAs:&lt;br/&gt;
    I18n:&lt;br/&gt;
      actAs:&lt;br/&gt;
        Sluggable:&lt;br/&gt;
          fields: &lt;span class=&quot;error&quot;&gt;&amp;#91;name&amp;#93;&lt;/span&gt;&lt;br/&gt;
        Timestampable: ~&lt;br/&gt;
      fields: &lt;span class=&quot;error&quot;&gt;&amp;#91;name, description&amp;#93;&lt;/span&gt;&lt;br/&gt;
  columns:&lt;br/&gt;
    id: ~&lt;br/&gt;
    name:&lt;br/&gt;
      type: string(255)&lt;br/&gt;
      notnull: true&lt;br/&gt;
    description: string&lt;/p&gt;

&lt;p&gt;User:&lt;br/&gt;
  connection: second&lt;br/&gt;
  columns:&lt;br/&gt;
    id: ~&lt;br/&gt;
    name:&lt;br/&gt;
      type: string(255)&lt;br/&gt;
      notnull: true&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I did setup my connections in config/databases.yml this way:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;all:&lt;br/&gt;
  doctrine:&lt;br/&gt;
   // ....&lt;br/&gt;
  second:&lt;br/&gt;
   // ....&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;build-model, build-forms, build-filters and cc got ran. But now, I got an exception saying the &quot;Translation&quot; relation doesn&apos;t exist. The Base Models include correctly the bindComponent line:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Doctrine_Manager::getInstance()-&amp;gt;bindComponent(&apos;Category&apos;, &apos;doctrine&apos;);&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;For now, I managed to kind of fixing it with simply swapping the databases order in my config/databases.yml and it&apos;s now working again perfectly.&lt;/p&gt;

&lt;p&gt;I forgot to mention that in the CategoryTable when i call $this-&amp;gt;getConnection()-&amp;gt;getName(), it outputs &quot;second&quot;&lt;/p&gt;</description>
                <environment>MySQL 5.1.37&lt;br/&gt;
PHP 5.2.11&lt;br/&gt;
symfony 1.2.11 DEV&lt;br/&gt;
&lt;br/&gt;
symfony 1.4.13&lt;br/&gt;
PHP 5.3.6 &lt;br/&gt;
Postgres 8.4.8&lt;br/&gt;
</environment>
            <key id="12962">DC-1031</key>
            <summary>CLONE -Multiple connections and i18n (raised as unresolved - original ticket marked as resolved)</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="sarcas">James Bell</reporter>
                        <labels>
                    </labels>
                <created>Tue, 23 Aug 2011 14:26:27 +0000</created>
                <updated>Wed, 28 Mar 2012 08:20:53 +0000</updated>
                                    <version>1.2.2</version>
                <version>1.2.3</version>
                                <fixVersion>1.2.3</fixVersion>
                                <component>Connection</component>
                <component>I18n</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="16370" author="sarcas" created="Tue, 23 Aug 2011 14:28:15 +0000"  >&lt;p&gt;Original issue: &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-363&quot; title=&quot;Multiple connections and i18n&quot;&gt;&lt;del&gt;DC-363&lt;/del&gt;&lt;/a&gt; (&lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-363&quot; class=&quot;external-link&quot;&gt;http://www.doctrine-project.org/jira/browse/DC-363&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;There are some additional comments in there that explain the issue as currently being seen in released versions of Doctrine 1.2. Can I help verify that this is the same ticket? &lt;/p&gt;

&lt;p&gt;What is needed to help with debug (in addition to the extra information already provided)?&lt;/p&gt;
</comment>
                    <comment id="17664" author="lvqingan" created="Wed, 28 Mar 2012 08:20:53 +0000"  >&lt;p&gt;meet the same issue and it really blocked my project, seems no one will maintain 1.x. I&apos;m considering whether to replace symfony 1.4 with 2.0.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-1007] Cannot update a field to NULL with MSSQL connection</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-1007</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;When trying to update a field to NULL in a MSSQL database, Doctrine generates the following request:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;    UPDATE table SET fieldThatMustBeNull = , anotherField = &apos;blabla&apos;;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;therefore generating a syntax error.&lt;/p&gt;

&lt;p&gt;A fix would be to override the update method in the Doctrine_Connection_Mssql and add the following behavior:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-style: solid;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;border-bottom-style: solid;&quot;&gt;&lt;b&gt;Doctrine_Connection_Mssql&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function update(Doctrine_Table $table, array $fields, array $identifier)
    {
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (empty($fields)) {
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
        }

        $set = array();
        foreach ($fields as $fieldName =&amp;gt; $value) {
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ($value &lt;span class=&quot;code-keyword&quot;&gt;instanceof&lt;/span&gt; Doctrine_Expression) {
                $set[] = $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier($table-&amp;gt;getColumnName($fieldName)) . &apos; = &apos; . $value-&amp;gt;getSql();
                unset($fields[$fieldName]);
            } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (is_null($value)) {
                $set[] = $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier($table-&amp;gt;getColumnName($fieldName)) . &apos; = NULL&apos;;
                unset($fields[$fieldName]);
            } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
                $set[] = $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier($table-&amp;gt;getColumnName($fieldName)) . &apos; = ?&apos;;
            }
        }

        $params = array_merge(array_values($fields), array_values($identifier));

        $sql  = &apos;UPDATE &apos; . $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteIdentifier($table-&amp;gt;getTableName())
              . &apos; SET &apos; . implode(&apos;, &apos;, $set)
              . &apos; WHERE &apos; . implode(&apos; = ? AND &apos;, $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quoteMultipleIdentifier($table-&amp;gt;getIdentifierColumnNames()))
              . &apos; = ?&apos;;

        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;exec($sql, $params);
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>Windows 7 32 bits with Apache 2.2.x, PHP 5.2.17, Sql Server 2008, Symfony 1.4.11 and Doctrine 1.2.4</environment>
            <key id="12667">DC-1007</key>
            <summary>Cannot update a field to NULL with MSSQL connection</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="2" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/critical.png">Critical</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="guitio2002">guitio2002</reporter>
                        <labels>
                    </labels>
                <created>Wed, 25 May 2011 19:37:07 +0000</created>
                <updated>Wed, 25 May 2011 19:43:52 +0000</updated>
                                                    <fixVersion>1.2.4</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-978] Doctrine_Connection_Mssql dies on modifyLimitSubquery every time</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-978</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Looking at the latest version of Doctrine_Connection_Mssql in git repo:&lt;br/&gt;
&lt;a href=&quot;https://github.com/doctrine/doctrine1/blob/b4dc8e66a89a7e17cd195c489b18005e19ca9ea5/lib/Doctrine/Connection/Mssql.php&quot; class=&quot;external-link&quot;&gt;https://github.com/doctrine/doctrine1/blob/b4dc8e66a89a7e17cd195c489b18005e19ca9ea5/lib/Doctrine/Connection/Mssql.php&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In Doctrine_Query:getLimitSubquery() there is a call to Doctrine_Connection_Mssql::modifyLimitSubquery().&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function modifyLimitSubquery(Doctrine_Table $rootTable, $query, $limit = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, $offset = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, $isManip = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;)
{
	&lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;modifyLimitQuery($query, $limit, $offset, $isManip, &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;);
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This in turn calls Doctrine_Connection_Mssql::modifyLimitQuery() wihtout passing the $queryOrigin parameter:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function modifyLimitQuery($query, $limit = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, $offset = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, $isManip = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, $isSubQuery = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, Doctrine_Query $queryOrigin = &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;)
    {
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ($limit === &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt; || !($limit &amp;gt; 0)) {
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; $query;
        }

        $orderby = stristr($query, &apos;ORDER BY&apos;);

        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ($offset !== &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt; &amp;amp;&amp;amp; $orderby === &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;) {
            &lt;span class=&quot;code-keyword&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Doctrine_Connection_Exception(&lt;span class=&quot;code-quote&quot;&gt;&quot;OFFSET cannot be used in MSSQL without ORDER BY due to emulation reasons.&quot;&lt;/span&gt;);
        }
        
        $count = intval($limit);
        $offset = intval($offset);

        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ($offset &amp;lt; 0) {
            &lt;span class=&quot;code-keyword&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Doctrine_Connection_Exception(&lt;span class=&quot;code-quote&quot;&gt;&quot;LIMIT argument offset=$offset is not valid&quot;&lt;/span&gt;);
        }

        $orderbySql = $queryOrigin-&amp;gt;getSqlQueryPart(&apos;orderby&apos;);
        $orderbyDql = $queryOrigin-&amp;gt;getDqlPart(&apos;orderby&apos;);

        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ($orderby !== &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;) {
            $orders = $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;parseOrderBy(implode(&apos;, &apos;, $queryOrigin-&amp;gt;getDqlPart(&apos;orderby&apos;)));

            &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; ($i = 0; $i &amp;lt; count($orders); $i++) {
...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From just looking at the above code, the query chokes on the first call to a $queryOrigin method. It seems like there is a lot of missing code here which should work with the $query directly when $queryOrigin is not available...&lt;/p&gt;

&lt;p&gt;What is the point of $orderbySql and $orderbyDql variables when they are not used anywhere?&lt;/p&gt;

&lt;p&gt;This code looks like it&apos;s half way done and untested.&lt;/p&gt;</description>
                <environment>windows</environment>
            <key id="12434">DC-978</key>
            <summary>Doctrine_Connection_Mssql dies on modifyLimitSubquery every time</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="2" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/critical.png">Critical</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="andrej.pavlovic">Andrej Pavlovic</reporter>
                        <labels>
                    </labels>
                <created>Sun, 27 Feb 2011 17:14:51 +0000</created>
                <updated>Sun, 27 Feb 2011 17:17:16 +0000</updated>
                                    <version>1.2.4</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-586] Doctrine outputs invalid SQL when using Limit and Order By conditions in MSSQL</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-586</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;I have a Doctrine model which connects to a MSSQL database. I was trying to run the following query:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;$q = Doctrine_Query::create()
    -&amp;gt;select(&apos;*&apos;)
    -&amp;gt;from(&apos;Comment c&apos;)
    -&amp;gt;innerJoin(&apos;c.RecordType&apos;)
    -&amp;gt;innerJoin(&apos;c.Department&apos;)
    -&amp;gt;limit(10)
    -&amp;gt;orderBy(&apos;c.Counter&apos;);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The code failed with a SQL Syntax exception so I took a look at the generated query and found the following (SELECT fields shortened for readabilty):&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;SELECT * FROM (
	SELECT TOP 10 * FROM (
		SELECT TOP 10 [c].[counter] AS [c__counter], [c].[loanid] AS [c__loanid]... ... ...
		FROM comments c
			INNER JOIN [SystemTypes] [s] ON [c].[recordtype] = [s].[code] AND [s].[fieldname] = &apos;RecordType&apos;
			INNER JOIN [SystemTypes] [s2] ON [c].[department] = [s2].[code] AND [s2].[fieldname] = &apos;Department&apos;
		ORDER BY [c].[counter]
	) AS [inner_tbl]
	ORDER BY [inner_tbl].[counter] AS [c__counter] DESC
) AS [outer_tbl]
ORDER BY [outer_tbl].[counter] AS [c__counter] ASC
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As you can see, the ORDER BY clauses on the inner_tbl and outer_tbl segments have AS clauses which do not belong there. If you fix the ORDER BY statements the query runs just fine.&lt;/p&gt;

&lt;p&gt;So I decided to prod around the Mssql.php connection class and found the following:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;140 &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function modifyLimitQuery($query, $limit = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, $offset = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, $isManip = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;, $isSubQuery = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;)
141 {
...
169                    $field_array = explode(&apos;,&apos;, $fields_string);
170                    $field_array = array_shift($field_array);
171                    $aux2 = preg_split(&apos;/ as /&apos;, $field_array);
172                    $aux2 = explode(&apos;.&apos;, end($aux2));
173
174                    $aliases[$i] = trim(end($aux2));
...
232 }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Line 171 seems to be in charge of setting up the orderBy aliases but it is looking for a lower case &apos; as &apos; string which doesn&apos;t exist in this SQL expression. Changing that to a case insensitive regular expression search seems to fix the problem:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;171                    $aux2 = preg_split(&apos;/ as /i&apos;, $field_array);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here is the resulting SQL with the change:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;SELECT * FROM (
	SELECT TOP 10 * FROM (
		SELECT TOP 10 [c].[counter] AS [c__counter], [c].[loanid] AS [c__loanid]... ... ...
		FROM comments c
			INNER JOIN [SystemTypes] [s] ON [c].[recordtype] = [s].[code] AND [s].[fieldname] = &apos;RecordType&apos;
			INNER JOIN [SystemTypes] [s2] ON [c].[department] = [s2].[code] AND [s2].[fieldname] = &apos;Department&apos;
		ORDER BY [c].[counter]
	) AS [inner_tbl]
	ORDER BY [inner_tbl].[c__counter] DESC
) AS [outer_tbl]
ORDER BY [outer_tbl].[c__counter] ASC]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This seems to fix the problem but I don&apos;t know if it&apos;ll create a regression. It&apos;s a start though. Anyone have any thoughts on this?&lt;/p&gt;</description>
                <environment>Windows XP&lt;br/&gt;
Apache 2.2&lt;br/&gt;
PHP 5.3&lt;br/&gt;
Doctrine 1.2.1&lt;br/&gt;
Symfony 1.4</environment>
            <key id="11089">DC-586</key>
            <summary>Doctrine outputs invalid SQL when using Limit and Order By conditions in MSSQL</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="2" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/critical.png">Critical</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="pradador">Jose Prado</reporter>
                        <labels>
                    </labels>
                <created>Thu, 18 Mar 2010 19:08:42 +0000</created>
                <updated>Thu, 18 Mar 2010 19:08:42 +0000</updated>
                                    <version>1.2.1</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-917] Doctrine take wrong connction</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-917</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;I have problems with different connection&lt;br/&gt;
i am using doctrine with symfony, and i work with 2 connections&lt;br/&gt;
in base class i have bind to my connection&lt;/p&gt;

&lt;p&gt;Doctrine_Manager::getInstance()-&amp;gt;bindComponent(&apos;Datasource&apos;, &apos;doctrine&apos;);&lt;/p&gt;

&lt;p&gt;symfony generate me &lt;/p&gt;

&lt;p&gt;$this-&amp;gt;datasources = Doctrine_Core::getTable(&apos;datasource&apos;)&lt;br/&gt;
                -&amp;gt;createQuery(&apos;a&apos;)&lt;br/&gt;
                -&amp;gt;execute();&lt;/p&gt;

&lt;p&gt;and when i execute it show me error error that can find this table but it take wrong connection&lt;/p&gt;

&lt;p&gt;by test i tried to add bind component as datasource (first is lower character and it works pretty cool)&lt;/p&gt;

&lt;p&gt;then i change getTable(&apos;datasource&apos;) =&amp;gt; getTable(&apos;Datasource&apos;) but it doesn&apos;t work&lt;br/&gt;
then i have added &lt;br/&gt;
test function to my datasource table &lt;/p&gt;

&lt;p&gt;public static function test()&lt;/p&gt;
{
        return Doctrine_Query::create()-&amp;gt;from(&quot;Datasource&quot;)-&amp;gt;execute();
    }

&lt;p&gt;and it works.&lt;/p&gt;</description>
                <environment></environment>
            <key id="12066">DC-917</key>
            <summary>Doctrine take wrong connction</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="vovikdrg">Volodymyr</reporter>
                        <labels>
                    </labels>
                <created>Fri, 5 Nov 2010 04:45:12 +0000</created>
                <updated>Fri, 5 Nov 2010 04:45:12 +0000</updated>
                                                                    <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-881] Doctrine_Manager::parsePdoDsn() doesn&apos;t work properly [+patch]</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-881</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Doctrine_Manager::parsePdoDsn(&apos;dblib:host=127.0.0.1:1433;dbname=foo&apos;) does not return proper results.&lt;/p&gt;

&lt;p&gt;patch and test case @ github&lt;/p&gt;</description>
                <environment></environment>
            <key id="11989">DC-881</key>
            <summary>Doctrine_Manager::parsePdoDsn() doesn&apos;t work properly [+patch]</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="enrico">Enrico Stahn</reporter>
                        <labels>
                    </labels>
                <created>Fri, 8 Oct 2010 12:46:04 +0000</created>
                <updated>Fri, 8 Oct 2010 12:46:04 +0000</updated>
                                    <version>1.2.3</version>
                                <fixVersion>1.2.4</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-863] Connection.UnitOfWork::buildFlushTree when loading data from yml file, Incorrect ordering of tables by their relations</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-863</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;I don&apos;t know where exactly to start, I&apos;m new here, and i&apos;m not even sure this is a bug. BUT&lt;/p&gt;

&lt;p&gt;We have a database structure with most important tables&apos; PK&apos;s as string fields, which function as FK on other tables the basic structure is:&lt;/p&gt;

&lt;p&gt;Artist&lt;br/&gt;
   -Album&lt;br/&gt;
     -Song&lt;br/&gt;
       -Comments&lt;/p&gt;

&lt;p&gt;each artist has multiple songs&lt;br/&gt;
each artist has multiple albums&lt;br/&gt;
each album has multiple songs that belong to the same artist as the album belongs to&lt;br/&gt;
each song has multiple comments&lt;/p&gt;

&lt;p&gt;thus, the UnitOfWork - builtFlushTree should generate&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt;=&amp;gt;Artist&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;=&amp;gt;Album&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;=&amp;gt;Song&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt;=&amp;gt;Comments&lt;/p&gt;

&lt;p&gt;but instead i get:&lt;br/&gt;
    &lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt; =&amp;gt; Album&lt;br/&gt;
    &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; =&amp;gt; Artist&lt;br/&gt;
    &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt; =&amp;gt; Song&lt;br/&gt;
    &lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt; =&amp;gt; Lyrics&lt;/p&gt;

&lt;p&gt;which in turn generates:&lt;/p&gt;

&lt;p&gt;QLSTATE&lt;span class=&quot;error&quot;&gt;&amp;#91;23000&amp;#93;&lt;/span&gt;: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`lyrics`.`album`, CONSTRAINT `album_artist_fk_stripped_name_artist_stripped_name` FOREIGN KEY (`artist_fk_stripped_name`) REFERENCES `artist` (`stripped_name`) ON DELETE CASCADE ON UPDATE CASC)  &lt;br/&gt;
obviously.&lt;/p&gt;

&lt;p&gt;I&apos;ve been going through symfony/doctrine code for a whole day trying to figure out why I can&apos;t load-data. in the end i get to this buildFlushTree function.&lt;br/&gt;
probably have to go deeper. but so far this is it&lt;/p&gt;

&lt;p&gt;PS. It&apos;s my decision to use string fields as PK&apos;s and FK even though it&apos;s a bad practice, but just because it is a bad practice I shouldn&apos;t be unable to work with it.&lt;/p&gt;</description>
                <environment>symfony 1.4.6, windows 7, apache2.2, php5.3.3, mySQL 5.1.49-community</environment>
            <key id="11902">DC-863</key>
            <summary>Connection.UnitOfWork::buildFlushTree when loading data from yml file, Incorrect ordering of tables by their relations</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="fuximus">Ochoo</reporter>
                        <labels>
                    </labels>
                <created>Fri, 10 Sep 2010 04:36:44 +0000</created>
                <updated>Wed, 1 Dec 2010 20:31:14 +0000</updated>
                                    <version>1.2.0</version>
                <version>1.2.1</version>
                <version>1.2.2</version>
                <version>1.2.3</version>
                <version>1.2.4</version>
                                                <component>Connection</component>
                <component>Data Fixtures</component>
                        <due></due>
                    <votes>1</votes>
                        <watches>2</watches>
                        <comments>
                    <comment id="14328" author="fuximus" created="Fri, 10 Sep 2010 20:15:39 +0000"  >&lt;p&gt;found a tiny BUG, submitting the fix.&lt;/p&gt;


&lt;p&gt;EDIT: scratch  the rest from here.&lt;/p&gt;

&lt;p&gt;&amp;lt;!-----------&lt;br/&gt;
still, fixing the bug does not resolve the issue&lt;br/&gt;
BECAUSE:&lt;br/&gt;
   the whole logic of ordering the tables is flawed! it can be proved, don&apos;t have time to do so. but trying to come up with a fix myself&lt;/p&gt;

&lt;p&gt;   instead of looping through the tables and then through each tables&apos; related tables, either have a recursive function OR implement user defined array sort function, latter of which seems like the proper and correct way to go&lt;br/&gt;
--&amp;gt;&lt;/p&gt;

</comment>
                    <comment id="14329" author="fuximus" created="Fri, 10 Sep 2010 20:18:26 +0000"  >&lt;p&gt;unfortunately i&apos;m unable to commit any changes i have made. &lt;img class=&quot;emoticon&quot; src=&quot;http://www.doctrine-project.org/jira/images/icons/emoticons/biggrin.gif&quot; height=&quot;20&quot; width=&quot;20&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; just me being a newbie, any help is appreciated&lt;/p&gt;</comment>
                    <comment id="14331" author="fuximus" created="Fri, 10 Sep 2010 20:32:35 +0000"  >&lt;p&gt;on UnitOfWork.php of Doctrine ORM 1.2.3 &lt;br/&gt;
Revision 7684&lt;br/&gt;
right after the line 752:&lt;br/&gt;
          array_splice($flushList, $index, 0, $relatedClassName);&lt;br/&gt;
there should be:&lt;br/&gt;
          $index++;&lt;/p&gt;</comment>
                    <comment id="14863" author="atali" created="Mon, 29 Nov 2010 00:07:38 +0000"  >&lt;p&gt;@Ochoo: Even with your bugfix, it doesn&apos;t seem to work.&lt;/p&gt;</comment>
                    <comment id="14881" author="fuximus" created="Wed, 1 Dec 2010 20:31:14 +0000"  >&lt;p&gt;thanks atali, i haven&apos;t checked it on 1.2.3, just did and you&apos;re right. the &quot;bug fix&quot; worked on 1.2.0 but not on 1.2.3. I&apos;m gonna look into it, at least i&apos;ll try. but this is a bug right?&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10782" name="schema.yml" size="6100" author="fuximus" created="Fri, 10 Sep 2010 04:36:44 +0000" />
                    <attachment id="10783" name="test.yml" size="1363" author="fuximus" created="Fri, 10 Sep 2010 04:36:44 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-998] MySQL Driver possibly subject to sql injections with PDO::quote()</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-998</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Prior to 5.3.6, the MySQL PDO driver ignored the character set parameter to options. Due to MySQL&apos;s C api (and MySQLND), this is required for the proper function of mysql_real_escape_string() (the C API call). Since PDO uses the mres() C call for PDO::quote(), this means that the quoted string does not take into account the connection character set.&lt;/p&gt;

&lt;p&gt;Starting with 5.3.6, that was fixed. So now if you pass the proper character set to PDO via driver options, sql injection is impossible while using the PDO::quote() api call.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;&quot;&gt;&lt;b&gt;PDO proof of concept&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;$dsn = &apos;mysql:dbname=INFORMATION_SCHEMA;host=127.0.0.1;charset=GBK;&apos;;
$pdo = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; PDO($dsn, $user, $pass);
$pdo-&amp;gt;exec(&apos;SET NAMES GBK&apos;);
$string = chr(0xbf) . chr(0x27) . &apos; OR 1 = 1; /*&apos;;
$sql = &quot;SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.TABLES
            WHERE TABLE_NAME LIKE &lt;span class=&quot;code-quote&quot;&gt;&quot;.$pdo-&amp;gt;quote($string).&quot;&lt;/span&gt; LIMIT 1;&quot;;
$stmt = $pdo-&amp;gt;query($sql);
var_dump($stmt-&amp;gt;rowCount());
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Expected Result: `int(0)`.&lt;br/&gt;
Actual Result: `int(1)`.&lt;/p&gt;


&lt;p&gt;There are 2 issues to fix. First, the documentation does not indicate that you can pass the `charset` option to the MySQL Driver. This should be fixed so that users are given the proper option to set character sets.&lt;/p&gt;

&lt;p&gt;Secondly, `Connection::setCharset()` should be modified for MySQL to throw an exception, since the character set is only safely setable using the DSN with PDO. This is a limitation of the driver and could be asked as a feature request for the PHP core. Either that, or a big warning should be put on the documentation of the API to indicate the unsafe character set change&lt;/p&gt;

&lt;p&gt;Note that this is the same issue reported for Doctrine2 with link: &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DBAL-111&quot; class=&quot;external-link&quot;&gt;http://www.doctrine-project.org/jira/browse/DBAL-111&lt;/a&gt; &lt;/p&gt;</description>
                <environment>All</environment>
            <key id="12570">DC-998</key>
            <summary>MySQL Driver possibly subject to sql injections with PDO::quote()</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="ircmaxell">Anthony Ferrara</reporter>
                        <labels>
                    </labels>
                <created>Tue, 19 Apr 2011 13:30:02 +0000</created>
                <updated>Mon, 23 May 2011 13:43:37 +0000</updated>
                                    <version>1.2.0-ALPHA1</version>
                <version>1.2.0-ALPHA2</version>
                <version>1.2.0-ALPHA3</version>
                <version>1.2.0-BETA1</version>
                <version>1.2.0-BETA2</version>
                <version>1.2.0-BETA3</version>
                <version>1.2.0-RC1</version>
                <version>1.2.0</version>
                <version>1.2.1</version>
                <version>1.2.2</version>
                <version>1.2.3</version>
                <version>1.2.4</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="15872" author="fabpot" created="Mon, 23 May 2011 13:43:37 +0000"  >&lt;p&gt;Any news on this one? It has been &quot;fixed&quot; in Doctrine2 and must be also fixed in Doctrine1.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-960] Bug in OCI8 adapter&apos;s freeCursor function causes exception with HYDRATE_ON_DEMAND</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-960</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;oci_free_statement  should be changed to oci_cancel inside Doctrine_Adapter_Statement_Oracle::closeCursor(). Otherwise exception is thrown if HYDRATE_ON_DEMAND is used followed by foreach loop.&lt;/p&gt;

&lt;p&gt;Doctrine2 should also be affected by this bug.&lt;/p&gt;

&lt;p&gt;Change:&lt;br/&gt;
public function closeCursor()&lt;/p&gt;
    {
        $this-&amp;gt;bindParams = array();
        return oci_free_statement($this-&amp;gt;statement);
    }
&lt;p&gt;To:&lt;br/&gt;
public function closeCursor()&lt;/p&gt;
    {
        $this-&amp;gt;bindParams = array();
        return oci_cancel($this-&amp;gt;statement);
    }</description>
                <environment>doctrine, symfony, linux, hpux</environment>
            <key id="12327">DC-960</key>
            <summary>Bug in OCI8 adapter&apos;s freeCursor function causes exception with HYDRATE_ON_DEMAND</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="vadik56">vadik56</reporter>
                        <labels>
                    </labels>
                <created>Wed, 26 Jan 2011 10:45:34 +0000</created>
                <updated>Wed, 26 Jan 2011 10:45:34 +0000</updated>
                                    <version>1.2.0-ALPHA1</version>
                <version>1.2.0-ALPHA2</version>
                <version>1.2.0-ALPHA3</version>
                <version>1.2.0-BETA1</version>
                <version>1.2.0-BETA2</version>
                <version>1.2.0-BETA3</version>
                <version>1.2.0-RC1</version>
                <version>1.2.0</version>
                <version>1.2.1</version>
                <version>1.2.2</version>
                <version>1.2.3</version>
                <version>1.2.4</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                    <attachment id="10918" name="closeCursor.diff" size="922" author="vadik56" created="Wed, 26 Jan 2011 10:45:34 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-1048] MSSQL Connection</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-1048</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Function spliti(); is deprecated.&lt;br/&gt;
It need to be change to (in my own opinion):&lt;/p&gt;

&lt;p&gt;$field_array = str_ireplace(&apos; as &apos;, &apos; as &apos;, $field_array);&lt;br/&gt;
$aux2 = explode(&apos; as &apos;, $field_array);&lt;/p&gt;

&lt;p&gt;thnx.&lt;/p&gt;</description>
                <environment>Microsoft Windows Server 2008 R2; IIS 7; PHP 2.3.8; Doctrine 1.2.4; Symfony 1.4.16</environment>
            <key id="13363">DC-1048</key>
            <summary>MSSQL Connection</summary>
                <type id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="psycho-coder">Constantine Tkachenko</reporter>
                        <labels>
                    </labels>
                <created>Mon, 16 Jan 2012 08:35:40 +0000</created>
                <updated>Mon, 16 Jan 2012 08:35:40 +0000</updated>
                                    <version>1.2.4</version>
                                <fixVersion>1.2.4</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-989] Doctrine_Connection::execute() and Doctrine_Connection::exec() fail if Doctrine_Event::skipOperation() is triggered</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-989</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;In order to generate SQL from migrations, an event listener was attached to the migration system to monitor for preQuery and preExec events.&lt;/p&gt;

&lt;p&gt;In an attempt to prevent the migration from additionally writing the query to the database, the skipOperation method was triggered, and supposedly allowed for n the execute() and exec() methods of Doctrine_Connection&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;&quot;&gt;&lt;b&gt;eg. Doctrine_Connection::execute()&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-none&quot;&gt; 
$this-&amp;gt;getAttribute(Doctrine_Core::ATTR_LISTENER)-&amp;gt;preQuery($event);

if ( ! $event-&amp;gt;skipOperation) {
    $stmt = $this-&amp;gt;dbh-&amp;gt;query($query);
    $this-&amp;gt;_count++;
}
$this-&amp;gt;getAttribute(Doctrine_Core::ATTR_LISTENER)-&amp;gt;postQuery($event);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;unfortunately setting this option in the event listener breaks execution of the migration system as the $count/$stmtn variables (used in the methods) are no longer defined, triggering E_NOTICE, and the fetch* methods (eg fetchColumn) also break as they are chaining methods without testing for the return. theerfore, even if the $stmnt variable was created as initially null, the system would still throw an E_FATAL as the NULL variable doest provide the ::fetchColumn() methods (etc).&lt;/p&gt;

&lt;p&gt;Quite a serious flaw as 2 areas of code do not provide a consistent approach to how to work with events.&lt;/p&gt;</description>
                <environment></environment>
            <key id="12486">DC-989</key>
            <summary>Doctrine_Connection::execute() and Doctrine_Connection::exec() fail if Doctrine_Event::skipOperation() is triggered</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="temperedvision">David Dixon</reporter>
                        <labels>
                    </labels>
                <created>Tue, 22 Mar 2011 07:43:36 +0000</created>
                <updated>Tue, 22 Mar 2011 07:43:36 +0000</updated>
                                    <version>1.2.3</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-375] Doctrine_Table getTable singleton issue</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-375</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;first, i defined a table class :&lt;br/&gt;
class CohibaClientTable extends Doctrine_Table&lt;br/&gt;
{&lt;br/&gt;
    public $_pager;&lt;/p&gt;

&lt;p&gt;     public function getAbstractList($arrParam = array(), $page=1, $maxPerPage=20)&lt;br/&gt;
    {&lt;br/&gt;
        $objQuery = $this-&amp;gt;createQuery(&apos;t1&apos;)&lt;br/&gt;
            -&amp;gt;select(&apos;t1.*&apos;);&lt;/p&gt;

&lt;p&gt;        if(is_array($arrParam) &amp;amp;&amp;amp; count($arrParam)&amp;gt;0)&lt;/p&gt;
        {
            QueryAssistant::processOption($objQuery, $arrParam);  // dont set &quot;offset&quot; and &quot;limit&quot; option in it
        }

&lt;p&gt;        $this-&amp;gt;_pager = new Doctrine_Pager($objQuery, $page, $maxPerPage);&lt;/p&gt;

&lt;p&gt;        $items = $this-&amp;gt;_pager-&amp;gt;execute();&lt;/p&gt;

&lt;p&gt;        $objQuery-&amp;gt;free();&lt;br/&gt;
        return $items;&lt;br/&gt;
    }&lt;/p&gt;

&lt;p&gt;    public function getList($page=1, $maxPerPage=20)&lt;/p&gt;
    {
        $arrParam = array(
            &apos;orderBy&apos;=&amp;gt;&apos;t1.cle asc&apos;
        );

        return $this-&amp;gt;getAbstractList($arrParam, $page, $maxPerPage);
    }

&lt;p&gt;    public function getPager()&lt;/p&gt;
    {
        return $this-&amp;gt;_pager;
    }
&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;and then, in the action, invoke it like this codes:&lt;br/&gt;
1&amp;gt;&lt;br/&gt;
   $items = Doctrine::getTable(&quot;CohibaClient&quot;)-&amp;gt;getList(1, $maxPerPage);&lt;br/&gt;
    $pager = Doctrine::getTable(&quot;CohibaClient&quot;)-&amp;gt;getPager();&lt;/p&gt;

&lt;p&gt;    $this-&amp;gt;log(&quot;total records: &quot;.$pager-&amp;gt;getNumResults().&quot; total page: &quot;.$pager-&amp;gt;getLastPage().&quot;\n&quot;);&lt;br/&gt;
    $lastPage = $pager-&amp;gt;getLastPage();&lt;br/&gt;
2&amp;gt;&lt;br/&gt;
   $table = Doctrine::getTable(&quot;CohibaClient&quot;);&lt;br/&gt;
   $items = $table-&amp;gt;getList(1, $maxPerPage);&lt;br/&gt;
   $pager = $table-&amp;gt;getPager();&lt;/p&gt;

&lt;p&gt;   $this-&amp;gt;log(&quot;total records: &quot;.$pager-&amp;gt;getNumResults().&quot; total page: &quot;.$pager-&amp;gt;getLastPage().&quot;\n&quot;);&lt;br/&gt;
   $lastPage = $pager-&amp;gt;getLastPage();&lt;/p&gt;

&lt;p&gt;#2 works, but not #1, error is &quot;Fatal error: Call to a member function getNumResults() on a non-object in.... &quot; is it an issue when singleton generation?&lt;/p&gt;</description>
                <environment>symfony 1.2.9</environment>
            <key id="10644">DC-375</key>
            <summary>Doctrine_Table getTable singleton issue</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="bennybi">ben bi</reporter>
                        <labels>
                    </labels>
                <created>Tue, 22 Dec 2009 02:46:16 +0000</created>
                <updated>Tue, 22 Dec 2009 06:59:07 +0000</updated>
                                    <version>1.0.14</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-373] Relating to Translation table (generated by Doctrine_I18n) doesn&apos;t work correctly after resetting connection</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-373</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Relating to Translation table (generated by Doctrine_I18n) doesn&apos;t work correctly after resetting connection.&lt;/p&gt;

&lt;p&gt;First, I defined the following schema.yml::&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-none&quot;&gt; 
  Example:
    actAs:
      I18n:
        fields: [title]
    columns:
        title: string(128)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Next, I prepared the following fixture &lt;a href=&quot;file::&quot; class=&quot;external-link&quot;&gt;file::&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-none&quot;&gt; 
  Example:
    Example_1:
      Translation:
        en:
          title: &quot;Title&quot;
        ja:
          title: &quot;&#38988;&#21517;&quot;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Next, I run &quot;build-all-reload&quot; task. The table was created and data was loaded.&lt;/p&gt;

&lt;p&gt;And I write the following code::&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; 
  Doctrine_Core::loadModels(&apos;models&apos;);
  $example = Doctrine_Core::getTable(&apos;Example&apos;)-&amp;gt;find(1);
  
  var_dump(
    $example-&amp;gt;Translation[&apos;en&apos;]-&amp;gt;title,
    $example-&amp;gt;Translation[&apos;ja&apos;]-&amp;gt;title
  );
  
  Doctrine_Manager::resetInstance();
  Doctrine_Manager::getInstance()-&amp;gt;openConnection(DSN, &apos;doctrine&apos;);
  
  $example2 = Doctrine_Core::getTable(&apos;Example&apos;)-&amp;gt;find(1);
  var_dump(
    $example2-&amp;gt;Translation[&apos;en&apos;]-&amp;gt;title,
    $example2-&amp;gt;Translation[&apos;ja&apos;]-&amp;gt;title
  );
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I try executing my code, but I got the following error::&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-none&quot;&gt;  string(5) &quot;Title&quot;
  string(6) &quot;&#38988;&#21517;&quot;
  
  Doctrine_Connection_Mysql_Exception: SQLSTATE[42S22]: Column not found: 1054 Unknown column &apos;e.title&apos; in &apos;field list&apos; in /path/to/doctrine/Doctrine/Connection.php on line 1082
  
  Call Stack:
      0.0055      65352   1. {main}() /path/to/my/code/test.php:0
      0.2776    5873388   2. Doctrine_Table-&amp;gt;find() /path/to/my/code/test.php:52
      0.2793    5881152   3. Doctrine_Query-&amp;gt;fetchOne() /path/to/doctrine/Doctrine/Table.php:1611
      0.2793    5881296   4. Doctrine_Query_Abstract-&amp;gt;execute() /path/to/doctrine/Doctrine/Query.php:281
      0.2793    5881892   5. Doctrine_Query_Abstract-&amp;gt;_execute() /path/to/doctrine/Doctrine/Query/Abstract.php:1026
      0.3127    5890712   6. Doctrine_Connection-&amp;gt;execute() /path/to/doctrine/Doctrine/Query/Abstract.php:976
      0.3164    5892632   7. Doctrine_Connection_Statement-&amp;gt;execute() /path/to/doctrine/Doctrine/Connection.php:1006
      0.3181    5907408   8. Doctrine_Connection-&amp;gt;rethrowException() /path/to/doctrine/Doctrine/Connection/Statement.php:269
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>PHP 5.2.11 (with Suhosin-Patch 0.9.7)&lt;br/&gt;
PHP 5.3.6</environment>
            <key id="10638">DC-373</key>
            <summary>Relating to Translation table (generated by Doctrine_I18n) doesn&apos;t work correctly after resetting connection</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="co3k">Kousuke Ebihara</reporter>
                        <labels>
                    </labels>
                <created>Sun, 20 Dec 2009 22:54:24 +0000</created>
                <updated>Tue, 11 Sep 2012 13:16:23 +0000</updated>
                                    <version>1.2.1</version>
                <version>1.2.2</version>
                <version>1.2.3</version>
                <version>1.2.4</version>
                                                <component>Connection</component>
                <component>I18n</component>
                        <due></due>
                    <votes>2</votes>
                        <watches>3</watches>
                        <comments>
                    <comment id="14659" author="arnaud.charlier@gmail.com" created="Tue, 2 Nov 2010 04:55:46 +0000"  >&lt;p&gt;Good Morning,&lt;/p&gt;

&lt;p&gt;First, thanks a lot for your work on Doctrine. It&apos;s a real great tool we love to use.&lt;/p&gt;

&lt;p&gt;Currently in one of our big application we have exactly the same issue.&lt;br/&gt;
It seems when we close the connection, the reference with the objectTranslation is lost.&lt;br/&gt;
Re-open the connection seems not able to reinstantiate this Translation link to the objectTranslation.&lt;/p&gt;

&lt;p&gt;Currently we have no solution, but we are still investigating this.&lt;/p&gt;

&lt;p&gt;I&apos;m available to go deep in the code with you, but any Doctrine Team help will be really nice.&lt;/p&gt;

&lt;p&gt;Thanks to let me know as soon as possible.&lt;/p&gt;

&lt;p&gt;Arnaud&lt;/p&gt;</comment>
                    <comment id="15891" author="jsiponen" created="Fri, 27 May 2011 14:51:51 +0000"  >&lt;p&gt;I&apos;ve just now battled with the very same problem in Doctrine 1.2 (the version bundled with symfony 1.4) and the problem seems to be caused by the fact that Doctrine_Record_Generator simply isn&apos;t written such that it is able to reinitialize generators for unloaded table instances after a connection is closed.  This problem also manifests itself after a table has been loaded in a connection and one tries retrieve a table again after Doctrine_Connection-&amp;gt;evictTables() has been called. This makes it impossible to to open more than one connection at a time in a request/script when using behaviors that dynamically modify table instances (such as the i18n behavior).&lt;/p&gt;

&lt;p&gt;Doctrine_Record_Generator determines if it needs to run its initialization methods simply by checking if the to-be generated class, as defined by the className option, exists using a class_exists call. This means that the first time this method is called the initialization happens but for every subsequent call no initialization is made. Now, in the i18m behavior, the important initialization happens in its setTableDefinition method in which it removes any of the translated fields from the table instance that is been setup and redefines them as relations on the to-be-created Translation class. It then finishes off by dynamically declaring the new class for the translation record using its generateClassFromTable method.&lt;/p&gt;

&lt;p&gt;Thus, the first time everything goes smoothly and the i18n generator&apos;s setTableDefinition is called and the table instance is properly initialized. Everything will now work as expected while the current connection is open since the connection instance keeps the i18n modified table instances alive and well for callers.&lt;/p&gt;

&lt;p&gt;But, when the current connection is closed the i18n modified table instances it holds are also removed (goes out of scope). Then, when a new connection is opened, this new connection will start without having any table instances. This means that the next time one asks the new connection for a table instance of the same class with the i18n behavior the i18n behaviors will fail to initialize because the generator at this time believes its class has actually been initialized which, in turn, means that the table using the i18n behavior isn&apos;t properly initialized. No initialization means that this table will now include the non-existant i18n fields in the select part of its queries (those are in the translation table) causing those queries to fail miserably.&lt;/p&gt;

&lt;p&gt;I believe this could be fixed by adding a static attribute to Doctrine_Record_Generator that tracks the spl_object_hash of the underlying dbh instance variable of the doctrine connection of the table parameter. If the hash is the same the next time that the initialize method is called the generator can decide not to reinitialize itself but if it detects that the hash of the current connection is different then that is definitely a clue to the generator that it needs to reinitialize itself (i.e. run all of the initialization methods but generateClassFromTable which should&apos;t be called more than once).&lt;/p&gt;

&lt;p&gt;Maybe do it like this perhaps:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt; 
abstract class Doctrine_Record_Generator extends Doctrine_Record_Abstract
{
  public function initialize(Doctrine_Table $table)
  {
    /* ... */ 
  
    $currentConnectionHash = spl_object_hash($table-&amp;gt;getConnection()-&amp;gt;getDbh());
    
    //Next part is called if this is the first connection made or if this is a new open connection with new table instances
    if ($currentConnectionHash != self::$lastConnectionHash)
    {
      self::$lastConnectionHash = $currentConnectionHash;
      
      $this-&amp;gt;buildTable();

      $fk = $this-&amp;gt;buildForeignKeys($this-&amp;gt;_options[&apos;table&apos;]);

      $this-&amp;gt;_table-&amp;gt;setColumns($fk);

      $this-&amp;gt;buildRelation();

      $this-&amp;gt;setTableDefinition();
      $this-&amp;gt;setUp();
      
      if ($this-&amp;gt;_options[&apos;generateFiles&apos;] === false &amp;amp;&amp;amp; class_exists($this-&amp;gt;_options[&apos;className&apos;])) {
        $this-&amp;gt;generateClassFromTable($this-&amp;gt;_table); //Don&apos;t generate the class more than once ever
      }
      
      $this-&amp;gt;buildChildDefinitions();

      $this-&amp;gt;_table-&amp;gt;initIdentifier();
    }
  }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; </comment>
                    <comment id="16003" author="jsiponen" created="Thu, 16 Jun 2011 20:28:21 +0000"  >&lt;p&gt;Failing test case attached&lt;/p&gt;</comment>
                    <comment id="18060" author="co3k" created="Fri, 8 Jun 2012 07:53:37 +0000"  >&lt;p&gt;Good job, Joe Siponen! Thanks for your nice patch!&lt;/p&gt;

&lt;p&gt;I can&apos;t understand why the Doctrine team discontinued maintenance of Doctrine 1 without any fixes for some serious issues like this problem...&lt;/p&gt;

&lt;p&gt;Joe, would you send your patch by pull-request in GitHub? They might notice this problem and try to fix in official repository by your request. If you cannnot, I will do it as your proxy. (Of course I&apos;m going to describe your credit)&lt;/p&gt;</comment>
                    <comment id="18626" author="co3k" created="Tue, 11 Sep 2012 13:16:23 +0000"  >&lt;p&gt;I&apos;ve tested Joe Siponen&apos;s patch, it would be good in a situation of single connection, but it doesn&apos;t work in multiple connections.&lt;/p&gt;

&lt;p&gt;So I modified your patch to fit my needs. I&apos;m testing my arranged patch and I want to publish it ASAP...&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11015" name="DC373TestCase.php" size="6100" author="jsiponen" created="Thu, 16 Jun 2011 20:28:21 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-370] Doctrine serializes arrays, objects, etc. like &apos;string&apos;, which is never bigger than a TEXT, limited to 65535 characters (in MySQL)</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-370</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Doctrine supports storing objects and arrays, and implements this via serialize().&lt;/p&gt;

&lt;p&gt;However in DataDict/Mysql they are handled like the &apos;string&apos; type, which means they are subject to the rules there that ensure nothing bigger than a &apos;TEXT&apos; is ever used to represent them.&lt;/p&gt;

&lt;p&gt;TEXT is not a great choice for objects and arrays because it&apos;s difficult to ensure they will not exceed 65,535 bytes in size.&lt;/p&gt;

&lt;p&gt;This would be most easily fixed by moving them to the next block of case statements there, used for CLOBs. The logic there already picks suitable large types (MEDIUMTEXT and LONGTEXT) as needed, and defaults to LONGTEXT which is a good choice for objects and arrays.&lt;/p&gt;</description>
                <environment></environment>
            <key id="10635">DC-370</key>
            <summary>Doctrine serializes arrays, objects, etc. like &apos;string&apos;, which is never bigger than a TEXT, limited to 65535 characters (in MySQL)</summary>
                <type id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="boutell">Tom Boutell</reporter>
                        <labels>
                    </labels>
                <created>Sat, 19 Dec 2009 19:50:20 +0000</created>
                <updated>Fri, 29 Jan 2010 12:57:17 +0000</updated>
                                    <version>1.2.1</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="11518" author="hobodave" created="Fri, 29 Jan 2010 03:37:42 +0000"  >&lt;p&gt;Array and Object data types now behave identically to clob.&lt;/p&gt;

&lt;p&gt;See &lt;a href=&quot;http://trac.doctrine-project.org/changeset/7077&quot; class=&quot;external-link&quot;&gt;r7077&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="11523" author="boutell" created="Fri, 29 Jan 2010 12:57:17 +0000"  >&lt;p&gt;Thanks David!&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-355] Call to a member function evictAll() if a table is retrieved, that is not existent</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-355</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Hi!&lt;/p&gt;

&lt;p&gt;Im not quite sure it this bahaviour is wanted, but i think that this&lt;br/&gt;
should be catched:&lt;/p&gt;

&lt;p&gt;If i call Doctrine::getTable on a non existing model, the exception is&lt;br/&gt;
thrown. After them i want always to clear all Record Repositories, see&lt;br/&gt;
code:&lt;/p&gt;

&lt;p&gt;try&lt;/p&gt;
{
        $table = Doctrine::getTable(&apos;notexistent&apos;);
        }
&lt;p&gt;        catch(Exception $e)&lt;/p&gt;
{
                echo &apos;not existent&apos;.$e-&amp;gt;getMessage();
        }
&lt;p&gt;        Doctrine_Manager::connection()-&amp;gt;clear();&lt;/p&gt;

&lt;p&gt;Then I get the error message:&lt;/p&gt;

&lt;p&gt;Fatal error: Call to a member function evictAll() on a non-object in /&lt;br/&gt;
core/lib/Doctrine/Doctrine/Connection.php on line 1239&lt;/p&gt;

&lt;p&gt;The problem is that the function clear doesnt check if a repository is&lt;br/&gt;
given.&lt;/p&gt;

&lt;p&gt; public function clear()&lt;br/&gt;
    {&lt;br/&gt;
        foreach ($this-&amp;gt;tables as $k =&amp;gt; $table) &lt;/p&gt;
{
            $table-&amp;gt;getRepository()-&amp;gt;evictAll();             //
getRepository delivers FALSE
            $table-&amp;gt;clear();
        }
&lt;p&gt;    }&lt;/p&gt;

&lt;p&gt;Is it normal behaviour? Or should it be checked first:&lt;/p&gt;

&lt;p&gt;if ($repository = $table-&amp;gt;getRepository())&lt;/p&gt;
{
 $repository-&amp;gt;evisctAll();

}

&lt;p&gt;best regards,&lt;br/&gt;
aNj&lt;/p&gt;</description>
                <environment>Ubuntu 8.04</environment>
            <key id="10608">DC-355</key>
            <summary>Call to a member function evictAll() if a table is retrieved, that is not existent</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="anj">aNj</reporter>
                        <labels>
                    </labels>
                <created>Sat, 12 Dec 2009 18:27:17 +0000</created>
                <updated>Sat, 12 Dec 2009 18:27:17 +0000</updated>
                                    <version>1.2.0</version>
                <version>1.2.1</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-280] Add pre/postHydrateResultSet() events</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-280</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Over the last several weeks I&apos;ve been working on streamlining the access control logic in the application I&apos;m working on, and I realized that Doctrine&apos;s event listeners might be able to help.  For more detailed background information take a look at &lt;a href=&quot;http://groups.google.com:80/group/dallasphp/browse_thread/thread/91e3f107cd611adf&quot; class=&quot;external-link&quot;&gt;http://groups.google.com:80/group/dallasphp/browse_thread/thread/91e3f107cd611adf&lt;/a&gt; ...but here&apos;s the problem in a nutshell:&lt;/p&gt;

&lt;p&gt;Since my application&apos;s access control logic is all implemented in PHP rather than in the database (i.e., I can&apos;t add access control to my queries as a simple WHERE clause), I&apos;m looking for a way to hook into the query process just after the records have been hydrated and actually modify the result set that gets returned, such that only permissible records show up in the final result set.&lt;/p&gt;

&lt;p&gt;Unfortunately, although there are several listener methods that look promising for this, none of them seem to have access to the data being returned.  For instance, if I run a custom query via Doctrine_Query::execute(), the postQuery() hook definitely runs ...but it doesn&apos;t give me access to anything but the query string itself.&lt;/p&gt;

&lt;p&gt;Since, in some instances (e.g., hydration listeners), the Doctrine_Event object is assigned arbitrary data that the listener can modify, I&apos;m wondering if the same thing couldn&apos;t be done more universally?&lt;/p&gt;</description>
                <environment></environment>
            <key id="10495">DC-280</key>
            <summary>Add pre/postHydrateResultSet() events</summary>
                <type id="2" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="jazzslider">Adam Jensen</reporter>
                        <labels>
                    </labels>
                <created>Mon, 23 Nov 2009 23:38:02 +0000</created>
                <updated>Tue, 8 Jun 2010 16:09:38 +0000</updated>
                                                                    <component>Connection</component>
                <component>Query</component>
                <component>Record</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="10829" author="jwage" created="Tue, 24 Nov 2009 00:01:06 +0000"  >&lt;p&gt;In Doctrine 1.2 you can create custom hydrators. You can extend the core hydrators to remove the data you want? I think that would work.&lt;/p&gt;</comment>
                    <comment id="10846" author="jazzslider" created="Tue, 24 Nov 2009 19:45:06 +0000"  >&lt;p&gt;Sure enough, that does the trick!&lt;/p&gt;

&lt;p&gt;There are a couple of downsides, though, that might be worth considering in terms of future development:&lt;/p&gt;

&lt;p&gt;1. It would be nice to be able to specify constructor arguments for the hydrator, so that collaborators can be injected.  In my example, the hydrator needs access to the application&apos;s access control list object; currently it&apos;s simply retrieving it from a global registry, but it would be nice for testing&apos;s sake to be able to inject it instead.&lt;br/&gt;
2. It would also be nice to be able to chain multiple hydrators together; that&apos;s one reason I was looking at listeners, since they&apos;ve got that capability already.  That approach allows you to keep distinct behavior distinct a lot more easily.&lt;/p&gt;

&lt;p&gt;Ultimately, I&apos;d still kind of like to see another listener method available ...say, preHydrateResultSet() and postHydrateResultSet()?  I think that would be a more flexible approach, even though the custom hydrator solution works quite well.&lt;/p&gt;

&lt;p&gt;Thanks!&lt;br/&gt;
Adam&lt;/p&gt;</comment>
                    <comment id="10847" author="jwage" created="Tue, 24 Nov 2009 19:49:31 +0000"  >&lt;p&gt;I like the idea. I&apos;ll move this to 1.3. I don&apos;t think we&apos;re gonna have a 1.3 version but if we do, it&apos;ll be there.&lt;/p&gt;</comment>
                    <comment id="12211" author="jwage" created="Mon, 15 Mar 2010 14:22:57 +0000"  >&lt;p&gt;We can include this in a 1.2.x release if you would like to provide a patch and some tests. Thanks, Jon&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-668] Call to undefined method Doctrine_Adapter_Mysqli::setAttribute() </title>
                <link>http://www.doctrine-project.org/jira/browse/DC-668</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;i&apos;m trying to switch to php5.3.1.&lt;br/&gt;
using the same connection as before, mysql://, i get &lt;/p&gt;

&lt;p&gt;Warning: PDO::__construct() &lt;span class=&quot;error&quot;&gt;&amp;#91;pdo.--construct&amp;#93;&lt;/span&gt;: OK packet 6 bytes shorter than expected in C:\wamp\bin\php\php5.2.9-2\PEAR\Doctrine\lib\Doctrine\Connection.php  on line 470&lt;/p&gt;

&lt;p&gt;after researching this error, i found out that it is related to the new password in mysql5.&lt;br/&gt;
i tried changing the password for the connection, and made sure there is no old_password set in my.ini, without any success.&lt;/p&gt;

&lt;p&gt;so i&apos;m trying to connect using mysqli adapter, and now i get this error:&lt;br/&gt;
PHP Fatal error:  Call to undefined method Doctrine_Adapter_Mysqli::setAttribute() in C:\wamp\bin\php\php5.2.9-2\PEAR\Doctrine\lib\Doctrine\Connection.php on line 496&lt;/p&gt;

&lt;p&gt;how can i connect to mysql5.1 with php5.3, and what is the best connection to pick. mysql or mysqli.&lt;/p&gt;</description>
                <environment>windows xp, apache2.2 web server, php5.3.1, doctrine1.2.2, zend framework 1.10.3, mysql 5.1</environment>
            <key id="11323">DC-668</key>
            <summary>Call to undefined method Doctrine_Adapter_Mysqli::setAttribute() </summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="nadim">nadim</reporter>
                        <labels>
                    </labels>
                <created>Thu, 6 May 2010 09:31:36 +0000</created>
                <updated>Tue, 8 Jun 2010 11:57:44 +0000</updated>
                                    <version>1.2.2</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="13170" author="jwage" created="Tue, 8 Jun 2010 11:57:44 +0000"  >&lt;p&gt;What is Doctrine_Adapter_Mysqli? Is this your own class?&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-618] [PATCH] Local key relations without modifed fields but with modified relations are not saved</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-618</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Assume the following test setup:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Email&amp;#93;&lt;/span&gt; * &amp;#8212; 1 &lt;span class=&quot;error&quot;&gt;&amp;#91;Author&amp;#93;&lt;/span&gt; 1 &amp;#8212; * &lt;span class=&quot;error&quot;&gt;&amp;#91;Book&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Assume further that you have a new Email, Author and Book object. Email and book have modified fields, author does not, except for the foreign key relation.&lt;/p&gt;

&lt;p&gt;Now, when you save the Email object, the related Author is not saved because isModified($deep = false) returns false since no local field is modified. The solution is to pass the parameter $deep = true to isModified().&lt;/p&gt;

&lt;p&gt;Patch and test case are attached. No existing test is broken by this fix.&lt;/p&gt;

&lt;p&gt;PS: This patch fixes the correlated bug that objects with I18N behaviour are not saved if only their Translation objects are modified, but not their own fields.&lt;/p&gt;</description>
                <environment></environment>
            <key id="11178">DC-618</key>
            <summary>[PATCH] Local key relations without modifed fields but with modified relations are not saved</summary>
                <type id="5" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/subtask_alternate.png">Sub-task</type>
                    <parent id="11502">DC-740</parent>
                        <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="bschussek">Bernhard Schussek</reporter>
                        <labels>
                    </labels>
                <created>Tue, 6 Apr 2010 13:41:52 +0000</created>
                <updated>Sun, 10 Jul 2011 23:28:08 +0000</updated>
                                    <version>1.2.3</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>1</votes>
                        <watches>1</watches>
                                <attachments>
                    <attachment id="10547" name="DC618TestCase.php" size="3518" author="bschussek" created="Tue, 6 Apr 2010 13:48:26 +0000" />
                    <attachment id="11028" name="directadmin-logo.gif" size="1508" author="bozzine" created="Sun, 10 Jul 2011 23:26:45 +0000" />
                    <attachment id="10546" name="ticket_dc618.patch" size="671" author="bschussek" created="Tue, 6 Apr 2010 13:48:26 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-541] MSSQL Server: Enabling MARS prevents the saving of records.</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-541</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;This is related to issue #540. In order to circumvent that issue, I enabled MARS (Multiple Active Result Sets) - now when attempting to save any record the following error results:&lt;/p&gt;

&lt;p&gt;Fatal error: Uncaught exception &apos;Doctrine_Transaction_Exception&apos; with message &apos;Rollback failed. There is no active transaction.&apos; in C:\www\doctrine\lib\Doctrine\Transaction.php on line 319&lt;/p&gt;

&lt;p&gt;This is actually caused by the following MSSQL error:&lt;/p&gt;

&lt;p&gt;exception &apos;Doctrine_Transaction_Exception&apos; with message &apos;SQLSTATE&lt;span class=&quot;error&quot;&gt;&amp;#91;42000&amp;#93;&lt;/span&gt;: Syntax error or access violation: 3997 &lt;span class=&quot;error&quot;&gt;&amp;#91;Microsoft&amp;#93;&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;SQL Server Native Client 10.0&amp;#93;&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;SQL Server&amp;#93;&lt;/span&gt;A transaction that was started in a MARS batch is still active at the end of the batch. The transaction is rolled back. (SQLExecDirect&lt;span class=&quot;error&quot;&gt;&amp;#91;3997&amp;#93;&lt;/span&gt; at ext\pdo_odbc\odbc_driver.c:247)&apos; in C:\www\doctrine\lib\Doctrine\Transaction.php:212 Stack trace: #0 C:\www\doctrine\lib\Doctrine\Transaction.php(511): Doctrine_Transaction-&amp;gt;beginTransaction(NULL) #1 C:\www\doctrine\lib\Doctrine\Connection.php(1377): Doctrine_Transaction-&amp;gt;beginInternalTransaction(NULL) #2 C:\www\doctrine\lib\Doctrine\Connection\UnitOfWork.php(64): Doctrine_Connection-&amp;gt;beginInternalTransaction() #3 C:\www\doctrine\lib\Doctrine\Record.php(1691): Doctrine_Connection_UnitOfWork-&amp;gt;saveGraph(Object(Model)) #4 C:\www\doctrine\tools\sandbox\index.php(83): Doctrine_Record-&amp;gt;save() #5 &lt;/p&gt;
{main}

&lt;p&gt;I haven&apos;t worked out what&apos;s going on yet, but this blog post may shed some light on it:&lt;br/&gt;
&lt;a href=&quot;http://blogs.msdn.com/cbiyikoglu/archive/2006/11/21/mars-transactions-and-sql-error-3997-3988-or-3983.aspx&quot; class=&quot;external-link&quot;&gt;http://blogs.msdn.com/cbiyikoglu/archive/2006/11/21/mars-transactions-and-sql-error-3997-3988-or-3983.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&apos;ve attached a script to reproduce this issue in the sandbox (MARS is enabled in the DSN).&lt;/p&gt;</description>
                <environment>PHP 5.3.1&lt;br/&gt;
MSSQL Server 2008&lt;br/&gt;
Windows&lt;br/&gt;
PHP PDO ODBC</environment>
            <key id="10990">DC-541</key>
            <summary>MSSQL Server: Enabling MARS prevents the saving of records.</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="craigmarvelley">Craig Marvelley</reporter>
                        <labels>
                    </labels>
                <created>Wed, 3 Mar 2010 13:20:00 +0000</created>
                <updated>Thu, 10 Jun 2010 04:40:57 +0000</updated>
                                    <version>1.2.1</version>
                                                <component>Connection</component>
                <component>Record</component>
                        <due></due>
                    <votes>1</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="12237" author="jwage" created="Mon, 15 Mar 2010 16:23:31 +0000"  >&lt;p&gt;We&apos;ll need some more information. We don&apos;t have a way to test against mssql currently.&lt;/p&gt;</comment>
                    <comment id="12273" author="craigmarvelley" created="Tue, 16 Mar 2010 06:59:00 +0000"  >&lt;p&gt;I&apos;ve dug a little deeper and it seems that the exception is thrown because the Doctrine_Transaction_Mssql class has overrides for the transaction begin/commit/rollback methods. When I remove these overrides and let transactions be handled through the PDO API I don&apos;t get any exceptions while transactions seem to function as normal.&lt;/p&gt;

&lt;p&gt;Why are these methods overridden? Is it perhaps only necessary for the MSSQL PDO extension, as suggested here (&lt;a href=&quot;http://trac.symfony-project.org/wiki/HowToConnectToMSSQLServer&quot; class=&quot;external-link&quot;&gt;http://trac.symfony-project.org/wiki/HowToConnectToMSSQLServer&lt;/a&gt;), since that extension seemingly has no native transaction support (I&apos;ve never used it)? Perhaps this isn&apos;t necessary for the ODBC extension?&lt;/p&gt;</comment>
                    <comment id="12291" author="craigmarvelley" created="Tue, 16 Mar 2010 15:06:21 +0000"  >&lt;p&gt;This patch maintains the existing manual transaction functionality for MSSQL connections, but uses the native PDO API for ODBC connections.&lt;/p&gt;</comment>
                    <comment id="13188" author="jwage" created="Tue, 8 Jun 2010 14:32:50 +0000"  >&lt;p&gt;Hmm. I don&apos;t think this patch is good. It doesn&apos;t fix the problem, just hacks around it.&lt;/p&gt;</comment>
                    <comment id="13231" author="craigmarvelley" created="Tue, 8 Jun 2010 18:31:23 +0000"  >&lt;p&gt;Ok.. Do you have any recommendations for a better patch? While I agree my patch is far from elegant, it does at least allow MSSQL and ODBC to work alongside each other. As far as I can tell, the underlying issue is that Doctrine uses the same driver for two very different PDO extensions - I couldn&apos;t think of a way to resolve this issue without some kind of check as to which extension is in use.&lt;/p&gt;

&lt;p&gt;We could maybe catch the exception that&apos;s thrown in the first instance when running a manual query, and try calling the parent rollback method instead? Maybe only when the current connection is ODBC? That&apos;s essentially the same approach though, with the added overhead of an unnecessary query that we know will fail..&lt;/p&gt;

&lt;p&gt;I&apos;m very keen to find a fix that you&apos;re happy with for this since I&apos;ve been manually patching it for a while, so any feedback that would engender that would be great!&lt;/p&gt;</comment>
                    <comment id="13232" author="jwage" created="Tue, 8 Jun 2010 18:47:47 +0000"  >&lt;p&gt;I am still not sure of the exact problem/error that is happening. When isn&apos;t happening with the current code? or is something happening that should not?&lt;/p&gt;</comment>
                    <comment id="13248" author="craigmarvelley" created="Wed, 9 Jun 2010 06:58:08 +0000"  >&lt;p&gt;As far as I understand it (I&apos;m no SQL Server expert, unfortunately!) the issue is this: &lt;/p&gt;

&lt;p&gt;The Doctrine_Transaction_Mssql class is used for both the MSSQL and ODBC PDO extensions. It manages transactions by executing manual queries against the database (ROLLBACK TRANSACTION, COMMIT_TRANSACTION, etc.).&lt;/p&gt;

&lt;p&gt;This isn&apos;t compatible with the ODBC PDO extension and SQL Server when Multiple Active Record Sets is enabled; I believe MARS allows multiple transactions to co-exist, and this query-style way of managing them isn&apos;t compatible with that as transactions aren&apos;t &apos;namespaced&apos;. MARS is critical because without it there&apos;s no way of looping over more than one record set at the same time, something we take for granted in MySQL et al.&lt;/p&gt;

&lt;p&gt;From that link to the Symfony wiki I posted earlier, it appears that the query method of managing transactions is only necessary for the MSSQL PDO extension - quote:&lt;/p&gt;

&lt;p&gt;&quot;dblib doesn&apos;t support transactions so we need to add a workaround for transactions, last insert ID, and quoting&quot;&lt;/p&gt;

&lt;p&gt;This is backed up by the patch - when we let the ODBC driver handle transactions natively, everything works fine.&lt;/p&gt;

&lt;p&gt;Does that make sense?&lt;/p&gt;</comment>
                    <comment id="13250" author="jwage" created="Wed, 9 Jun 2010 12:39:06 +0000"  >&lt;p&gt;Now that I look at everything again, do we need to even be overriding those methods at all in Doctrine_Transaction_Mssql (_doRollback, _doCommit, _doBeginTransaction). We should just let the database driver handle it?&lt;/p&gt;</comment>
                    <comment id="13251" author="jwage" created="Wed, 9 Jun 2010 12:40:05 +0000"  >&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
Index: lib/Doctrine/Transaction/Mssql.php
===================================================================
--- lib/Doctrine/Transaction/Mssql.php	(revision 7673)
+++ lib/Doctrine/Transaction/Mssql.php	(working copy)
@@ -65,28 +65,4 @@
 
         $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;conn-&amp;gt;execute($query);
     }
-    
-    /**
-     * Performs the rollback.
-     */
-    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; function _doRollback()
-    {
-        $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;conn-&amp;gt;getDbh()-&amp;gt;exec(&apos;ROLLBACK TRANSACTION&apos;);
-    }
-    
-    /**
-     * Performs the commit.
-     */
-    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; function _doCommit()
-    {
-        $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;conn-&amp;gt;getDbh()-&amp;gt;exec(&apos;COMMIT TRANSACTION&apos;);
-    }
-    
-    /**
-     * Begins a database transaction.
-     */
-    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; function _doBeginTransaction()
-    {
-        $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;conn-&amp;gt;getDbh()-&amp;gt;exec(&apos;BEGIN TRANSACTION&apos;);
-    }
 }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It seems like we don&apos;t even need to do that?&lt;/p&gt;</comment>
                    <comment id="13264" author="craigmarvelley" created="Thu, 10 Jun 2010 04:40:57 +0000"  >&lt;p&gt;For ODBC, we definitely don&apos;t. That link suggests the above approach caters to the MSSQL extension. I&apos;ve not tried that one because I&apos;m on Windows and as you probably know it&apos;s not recommended; I imagine I&apos;d have way too many other problems were I to try! I didn&apos;t want to break anything for anyone using the MSSQL driver though, which led to my awkward patch.&lt;/p&gt;

&lt;p&gt;From my point of view, I&apos;d imagine the majority of people using SQL Server will be using a Windows stack, and therefore ODBC (and possibly the new SQL Server Driver for PHP PDO extension, which definitely won&apos;t need manual queries, in future) - so I&apos;d favour an approach that didn&apos;t compromise those drivers.&lt;/p&gt;

&lt;p&gt;As an aside - are there any plans afoot to support the new Microsoft endorsed driver? I imagine if you guys were to do so it would be for Doctrine 2, but do you know of any community effort to get it working in 1.2?&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10422" name="index.php" size="1008" author="craigmarvelley" created="Wed, 3 Mar 2010 13:20:00 +0000" />
                    <attachment id="10484" name="mssql_transaction.patch" size="1585" author="craigmarvelley" created="Tue, 16 Mar 2010 15:06:21 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-509] Oracle don&apos;t close cursor</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-509</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;When you doing a big loop of insertion you have a &quot;too many open cursor&quot;.&lt;br/&gt;
The problem is in Doctrine_Connection class&lt;br/&gt;
At line 1005 you should replace :&lt;br/&gt;
$stmt = $this-&amp;gt;prepare($query);&lt;br/&gt;
by&lt;br/&gt;
$stmt = $this-&amp;gt;dbh-&amp;gt;prepare($query);&lt;/p&gt;

&lt;p&gt;and at line 1041 you should replace :&lt;br/&gt;
$stmt = $this-&amp;gt;prepare($query);&lt;br/&gt;
by&lt;br/&gt;
$stmt = $this-&amp;gt;dbh-&amp;gt;prepare($query);&lt;/p&gt;

&lt;p&gt;After this correction, you never have the problem &quot;too many open cursor&quot;&lt;/p&gt;

&lt;p&gt;Thanks to Ota to point that on google groups.&lt;br/&gt;
&lt;a href=&quot;http://groups.google.com/group/doctrine-user/browse_thread/thread/fe6cd03c8fb18b64/728ec1b4e42b1f0b?lnk=gst&amp;amp;q=doctrine_oracle_adapter#728ec1b4e42b1f0b&quot; class=&quot;external-link&quot;&gt;http://groups.google.com/group/doctrine-user/browse_thread/thread/fe6cd03c8fb18b64/728ec1b4e42b1f0b?lnk=gst&amp;amp;q=doctrine_oracle_adapter#728ec1b4e42b1f0b&lt;/a&gt;&lt;/p&gt;</description>
                <environment>PHP 5.3.1</environment>
            <key id="10912">DC-509</key>
            <summary>Oracle don&apos;t close cursor</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/reopened.png">Reopened</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="oxman">oxman</reporter>
                        <labels>
                    </labels>
                <created>Thu, 18 Feb 2010 04:17:46 +0000</created>
                <updated>Thu, 28 Jul 2011 16:18:46 +0000</updated>
                                    <version>1.2.1</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>1</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="11978" author="jwage" created="Tue, 2 Mar 2010 13:49:33 +0000"  >&lt;p&gt;Hmm. This change is invalid because it then doesn&apos;t return the proper statement object. What is the real issue we get the too many cursors open error?&lt;/p&gt;</comment>
                    <comment id="12023" author="oxman" created="Thu, 4 Mar 2010 06:37:57 +0000"  >&lt;p&gt;Why ?&lt;br/&gt;
The both return Doctrine_Adapter_Statement_Interface&lt;/p&gt;</comment>
                    <comment id="12026" author="jwage" created="Thu, 4 Mar 2010 08:18:16 +0000"  >&lt;p&gt;The change makes it so they return PDOStatement, and we need it to return the Doctrine statement wrapper, right?&lt;/p&gt;</comment>
                    <comment id="12029" author="oxman" created="Thu, 4 Mar 2010 08:32:21 +0000"  >&lt;p&gt;It seems not.&lt;/p&gt;

&lt;p&gt;At line 1005 in Doctrine/Connection.php :&lt;br/&gt;
                $stmt = $this-&amp;gt;dbh-&amp;gt;prepare($query);&lt;br/&gt;
                var_dump(get_class($stmt));&lt;br/&gt;
                die;&lt;/p&gt;

&lt;p&gt;I see :&lt;br/&gt;
string(33) &quot;Doctrine_Adapter_Statement_Oracle&quot;&lt;/p&gt;

&lt;p&gt;And with :&lt;br/&gt;
                $stmt = $this-&amp;gt;prepare($query);&lt;br/&gt;
                var_dump(get_class($stmt));&lt;br/&gt;
                die;&lt;/p&gt;

&lt;p&gt;I see :&lt;br/&gt;
string(29) &quot;Doctrine_Connection_Statement&quot;&lt;/p&gt;

&lt;p&gt;The both implements Doctrine_Adapter_Statement_Interface&lt;/p&gt;</comment>
                    <comment id="12776" author="richard" created="Thu, 29 Apr 2010 04:24:43 +0000"  >&lt;p&gt;I have this problem in Symfony 1.4.3 when I use comand:&lt;br/&gt;
symfony doctrine:data-load&lt;/p&gt;

&lt;p&gt;I have 3000 - 4000 lines in my fixtures and max open cursor at 300 on my database oracle.&lt;/p&gt;

&lt;p&gt;This problem can an issue???&lt;/p&gt;</comment>
                    <comment id="13220" author="jwage" created="Tue, 8 Jun 2010 17:06:50 +0000"  >&lt;p&gt;I see, well the change still is not right because it bypasses all the logic in Doctrine_Connection::prepare() which is for sure required and can&apos;t just be removed. We need to determine the real issue here in order to properly patch it.&lt;/p&gt;</comment>
                    <comment id="13458" author="pkwooster" created="Tue, 29 Jun 2010 13:44:32 +0000"  >&lt;p&gt;I&apos;m encountering the same ORA-1000 problem running the symfony doctrine:build-schema command. We are still using PDO, but I have asked in the users group if that&apos;s the best choice. The problem is that the listTableColumns and listTableRelations methods both leave a cursor open. They both call Connection::fetchAssoc, so they should be reading all the records.&lt;/p&gt;

&lt;p&gt;I narrowed it down a little:&lt;/p&gt;

&lt;p&gt;This works properly when no parameters are provided:&lt;/p&gt;

&lt;p&gt;$sql = &quot;SELECT * FROM all_tab_columns tc WHERE tc.table_name = &apos;DEAL&apos;&quot;;&lt;br/&gt;
$result = $connection-&amp;gt;fetchAssoc($sql, array());&lt;/p&gt;

&lt;p&gt;This doesn&apos;t release the cursor when a named parameter is provided&lt;/p&gt;

&lt;p&gt;$sql = &quot;SELECT * FROM all_tab_columns tc WHERE tc.table_name = :tn&quot;;&lt;br/&gt;
$result = $connection-&amp;gt;fetchAssoc($sql, array(&apos;:tn&apos; =&amp;gt; &apos;DEAL&apos;)); // doesn&apos;t release cursor&lt;/p&gt;

&lt;p&gt;This doesn&apos;t release the cursor when a positional parameter is provided&lt;/p&gt;

&lt;p&gt;$sql = &quot;SELECT * FROM all_tab_columns tc WHERE tc.table_name = ?&quot;;&lt;br/&gt;
$result = $connection-&amp;gt;fetchAssoc($sql, array(&apos;DEAL&apos;)); // doesn&apos;t release cursor&lt;/p&gt;

&lt;p&gt;This works properly when the PDO connection is used directly&lt;/p&gt;

&lt;p&gt;$sql = &quot;SELECT * FROM all_tab_columns tc WHERE tc.table_name = :tn&quot;;&lt;br/&gt;
$dbh = $connection-&amp;gt;getDbh();&lt;br/&gt;
$stmt = $dbh-&amp;gt;prepare($sql);&lt;br/&gt;
$stmt-&amp;gt;execute(array(&apos;:tn&apos; =&amp;gt; &apos;DEAL&apos;));&lt;br/&gt;
$result = $stmt-&amp;gt;fetchAll();&lt;/p&gt;</comment>
                    <comment id="16226" author="clemherreman" created="Thu, 28 Jul 2011 16:18:46 +0000"  >&lt;p&gt;As I went through this bug, I looked for a fix. I found one here &lt;a href=&quot;https://github.com/derflocki/doctrine1/commit/47b926a523f9f6e3b88042ef2939af0646285ea2&quot; class=&quot;external-link&quot;&gt;https://github.com/derflocki/doctrine1/commit/47b926a523f9f6e3b88042ef2939af0646285ea2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basically it consist of freeing cursors that aren&apos;t used by a SELECT query, thus preventing Oracle from throwing an exception on batch insert/delete.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-841] Doctrine_Connection_Mssql::replaceBoundParamsWithInlineValuesInQuery regex failing to replace all &apos;?&apos; instances [patch+]</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-841</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;When executing queries with WHERE statements using multiple instances of the &quot;&amp;lt;&amp;gt;&quot; operator (as well as other non &lt;tt&gt;=,(&lt;/tt&gt; symbols inbetween definitions), the method &lt;tt&gt;Doctrine_Connection_Mssql::replaceBoundParamsWithInlineValuesInQuery&lt;/tt&gt; fails to identify all ? replacements.&lt;/p&gt;

&lt;p&gt;In the following piece of code I have a query (trimmed for readability and renamed for privacy) that fails to have all &quot;?&quot; symbols replaced as well as the relevant code from the method mentioned above (minus the return statement) doing a simple demonstration:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;&amp;lt;?php 
$query = &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt; ? AND [t].[field2] &amp;lt;&amp;gt; ? AND [t].[field2] LIKE ?)&quot;;

$params = array(
	&quot;&apos;param1&apos;&quot;,
	&quot;&apos;param2&apos;&quot;,
	&quot;&apos;param3&apos;&quot;
);


/**
 * Replaces bound parameters and their placeholders with explicit values.
 *
 * Workaround for http://bugs.php.net/36561
 *
 * @param string $query
 * @param array $params
 */
//protected function replaceBoundParamsWithInlineValuesInQuery($query, array $params) {

	foreach($params as $key =&amp;gt; $value) {
		if(is_null($value)) {
			$value = &apos;NULL&apos;;
		}
		else {
			//$value = $this-&amp;gt;quote($value); //REMOVED AS PRE-ADDED QUOTES TO ABOVE PARAMETER LIST
		}

		$re = &apos;/([=,\(][^\\\&apos;]*)(\?)/iU&apos;;
		
		$matches = array();
		preg_match($re,$query,$matches);
		
		var_dump($matches); //ADDED FOR DEMONSTRATION

		$query = preg_replace($re, &quot;\\1 {$value}&quot;, $query, 1);
		
		var_dump($query); //ADDED FOR DEMONSTRATION
	}

//	return $query;
//
//}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Running this code produces: &lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;array(3) {
  [0]=&amp;gt;
  string(18) &quot;([t].[field1] &amp;lt;&amp;gt; ?&quot;
  [1]=&amp;gt;
  string(17) &quot;([t].[field1] &amp;lt;&amp;gt; &quot;
  [2]=&amp;gt;
  string(1) &quot;?&quot;
}
string(108) &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt;  &apos;param1&apos; AND [t].[field2] &amp;lt;&amp;gt; ? AND [t].[field2] LIKE ?)&quot;
array(0) {
}
string(108) &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt;  &apos;param1&apos; AND [t].[field2] &amp;lt;&amp;gt; ? AND [t].[field2] LIKE ?)&quot;
array(0) {
}
string(108) &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt;  &apos;param1&apos; AND [t].[field2] &amp;lt;&amp;gt; ? AND [t].[field2] LIKE ?)&quot;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Unfortunately the regex will not identify all the ? instances properly in the query when run like &lt;tt&gt;preg_match_all()&lt;/tt&gt;, which was my first idea to fix (pre-identify all ? instances, then go through and replace them).&lt;/p&gt;

&lt;p&gt;The only 3 potential solutions I can think of are:&lt;/p&gt;

&lt;p&gt;1. Pre-identify all ?&apos;s and note their position in the string, to do this using a much looser regex, then replace all the ?&apos;s found&lt;br/&gt;
2. Use a stack a loop and a switch statement to scan for eligible ? replacements. I have some sample code that shows this should work, but performance is not something I have tested.&lt;br/&gt;
3. Revert back to the previous behavior. Scanning the changelogs I really don&apos;t know where this broke, other than queries that worked prior to 1.2.3 have since broken and this method is the cause.&lt;/p&gt;</description>
                <environment>PHP 5.2.11, Apache, Microsoft SQL Server 2005</environment>
            <key id="11826">DC-841</key>
            <summary>Doctrine_Connection_Mssql::replaceBoundParamsWithInlineValuesInQuery regex failing to replace all &apos;?&apos; instances [patch+]</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="dcousineau">Daniel Cousineau</reporter>
                        <labels>
                    </labels>
                <created>Wed, 25 Aug 2010 18:14:54 +0000</created>
                <updated>Sat, 5 Mar 2011 17:54:59 +0000</updated>
                                    <version>1.2.3</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>3</votes>
                        <watches>4</watches>
                        <comments>
                    <comment id="14072" author="dcousineau" created="Wed, 25 Aug 2010 18:18:41 +0000"  >&lt;p&gt;I am probably way over thinking a solutions, however since I have to run home and don&apos;t have time to flesh this out further at the moment, my initial idea is something like this:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;&amp;lt;?php 
$query = &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt; &apos;Testing!?&apos; AND [t].[field2] &amp;lt;&amp;gt; ? AND [t].[field?] LIKE ? AND [t].[field3] = ?)&quot;;

$params = array(
	&quot;&apos;param1&apos;&quot;,
	&quot;param2?&quot;,
	&quot;&apos;param3&apos;&quot;
);

var_dump($query);

$stack = array();
$stringDelim = array(&quot;&apos;&quot;, &apos;&quot;&apos;);

$i = 0;
foreach( str_split($query) as $char )
{
	switch($char) {
		
		case &quot;[&quot;:
			if( !in_array(end($stack), $stringDelim) )
				array_push($stack, $char);
			
			break;
			
		case &quot;]&quot;:
			if( end($stack) == &quot;[&quot; ) {
				array_pop($stack);
			} else
				array_push($stack, $char);
				
			break;
		
		case &quot;\&quot;&quot;:
		case &quot;&apos;&quot;:
			if( end($stack) == $char )
				array_pop($stack);
			else
				array_push($stack, $char);
			
			break;
		
		case &quot;?&quot;:
			if( !in_array(end($stack), array_merge($stringDelim, array(&quot;[&quot;, &quot;]&quot;))) )
			{
				$param = array_shift($params);
				$query = substr_replace($query, $param, $i, 1);
				
				$i += strlen($param) - 1;
				var_dump($query);
			}
			
			
			break;
		
		default:
	}
	
	$i++;
}

var_dump($query);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Which produces&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;string(131) &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt; &apos;Testing!?&apos; AND [t].[field2] &amp;lt;&amp;gt; ? AND [t].[field?] LIKE ? AND [t].[field3] = ?)&quot;
string(138) &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt; &apos;Testing!?&apos; AND [t].[field2] &amp;lt;&amp;gt; &apos;param1&apos; AND [t].[field?] LIKE ? AND [t].[field3] = ?)&quot;
string(144) &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt; &apos;Testing!?&apos; AND [t].[field2] &amp;lt;&amp;gt; &apos;param1&apos; AND [t].[field?] LIKE param2? AND [t].[field3] = ?)&quot;
string(151) &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt; &apos;Testing!?&apos; AND [t].[field2] &amp;lt;&amp;gt; &apos;param1&apos; AND [t].[field?] LIKE param2? AND [t].[field3] = &apos;param3&apos;)&quot;
string(151) &quot;SELECT * FROM [table] AS [t] WHERE ([t].[field1] &amp;lt;&amp;gt; &apos;Testing!?&apos; AND [t].[field2] &amp;lt;&amp;gt; &apos;param1&apos; AND [t].[field?] LIKE param2? AND [t].[field3] = &apos;param3&apos;)&quot;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Which is what we would expect, as well as it doesn&apos;t take into account for newly inserted data containing &apos;?&apos; symbols.&lt;/p&gt;

&lt;p&gt;But again this is just playing around with potential solutions.&lt;/p&gt;</comment>
                    <comment id="14113" author="enrico" created="Fri, 27 Aug 2010 10:54:27 +0000"  >&lt;p&gt;The patch for &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-545&quot; title=&quot;MSSQL Server: Inserting blank records throws exception / Invalid casting of bound query parameters in sub-selects.&quot;&gt;&lt;del&gt;DC-545&lt;/del&gt;&lt;/a&gt; broke some queries or didn&apos;t worked at all. Unfortunately there was no Test Case for &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-545&quot; title=&quot;MSSQL Server: Inserting blank records throws exception / Invalid casting of bound query parameters in sub-selects.&quot;&gt;&lt;del&gt;DC-545&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The patch and a Test Case can be found at: &lt;a href=&quot;http://github.com/estahn/doctrine1/compare/master...DC-841&quot; class=&quot;external-link&quot;&gt;http://github.com/estahn/doctrine1/compare/master...DC-841&lt;/a&gt;&lt;/p&gt;
</comment>
                    <comment id="14233" author="enrico" created="Thu, 2 Sep 2010 08:01:50 +0000"  >&lt;p&gt;I made a mistake with github, the updated branch can be found at&lt;br/&gt;
&lt;a href=&quot;http://github.com/estahn/doctrine1/tree/DC-841-2&quot; class=&quot;external-link&quot;&gt;http://github.com/estahn/doctrine1/tree/DC-841-2&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="15465" author="rotoclap" created="Sat, 5 Mar 2011 17:54:59 +0000"  >&lt;p&gt;Doesn&apos;t work with :&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-sql&quot;&gt;&apos;Test&apos; &amp;lt;&amp;gt; &apos;Test !?&apos;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The question mark is captured...&lt;/p&gt;

&lt;p&gt;This code seems working :&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;foreach($params as $key =&amp;gt; $value) {
  &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt;(is_null($value)) {
    $value = &apos;NULL&apos;;
  }
  &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
    $value = $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;quote($value);
  }

  $re = &apos;/((?:[=&amp;lt;&amp;gt;,\(]|LIKE|IS)[^\\\&apos;]*)(\?)/iuU&apos;;

  $query = preg_replace($re, &lt;span class=&quot;code-quote&quot;&gt;&quot;\\1 {$value}&quot;&lt;/span&gt;, $query, 1);
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-777] getConnectionForComponent and bindComponent are case sensitive </title>
                <link>http://www.doctrine-project.org/jira/browse/DC-777</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;When using multiple database connections, the sfDoctrinePlugin for Symfony 1.4.x is case sensitive when looking up the connection for a model / component while the Symfony is not.&lt;/p&gt;

&lt;p&gt;This causes  code to function correct even when the model names are used in lower case. Once a second connection is configured, the model name is registered in upper case via the base-class (as per the naming convention) causing the wrong connection to be chosen when the model is referenced in lower case.&lt;/p&gt;


&lt;p&gt;This:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt; 
$componentName = &apos;Country&apos;;

$this-&amp;gt;_bound[$componentName] = $connectionName;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 

&lt;p&gt;Will result in no connection found for:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt; 
$componentName = &apos;country&apos;;

if (isset($this-&amp;gt;_bound[$componentName])) {
            return $this-&amp;gt;getConnection($this-&amp;gt;_bound[$componentName]);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 

&lt;p&gt;Unless this was purposely designed to be case-sensitive, I think this should be changed to prevent confusion since in general PHP is not case sensitive when dealing with variable names.&lt;/p&gt;

&lt;p&gt;This bug is related to &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-740&quot; class=&quot;external-link&quot;&gt;http://www.doctrine-project.org/jira/browse/DC-740&lt;/a&gt; &lt;/p&gt;</description>
                <environment>Symfony 1.4.x&lt;br/&gt;
sfDoctrinePlugin&lt;br/&gt;
</environment>
            <key id="11593">DC-777</key>
            <summary>getConnectionForComponent and bindComponent are case sensitive </summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="pluk77">Marcel Berteler</reporter>
                        <labels>
                    </labels>
                <created>Wed, 7 Jul 2010 08:06:34 +0000</created>
                <updated>Wed, 7 Jul 2010 08:06:34 +0000</updated>
                                    <version>1.2.2</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                    <attachment id="10690" name="doctrine_manager.patch" size="1563" author="pluk77" created="Wed, 7 Jul 2010 08:06:34 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-773] Connection::createQuery() can use wrong connection</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-773</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Similar to bug &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-437&quot; title=&quot;Connection::query() can use wrong connection&quot;&gt;&lt;del&gt;DC-437&lt;/del&gt;&lt;/a&gt; (&lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-437&quot; class=&quot;external-link&quot;&gt;http://www.doctrine-project.org/jira/browse/DC-437&lt;/a&gt;)&lt;br/&gt;
When calling Connection::createQuery() object we use the default connection instead of the connection we have when calling the createQuery() method.&lt;/p&gt;</description>
                <environment></environment>
            <key id="11577">DC-773</key>
            <summary>Connection::createQuery() can use wrong connection</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="lonnyk">Lonny Kapelushnik</reporter>
                        <labels>
                    </labels>
                <created>Thu, 1 Jul 2010 16:37:22 +0000</created>
                <updated>Thu, 1 Jul 2010 18:13:31 +0000</updated>
                                    <version>1.2.2</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>1</votes>
                        <watches>2</watches>
                        <comments>
                    <comment id="13485" author="lonnyk" created="Thu, 1 Jul 2010 18:13:31 +0000"  >&lt;p&gt;Patch and Test Case&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10686" name="DC773TestCase.php" size="4321" author="lonnyk" created="Thu, 1 Jul 2010 18:13:31 +0000" />
                    <attachment id="10685" name="DC_773.patch" size="482" author="lonnyk" created="Thu, 1 Jul 2010 18:13:31 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-740] issue with multiple connection handling</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-740</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;I&apos;ve found an issue where doctrine will use the wrong connection for tables under certain conditions.&lt;/p&gt;

&lt;p&gt;In a template, I&apos;m doing a $sf_user-&amp;gt;hasCredential() - which is causing this to be run in sfGuardSecurityUser,&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;$&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;user = Doctrine::getTable(&apos;sfGuardUser&apos;)-&amp;gt;find($id);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When this execute, the calls find themselves to Doctrine_Manager::getConnectionForComponent($componentName)&lt;/p&gt;

&lt;p&gt;This method calls Doctrine_Core::modelsAutoload($componentName);,  which fails to load the class, and returns false (no checking is done to see if it should return true).&lt;/p&gt;

&lt;p&gt;As this fails to include the sfGuardUser classes wher the component binding goes on, the getTAble call will use the default connection, then create the table fails to use the correct connection&lt;/p&gt;

&lt;p&gt;Doctrine_Core::getTable()&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; Doctrine_Manager::getInstance()-&amp;gt;getConnectionForComponent($componentName)-&amp;gt;getTable($componentName);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;the binding is done &lt;b&gt;after&lt;/b&gt; the call to getConectionForComponent, as it&apos;s getTable that will ultimately cause the autoloader to pull in the table classes.&lt;/p&gt;</description>
                <environment></environment>
            <key id="11502">DC-740</key>
            <summary>issue with multiple connection handling</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="pookey">Ian P. Christian</reporter>
                        <labels>
                    </labels>
                <created>Wed, 16 Jun 2010 07:14:23 +0000</created>
                <updated>Tue, 16 Nov 2010 03:08:32 +0000</updated>
                                    <version>1.2.2</version>
                                <fixVersion>1.2.2</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>3</votes>
                        <watches>6</watches>
                        <comments>
                    <comment id="13336" author="jwage" created="Wed, 16 Jun 2010 08:03:16 +0000"  >&lt;p&gt;Hmm, why is the autoloading of sfGuardUser failing? I don&apos;t understand that part. If it is failing do you get a cannot load class error?&lt;/p&gt;</comment>
                    <comment id="13339" author="pookey" created="Wed, 16 Jun 2010 08:46:34 +0000"  >&lt;p&gt;The reason no autoload error is throw, is because symfony&apos;s autoloader loads the class for you, but it does it at the getTable() call, which as seen below from Doctrine_Core::getTable(), it&apos;s proxied though the connection - which is created &lt;b&gt;before&lt;/b&gt; the gable is instanced, which of when the file is actaully loaded.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; Doctrine_Manager::getInstance()-&amp;gt;getConnectionForComponent($componentName)-&amp;gt;getTable($componentName);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    <comment id="13342" author="pookey" created="Wed, 16 Jun 2010 10:00:05 +0000"  >&lt;p&gt;Just to expand on this...&lt;/p&gt;

&lt;p&gt;This obviously gets called when a call to getTable is made:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function getConnectionForComponent($componentName)
    {
        Doctrine_Core::modelsAutoload($componentName);

        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (isset($&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;_bound[$componentName])) {
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;getConnection($&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;_bound[$componentName]);
        }

        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;getCurrentConnection();
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The autoload fails, as you can see from the code...&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; function modelsAutoload($className)
    {
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (class_exists($className, &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;) || interface_exists($className, &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;)) {
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
        }

        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ( ! self::$_modelsDirectory) {
            $loadedModels = self::$_loadedModelFiles;

            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (isset($loadedModels[$className]) &amp;amp;&amp;amp; file_exists($loadedModels[$className])) {
                require $loadedModels[$className];

                &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;
            }
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
            $class = self::$_modelsDirectory . DIRECTORY_SEPARATOR . str_replace(&apos;_&apos;, DIRECTORY_SEPARATOR, $className) . &apos;.php&apos;;

            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (file_exists($class)) {
                require $class;

                &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;
            }
        }
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;$_modelsDirectory is never set, and $_loadedModelFiles is an empty array.   The $_modelsDirectory, even if set, wouldn&apos;t handle loading for plugins, which put their models in places like lib/model/doctrine/sfDoctrineGuardPlugin/sfGuardUser.class.php.&lt;/p&gt;</comment>
                    <comment id="13346" author="pookey" created="Wed, 16 Jun 2010 11:34:48 +0000"  >&lt;p&gt;This was not a problem before r7668 (at least, not for most use cases)....&lt;/p&gt;

&lt;p&gt;It used to be that null was passed as the first arg in the D_Query::create() method call, causing the query to figure out itself which connection to use, which was done after the component was bound, so that&apos;s fine!&lt;/p&gt;

&lt;p&gt;However, the code below is how it is in the current head&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function createQuery($alias = &apos;&apos;)
    {
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ( ! empty($alias)) {
            $alias = &apos; &apos; . trim($alias);
        }

        $class = $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;getAttribute(Doctrine_Core::ATTR_QUERY_CLASS);

        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; Doctrine_Query::create($&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;_conn, $class)
            -&amp;gt;from($&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;getComponentName() . $alias);
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here , the connection of the table (as explained above is previously set incorerctly) is passed to the query.&lt;/p&gt;</comment>
                    <comment id="13347" author="pookey" created="Wed, 16 Jun 2010 12:43:49 +0000"  >&lt;p&gt;I&apos;ve found a work around to this, not sure if it&apos;s a desirable fix though...&lt;/p&gt;

&lt;p&gt;In the project configuration class, I&apos;ve added this to the setup()&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
    $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;dispatcher-&amp;gt;connect(&apos;doctrine.configure&apos;, array($&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;, &apos;doctrineBinder&apos;));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;and the following method is also added, were I&apos;m manually doing my bindings...&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;  &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function doctrineBinder(sfEvent $event)
  {
    $manager = Doctrine_Manager::getInstance();
    $manager-&amp;gt;bindComponent(&apos;sfGuardUser&apos;, &apos;nosp&apos;);
    $manager-&amp;gt;bindComponent(&apos;Incident&apos;, &apos;nosp&apos;);
    $manager-&amp;gt;bindComponent(&apos;ServiceIp&apos;, &apos;ip&apos;);

  }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The overhead here isn&apos;t really that high (it just sets an element in the array)  - I&apos;d also wonder if a bindComponents($array); should be added to simplify this call, but that&apos;s another method.&lt;/p&gt;</comment>
                    <comment id="13523" author="pluk77" created="Tue, 6 Jul 2010 10:41:36 +0000"  >&lt;p&gt;After a long and hard look at the sfDoctrinePlugin and Doctrine code I can to the same conclusion. The Doctrine autoload is not working in sfDoctrinePlugin. I think this is more a &lt;a href=&quot;http://trac.symfony-project.org/ticket/7689&quot; class=&quot;external-link&quot;&gt;sfDoctrinePlugin bug&lt;/a&gt; than a Doctrine bug.&lt;/p&gt;

&lt;p&gt;Instead of manual binding, a better way is the actually make sure the intended flow of the code is working like it should be.&lt;/p&gt;

&lt;p&gt;To be able to use sfDoctrineGuard with multiple connections you need to ensure that the connection name is added to the Schema of sfDoctrineGuard. Once this is done, rebuilding the model will put a bindComponent in the class files.&lt;/p&gt;

&lt;p&gt;This works fine if the autoload is working like it should.&lt;/p&gt;

&lt;p&gt;To get the autoload to work, you can extend the autoload function of Doctrine_Core in Doctrine:&lt;/p&gt;

&lt;p&gt;The Doctrine.php file is empty by default, so its easy to add your code to it (until the problem is fixed without having to edit Doctrine code)&lt;/p&gt;

&lt;p&gt;lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine.php:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt; 
class Doctrine extends Doctrine_Core
{
  public static function modelsAutoload($className)
  {
    sfAutoload::getInstance()-&amp;gt;autoload($className);

    parent::modelsAutoload($className);
  }
  
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; </comment>
                    <comment id="13525" author="pluk77" created="Tue, 6 Jul 2010 11:17:54 +0000"  >&lt;p&gt;Sorry... the above does not work.&lt;/p&gt;

&lt;p&gt;Doctrine_Core-&amp;gt;autoload() is called and not Doctrine-&amp;gt;autoload().&lt;/p&gt;

&lt;p&gt;sfAutoload::getInstance()-&amp;gt;autoload($className);&lt;/p&gt;

&lt;p&gt;can be added to Doctrine_Core line 1133&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;public static function modelsAutoload($className)
    {
        if (class_exists($className, false) || interface_exists($className, false)) {
            return false;
        }

        sfAutoload::getInstance()-&amp;gt;autoload($className);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    <comment id="13526" author="pluk77" created="Tue, 6 Jul 2010 11:26:04 +0000"  >&lt;p&gt;Oh, and to make sfDoctrineGuard work properly, you might have to ensure the sfBasicSecurityUser is bound to the correct model.&lt;/p&gt;

&lt;p&gt;You can do this in plugins\sfDoctrineGuardPlugin\lib\user\sfGuardSecurityUser.class.php or in apps\xxxxx\lib\myUser.class.php&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt; 
Doctrine_Manager::getInstance()-&amp;gt;bindComponent(&apos;sfGuardUser&apos;, &apos;connectionName&apos;);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; </comment>
                    <comment id="13532" author="pluk77" created="Wed, 7 Jul 2010 06:05:39 +0000"  >&lt;p&gt;The patch to Doctrine_Core&lt;/p&gt;

&lt;p&gt;This is a hack that only works when used in sfDoctrinePlugin / Symfony&lt;/p&gt;

&lt;p&gt;Not intended as the final patch to fix this bug but as a work around to make multiple connections usable.&lt;/p&gt;</comment>
                    <comment id="13542" author="pookey" created="Thu, 8 Jul 2010 05:57:47 +0000"  >&lt;p&gt;This effects migrations too it seems:&lt;/p&gt;

&lt;p&gt;Even doing this:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
    $manager = Doctrine_Manager::getInstance();                                                          
    $manager-&amp;gt;bindComponent(&apos;ChangeRequest&apos;, &apos;nosp&apos;);                                                    
    $manager-&amp;gt;bindComponent(&apos;change_request&apos;, &apos;nosp&apos;);                                                   
class Addstatetochangerequest &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; Doctrine_Migration_Base                                            
{                                                                                                        
  &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function up()                                                                                   
  {                                                                                                      
    $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;addColumn(&apos;change_request&apos;, &apos;change_state&apos;, &apos;&lt;span class=&quot;code-keyword&quot;&gt;enum&lt;/span&gt;&apos;, array(&apos;values&apos; =&amp;gt; array(&apos;draft&apos;, &apos;submitted&apos;, &apos;approved&apos;, &apos;rejected&apos;, &apos;closed&apos;)));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This results in:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
# ./symfony doctrine:migrate
&amp;gt;&amp;gt; doctrine  Migrating from version 0 to 1
                                                                                                                                                                                    
  The following errors occurred:                                                                                                                                                    
                                                                                                                                                                                    
   - SQLSTATE[42S02]: Base table or view not found: 1146 Table &apos;nosp_test_radius2.change_request&apos; doesn&apos;t exist. Failing Query: &lt;span class=&quot;code-quote&quot;&gt;&quot;ALTER TABLE change_request ADD change_state TEXT&quot;&lt;/span&gt;  
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The database attempted to be used there is not the correct one.&lt;/p&gt;
</comment>
                    <comment id="14465" author="pluk77" created="Mon, 27 Sep 2010 03:03:15 +0000"  >&lt;p&gt;second required patch to make Symfony work with 2 concurrent databases&lt;/p&gt;</comment>
                    <comment id="14592" author="zhekanax" created="Thu, 21 Oct 2010 14:30:47 +0000"  >&lt;h5&gt;&lt;a name=&quot;Anotherbadwaytogetitworkinginsymfony%3A&quot;&gt;&lt;/a&gt;Another bad way to get it working in symfony:&lt;/h5&gt;
&lt;p&gt;&lt;br class=&quot;atl-forced-newline&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;&quot;&gt;&lt;b&gt;ProjectConfiguration.class.php&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;  &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function configureDoctrine(Doctrine_Manager $manager)
  {
    $files = sfFinder::type(&apos;file&apos;)
      -&amp;gt;maxdepth(0)
      -&amp;gt;not_name(&apos;*Table.class.php&apos;)
      -&amp;gt;name(&apos;*.class.php&apos;)
      -&amp;gt;in(sfConfig::get(&apos;sf_lib_dir&apos;) . &apos;/model/doctrine&apos;);

    foreach ($files as $file) {
      $class_name = str_replace(&apos;.class.php&apos;, &apos;&apos;, basename($file));
      Doctrine_Core::loadModel($class_name, $file);
    }
  }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    <comment id="14744" author="ddebree" created="Tue, 16 Nov 2010 03:08:32 +0000"  >&lt;p&gt;I found that if I changed the getTable function inside the Core.php file it seemed to work. Basically it forces the autoloader to load the object file, and when it does this it runs the bound connection statement to bind a table to a connection. &lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;&quot;&gt;&lt;b&gt;Core.php&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;/**
     * Get the Doctrine_Table object &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; the passed model
     *
     * @param string $componentName
     * @&lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; Doctrine_Table
     */
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; function getTable($componentName)
    {
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!class_exists($componentName)) {
            &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; $componentName();
        }

        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; Doctrine_Manager::getInstance()-&amp;gt;getConnectionForComponent($componentName)-&amp;gt;getTable($componentName);
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10689" name="doctrine_core.patch" size="758" author="pluk77" created="Wed, 7 Jul 2010 06:05:39 +0000" />
                    <attachment id="10814" name="doctrine_manager.patch" size="1560" author="pluk77" created="Mon, 27 Sep 2010 03:03:15 +0000" />
                </attachments>
            <subtasks>
            <subtask id="11178">DC-618</subtask>
        </subtasks>
        </item>

<item>
            <title>[DC-894] Typo in Doctrine_Manager::getConnectionDrivers()</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-894</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Hello.&lt;/p&gt;

&lt;p&gt;getConnectionDrivers is returning member variable &apos;_connectionsDrivers&apos; at line 809.&lt;br/&gt;
It&apos;s probably typo, I think this variable name should be &apos;_connectionDrivers&apos;.&lt;/p&gt;
</description>
                <environment>symfony 1.4 / PHP 5.2.13 / CentOS5.4</environment>
            <key id="12018">DC-894</key>
            <summary>Typo in Doctrine_Manager::getConnectionDrivers()</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="akitaka">Akitaka Kohno</reporter>
                        <labels>
                    </labels>
                <created>Tue, 19 Oct 2010 23:59:44 +0000</created>
                <updated>Tue, 19 Oct 2010 23:59:44 +0000</updated>
                                    <version>1.2.3</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>1</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-879] MSSQL - missing function date_part() in Expression/Mssql.php [+patch]</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-879</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Missing function date_part() in Expression/Mssql.php. I don&apos;t know why the set of expressions is different for each driver. This makes it hard to develop database independent.&lt;/p&gt;</description>
                <environment></environment>
            <key id="11977">DC-879</key>
            <summary>MSSQL - missing function date_part() in Expression/Mssql.php [+patch]</summary>
                <type id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="enrico">Enrico Stahn</reporter>
                        <labels>
                    </labels>
                <created>Tue, 5 Oct 2010 04:34:09 +0000</created>
                <updated>Tue, 5 Oct 2010 04:50:00 +0000</updated>
                                    <version>1.2.2</version>
                <version>1.2.3</version>
                                <fixVersion>1.2.4</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-861] Make sure doctrine uses the right connection when creating a query from a table object</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-861</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Line# 1036&lt;br/&gt;
When using Table::createQuery, null is specified as the connection when calling Doctrine_Query::create() which results in using the default connection while the &quot;correct&quot; connection can be know ($this-&amp;gt;getConnection())&lt;/p&gt;

&lt;p&gt;here is the fix:&lt;/p&gt;

&lt;p&gt;&amp;#8212; a/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Table.php&lt;br/&gt;
+++ b/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Table.php&lt;br/&gt;
@@ -1033,7 +1033,7 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable&lt;/p&gt;

&lt;p&gt;         $class = $this-&amp;gt;getAttribute(Doctrine_Core::ATTR_QUERY_CLASS);&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;return Doctrine_Query::create(null, $class)&lt;br/&gt;
+        return Doctrine_Query::create($this-&amp;gt;getConnection(), $class)&lt;br/&gt;
             &lt;del&gt;&amp;gt;from($this&lt;/del&gt;&amp;gt;getComponentName() . $alias);&lt;br/&gt;
     }&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment>All</environment>
            <key id="11895">DC-861</key>
            <summary>Make sure doctrine uses the right connection when creating a query from a table object</summary>
                <type id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="nanux">Emmanuel Delescolle</reporter>
                        <labels>
                    </labels>
                <created>Wed, 8 Sep 2010 03:46:07 +0000</created>
                <updated>Wed, 8 Sep 2010 03:46:07 +0000</updated>
                                    <version>1.2.3</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-843] MSSQL - Equal-to Operator doesn&apos;t work with columns of type text in where condition [+patch]</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-843</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Example:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;Doctrine::getTable(&apos;Ticket_DCXXX2_Model&apos;)-&amp;gt;findByUsernameAndFoo(&apos;foo&apos;, &apos;bar&apos;);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;tt&gt;foo&lt;/tt&gt; is of type &quot;text&quot;. Doctrine generates &quot;&lt;tt&gt;where .... foo = &apos;bar&apos;&lt;/tt&gt;&quot;, but this will throw an mssql exception because you cant use the equal to operator in mssql for text and varchar types. Doctrine should consider this database related behavoir, shouldn&apos;t it?&lt;/p&gt;</description>
                <environment></environment>
            <key id="11831">DC-843</key>
            <summary>MSSQL - Equal-to Operator doesn&apos;t work with columns of type text in where condition [+patch]</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="enrico">Enrico Stahn</reporter>
                        <labels>
                    </labels>
                <created>Thu, 26 Aug 2010 11:16:51 +0000</created>
                <updated>Thu, 2 Sep 2010 08:21:23 +0000</updated>
                                    <version>1.2.2</version>
                <version>1.2.3</version>
                                <fixVersion>1.2.4</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="14091" author="enrico" created="Thu, 26 Aug 2010 11:20:59 +0000"  >&lt;p&gt;TestCase added &lt;a href=&quot;http://github.com/estahn/doctrine1/compare/master...DC-843&quot; class=&quot;external-link&quot;&gt;http://github.com/estahn/doctrine1/compare/master...DC-843&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="14114" author="enrico" created="Fri, 27 Aug 2010 11:23:57 +0000"  >&lt;p&gt;Patch added to github (see above)&lt;/p&gt;

&lt;p&gt;commit msg: &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-843&quot; title=&quot;MSSQL - Equal-to Operator doesn&amp;#39;t work with columns of type text in where condition [+patch]&quot;&gt;DC-843&lt;/a&gt; fix (TestCase need fix for &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-841&quot; title=&quot;Doctrine_Connection_Mssql::replaceBoundParamsWithInlineValuesInQuery regex failing to replace all &amp;#39;?&amp;#39; instances [patch+]&quot;&gt;DC-841&lt;/a&gt; to run successfully)&lt;/p&gt;</comment>
                    <comment id="14237" author="enrico" created="Thu, 2 Sep 2010 08:21:23 +0000"  >&lt;p&gt;I made a mistake with github, the updated branch can be found at&lt;br/&gt;
&lt;a href=&quot;http://github.com/estahn/doctrine1/tree/DC-843-2&quot; class=&quot;external-link&quot;&gt;http://github.com/estahn/doctrine1/tree/DC-843-2&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-975] Treat sql server error 2601 as Doctrine_Core::ERR_ALREADY_EXISTS</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-975</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;Patch attached to treat sql server error 2601 (Integrity constraint violation) as Doctrine_Core::ERR_ALREADY_EXISTS&lt;/p&gt;</description>
                <environment>Sql server</environment>
            <key id="12401">DC-975</key>
            <summary>Treat sql server error 2601 as Doctrine_Core::ERR_ALREADY_EXISTS</summary>
                <type id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="ben.davies">Ben Davies</reporter>
                        <labels>
                    </labels>
                <created>Thu, 17 Feb 2011 11:31:01 +0000</created>
                <updated>Thu, 17 Feb 2011 11:31:01 +0000</updated>
                                    <version>1.2.3</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                    <attachment id="10942" name="Doctrine_Connection_Mssql_Exception.patch" size="844" author="ben.davies" created="Thu, 17 Feb 2011 11:31:01 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-808] Doctrine_Connection_Statement-&gt;execute() Do not pass failing query to Doctrine_Connection-&gt;rethrowException()</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-808</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;When &lt;em&gt;Doctrine_Connection_Statement-&amp;gt;execute()&lt;/em&gt; fail on a query, Exception is rethrown by &lt;em&gt;Doctrine_Connection&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But the failing query is not passed to &lt;em&gt;rethrowException()&lt;/em&gt; as third parameter, which make debug very difficult.&lt;/p&gt;

&lt;p&gt;See attached patch file to correct this.&lt;/p&gt;</description>
                <environment></environment>
            <key id="11725">DC-808</key>
            <summary>Doctrine_Connection_Statement-&gt;execute() Do not pass failing query to Doctrine_Connection-&gt;rethrowException()</summary>
                <type id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="mars105">Alexandre Ravey</reporter>
                        <labels>
                    </labels>
                <created>Thu, 5 Aug 2010 05:22:47 +0000</created>
                <updated>Thu, 5 Aug 2010 05:22:47 +0000</updated>
                                    <version>1.2.2</version>
                                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                    <attachment id="10720" name="Doctrine_Connection_Statement.patch" size="433" author="mars105" created="Thu, 5 Aug 2010 05:22:47 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DC-840] MSSQL - strange behavior with multiple addWhere conditions and &quot;&gt;&quot; [+patch]</title>
                <link>http://www.doctrine-project.org/jira/browse/DC-840</link>
                <project id="10031" key="DC">Doctrine 1</project>
                        <description>&lt;p&gt;In the first example below the second parameter wasn&apos;t replaced by the given value. I tracked it down and i suppose it&apos;s because of the &quot;&amp;gt;&quot; sign. It&apos;s the same for &quot;&amp;lt;&quot;. Equal-Operator (=) works fine.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;        $q = Doctrine_Query::create()
            -&amp;gt;select(&apos;password, modified_at&apos;)
            -&amp;gt;from(&apos;Ticket_DCXXX_Model&apos;)
            -&amp;gt;andWhere(&apos;password = ?&apos;, &apos;abc&apos;)
            -&amp;gt;andWhere(&apos;modified_at &amp;gt; ?&apos;, &apos;2010-01-01&apos;)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-sql&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;SELECT&lt;/span&gt; [t].[id] AS [t__id], [t].[password] AS [t__password], [t].[modified_at] AS [t__modified_at]
&lt;span class=&quot;code-keyword&quot;&gt;FROM&lt;/span&gt; [ticket__d_c_x_x_x__model] [t]
&lt;span class=&quot;code-keyword&quot;&gt;WHERE&lt;/span&gt; ([t].[password] =  &apos;abc&apos; AND [t].[modified_at] &amp;gt; ?)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;        $q = Doctrine_Query::create()
            -&amp;gt;select(&apos;password, modified_at&apos;)
            -&amp;gt;from(&apos;Ticket_DCXXX_Model&apos;)
            -&amp;gt;andWhere(&apos;modified_at &amp;gt; ?&apos;, &apos;2010-01-01&apos;)
            -&amp;gt;andWhere(&apos;password = ?&apos;, &apos;abc&apos;)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-sql&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;SELECT&lt;/span&gt; [t].[id] AS [t__id], [t].[password] AS [t__password], [t].[modified_at] AS [t__modified_at]
&lt;span class=&quot;code-keyword&quot;&gt;FROM&lt;/span&gt; [ticket__d_c_x_x_x__model] [t]
&lt;span class=&quot;code-keyword&quot;&gt;WHERE&lt;/span&gt; ([t].[modified_at] &amp;gt;  &apos;2010-01-01&apos; AND [t].[password] =  &apos;abc&apos;)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
            <key id="11823">DC-840</key>
            <summary>MSSQL - strange behavior with multiple addWhere conditions and &quot;&gt;&quot; [+patch]</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="5" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/trivial.png">Trivial</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="enrico">Enrico Stahn</reporter>
                        <labels>
                    </labels>
                <created>Wed, 25 Aug 2010 11:33:42 +0000</created>
                <updated>Fri, 27 Aug 2010 11:57:19 +0000</updated>
                                    <version>1.2.2</version>
                <version>1.2.3</version>
                                <fixVersion>1.2.4</fixVersion>
                                <component>Connection</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="14066" author="enrico" created="Wed, 25 Aug 2010 11:49:02 +0000"  >&lt;p&gt;&lt;a href=&quot;http://github.com/estahn/doctrine1/compare/master...DC-840&quot; class=&quot;external-link&quot;&gt;http://github.com/estahn/doctrine1/compare/master...DC-840&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="14117" author="enrico" created="Fri, 27 Aug 2010 11:57:19 +0000"  >&lt;p&gt;see &lt;a href=&quot;http://www.doctrine-project.org/jira/browse/DC-841&quot; title=&quot;Doctrine_Connection_Mssql::replaceBoundParamsWithInlineValuesInQuery regex failing to replace all &amp;#39;?&amp;#39; instances [patch+]&quot;&gt;DC-841&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>
</channel>
</rss>