Doctrine Projecthttp://www.doctrine-project.org/jira/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+DDC+AND+fixVersion+%3D+%222.0.4%22+ORDER+BY+updated+DESC%2C+priority+DESC%2C+created+ASC
An XML representation of a search requesten-us6.2.3626015-04-2014RE: [DDC-1069] setParameter[s]() examples on DQL page uses ":" even though that is not supported
http://www.doctrine-project.org/jira/browse/DDC-1069?focusedCommentId=16858#comment-16858
Fri, 18 Nov 2011 13:20:13 +0000Christian S.
<p>You can find the same error in the <b>PHPDoc</b> of the methods <b>setParameter(...)</b> and <b>setParameters(..)</b> in class <b>Doctrine\ORM\QueryBuilder</b>.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
* &lt;code&gt;
* $qb = $em-&gt;createQueryBuilder()
* -&gt;select('u')
* -&gt;from('User', 'u')
* -&gt;where('u.id = :user_id')
* -&gt;setParameter(':user_id', 1);
* &lt;/code&gt;
</pre>
</div></div>
<p>It would be nice if this will be fixed, because it is confusing, if you look at the autocomplete notice of the IDEs.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=naitsirch">Christian S.</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1069">DDC-1069</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16858\#worklog-16858RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=16817#comment-16817
Mon, 14 Nov 2011 03:36:02 +0000Guilherme Blanco
<p>Improvement implemented in <a href="https://github.com/doctrine/doctrine2/commit/81cc6d9da83d217ea62bd467053fd9885d1083cd" class="external-link" rel="nofollow">https://github.com/doctrine/doctrine2/commit/81cc6d9da83d217ea62bd467053fd9885d1083cd</a></p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=guilhermeblanco">Guilherme Blanco</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16817\#worklog-16817RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=16744#comment-16744
Mon, 31 Oct 2011 19:06:46 +0000Benjamin Eberlei
<p>Result keys Will be implemented as part of <a href="http://www.doctrine-project.org/jira/browse/DDC-1424" title="Make order in DQL SELECT clause matter for hydration" class="issue-link" data-issue-key="DDC-1424"><del>DDC-1424</del></a></p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16744\#worklog-16744RE: [DDC-1079] Behavior of Doctrine 2 is not as defined by EBNF definition for SimpleSelectExpression
http://www.doctrine-project.org/jira/browse/DDC-1079?focusedCommentId=16723#comment-16723
Sat, 29 Oct 2011 10:19:29 +0000Benjamin Eberlei
<p>Some more stuff is fixed in regard to this in some lsat ocmmits.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1079">DDC-1079</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16723\#worklog-16723RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15816#comment-15816
Sun, 8 May 2011 18:27:32 +0000Daniel Alvarez Arribas
<p>Sorry for the late update.</p>
<p>I double checked that the effect is not caused by using the list construct on the result in application code.</p>
<p>For DQL queries of the following form:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
SELECT someEntityReference.someStringValuedField, someEntityReference
FROM \SomeEntity someEntityReference
</pre>
</div></div>
<p>the fields in the result rows will have got shuffled around as soon as the result is returned by Doctrine 2, i. e. before any list() function or the like gets called on it in application code.</p>
<p>Calling gettype() on the result elements, like:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
$result = $aQueryOfTheFormShownAbove-&gt;getResult();
$firstResultElement = reset($result);
foreach ($firstResultElement as $field) {
echo gettype($field) . <span class="code-quote">"\n"</span>;
}
</pre>
</div></div>
<p>will output:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
object
string
</pre>
</div></div>
<p>whereas the DQL query explicitly asked for a result of the form (string, object), not (object, string).</p>
<p>To my best knowledge, the foreach construct will rely only on the actual positioning regardless of the key values in the input array.</p>
<p>So the situation is just as I have previously described.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15816\#worklog-15816RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15707#comment-15707
Sun, 8 May 2011 17:44:13 +0000Daniel Alvarez Arribas
<p>Yes, that's exactly what I mean (ignoring the shifting side effect on the result of course).</p>
<p>It would be:</p>
<p>$A = reset($result);<br/>
$B = next($result);<br/>
$C = next($result);</p>
<p>And never, e. g.:</p>
<p>$C = reset($result);<br/>
$A = next($result);<br/>
$B = next($result);</p>
<p>If you'd rely on numeric indexes, it would be:</p>
<p>Basically: SELECT A, B, C -&gt; $A = $result<span class="error">&#91;0&#93;</span>, $B = $result<span class="error">&#91;1&#93;</span>, $C = $result<span class="error">&#91;2&#93;</span>.</p>
<p>Or: list ($A, $B, $C) = $result;</p>
<p>And never: SELECT A, B, C -&gt; $A = $result<span class="error">&#91;2&#93;</span>, $B = $result<span class="error">&#91;0&#93;</span>, $C = $result<span class="error">&#91;1&#93;</span>.</p>
<p>Or: list ($C, $A, $B) = $result;</p>
<p>Numeric indexing is, though, of course not guaranteed to correctly identify positioning under all circumstances due to the associative-table nature of PHP arrays. E. g. if you populate an array with non-continuous numeric keys, say array (3 = &gt; 'someValue', 5 = 'someOtherValue'), you end up with an array with numeric key 3 at position 0, where the key is clearly not suitable to identify the element's position. But provided you assign numeric keys to the elements in such a way that the numeric keys coincide with the element positions in the array (i. e. the element at position 0 has numeric key 0, and the element at position 1 has numeric key 1), then, of course, you could use numeric keys internally to identify element positions. Then again, you do not need to, the approach of using the de-facto element positions should be more fail-safe.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15707\#worklog-15707RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15708#comment-15708
Thu, 7 Apr 2011 07:18:30 +0000Daniel Alvarez Arribas
<p>Which reminds me... I will have to double-check that it is not the list() calls I do on the result that are screwing things up.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15708\#worklog-15708RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15704#comment-15704
Wed, 6 Apr 2011 17:44:07 +0000Benjamin Eberlei
<p>Do you mean the order regardless of keys?</p>
<p>Say SELECT A B C=&gt; $a = array_shift($result); $b = array_shift($result); $c = array_shift($result) ?</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15704\#worklog-15704RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15702#comment-15702
Wed, 6 Apr 2011 17:17:09 +0000Daniel Alvarez Arribas
<p>I changed the issue type to "improvement" to not cause offence. The recent discussion was clearly heading in the wrong direction.</p>
<p>Seriously, if the notion of "index 0" has nothing to do with numerical indexing, I don't know what does. The statements "As long as other positions are permissible, I would rather have the element stay at the exact position declared, and not be shuffled around." and "From what I would expect, I would simply propose to always keep the ordering of fields in the result just as the user specified it" are, to me, as clear as it gets about desiring the described characteristic.</p>
<p>I certainly do not mean any offense. All I want is provide you with feedback. Of course, this is not always possible without voicing a different opinion. Issues are, by nature, mostly things that are wanted differently than they are. As I said right up-front, I did and do not mean to report this as a classical bug, because I knew from the documentation that it was intended, but rather as a severely couterintuitive behaviour, which I still insist it is. I did not enter it as an explicit feature request here, because maintaining the ordering specified is already implemented (in case of non-"mixed" results), and the solution of this issue would rather be to simply always maintain the ordering given, and getting rid of a special case of deliberately overriding the given order for "mixed" results. So I could not see the new feature here. Now, considering it, I think "improvement" nails it.</p>
<p>Getting back to what I originally wished would work differently, I wish that selecting the columns (A, B, C) would return result rows of the form (A, B, C) always, and under no circumstances of the form (A, C, B), (C A B) or (B A C). Column names would be just that, and a column having no name would still be rendered at the column position specified by the ordering in the select expression.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15702\#worklog-15702RE: [DDC-1040] Using the same named parameter at various places within a DQL query will result in a PHP fatal error
http://www.doctrine-project.org/jira/browse/DDC-1040?focusedCommentId=15692#comment-15692
Tue, 5 Apr 2011 18:24:27 +0000Daniel Alvarez Arribas
<p>Great, thanks.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1040">DDC-1040</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15692\#worklog-15692RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15685#comment-15685
Tue, 5 Apr 2011 07:33:05 +0000Benjamin Eberlei
<p>It seems that everything that does not work as you want is broken. However there is a perfectly legitmate way to work with the hydrator and youre bloating a problem that is just not there, since DQL is primarily about fetching Objects the numerical fetch mechanism is not nearly as important as in the RMDBS world.</p>
<p>Quoting a sentence from the docs that has nothing to do with numerical fetching as ticket title, saying nothing about that you want this as a feature in the ticket description imho doesnt constitute "this is what is this issue about", i.e. a feature request about adding a numerical fetch mode. You can add a feature request ticket for this and I'll look into it.</p>
<p>Additionally there is a consistent way how Doctrine names "unnamed" columns, its was just not documented good enough yet.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15685\#worklog-15685RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15682#comment-15682
Tue, 5 Apr 2011 05:22:57 +0000Daniel Alvarez Arribas
<p>Not only that, what bugs me primarily is that it <b>reorders</b> the resulting columns at its own liking.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15682\#worklog-15682RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15681#comment-15681
Tue, 5 Apr 2011 05:21:48 +0000Daniel Alvarez Arribas
<p>Well, that's what this issue is all about: That a concept of numeric fetching would be highly desirable. That there currently is no such concept is obvious.</p>
<p>In case of the db drivers, there is almost always an option to simply return the row as-is, using numeric indexing, e. g. mysql_fetch_row, or pg_fetch_row. This avoids any unwanted merging of columns by name. If the user chooses the *_fetch_assoc functions instead, name clashes are to be expected. But you do not have to, by design, contrary to Doctrine 2, where this IMO highly broken behaviour is currently inherent.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15681\#worklog-15681RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15676#comment-15676
Mon, 4 Apr 2011 06:17:23 +0000Benjamin Eberlei
<p>Well yes, but using mysql_fetch_assoc/pg_fetch_assoc you will getone field again of course. ORM has no concept of numeric fetching at least not with the current hydrators.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15676\#worklog-15676RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15674#comment-15674
Mon, 4 Apr 2011 05:29:06 +0000Daniel Alvarez Arribas
<p>If I select the same field multiple times in SQL, I get multiple elements per row in the result set. That's an of-course.</p>
<p>Here's the result from PostgreSQL 8.4.7</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
NameOfMyDatabase=# select dbID, dbID From WPOMOrder limit 1;
dbid | dbid
------+------
363 | 363
(1 row)
</pre>
</div></div>
<p>And here's the result from MySQL Server 5.0</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mysql&gt; select dbID, dbID From WPOMOrder limit 1;
+------+------+
| dbID | dbID |
+------+------+
| 363 | 363 |
+------+------+
1 row in set (0.00 sec)
</pre>
</div></div>
<p>There is no intuitiveness whatsoever about the merge of multiple columns into a single one, neither in SQL, nor by any reasonable common-sense standard. If I specify it twice, I get it twice. And that's the only thing to expect, having explicitly defined it in the query. Now, imagine a user has to "register with the configuration" or "write his own "hydrator""...</p>
<p>Even using Aliasing, the result will still have two columns:</p>
<p>Again, PostgreSQL 8.4.7:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
NameOfMyDatabase=# select dbID as A, dbID as A From WPOMOrder limit 1;
a | a
-----+-----
363 | 363
(1 row)
</pre>
</div></div>
<p>and here's the result from MySQL Server 5.0:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mysql&gt; select dbID as a, dbID as a From WPOMOrder limit 1;
+-----+-----+
| a | a |
+-----+-----+
| 363 | 363 |
+-----+-----+
1 row in set (0.00 sec)
</pre>
</div></div>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15674\#worklog-15674RE: [DDC-1040] Using the same named parameter at various places within a DQL query will result in a PHP fatal error
http://www.doctrine-project.org/jira/browse/DDC-1040?focusedCommentId=15672#comment-15672
Sun, 3 Apr 2011 17:09:13 +0000Benjamin Eberlei
<p>Fixed.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1040">DDC-1040</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15672\#worklog-15672RE: [DDC-1093] EntityManager "ExpressionBuilder" instead of "Query\Expr"
http://www.doctrine-project.org/jira/browse/DDC-1093?focusedCommentId=15668#comment-15668
Sun, 3 Apr 2011 14:30:20 +0000Benjamin Eberlei
<p>Fixed, you can use QueryBuilder-&gt;expr() aswell btw, which type hints this correctly.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1093">DDC-1093</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1093?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15668\#worklog-15668RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15665#comment-15665
Sun, 3 Apr 2011 14:18:39 +0000Benjamin Eberlei
<p>Clarified in the docs.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15665\#worklog-15665RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15664#comment-15664
Sun, 3 Apr 2011 12:59:24 +0000Benjamin Eberlei
<p>1. The example with a.somefield, a.somefield, a.somefield breaks down with standard SQL aswell leading to exactly the same result, just one "somefield". This is why i would expect everyone coming from an SQL background working with scalar fields to alias everything, which ends with you getting all named fields and a zero key for the object.</p>
<p>2. You can write your own hydrator if you wish to handle the multiple rows per object in the from statement. In that hydrator you could even handle positioning differently (I don't know if thats possible with the current information though).</p>
<p>You can register it with the Configuration and pass its name to "getResult()" on any AbstractQuery. The default hydration has to stay this way obviously for BC reasons. Only negative thing about writing your own hydrator is that you have to copy paste lots of code because all the logic is inlined into one big method for performance reasons.</p>
<p>I will update the docs about mixed results as they clearly lack detail and statements with regard to the conventions.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15664\#worklog-15664RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15663#comment-15663
Sun, 3 Apr 2011 12:32:10 +0000Daniel Alvarez Arribas
<p>Multiple rows... geez, I did not think it would get any worse <img class="emoticon" src="http://www.doctrine-project.org/jira/images/icons/emoticons/wink.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>
<p>In a word: counterintuitive. I am getting what you are explaining, nevertheless I perceive it as a way-too-complicated approach, without recompensating the user with advantages.</p>
<p>I would suggest not relying on names at all for positioning. Names should be names and positions should be positions. In fact, names are not even unique. </p>
<p>Consider this query:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
SELECT A.somefield, A.somefield, A.somefield FROM \A
</pre>
</div></div>
<p>I would expect it to return any number of rows with three elements each. It does not. It returns any number of rows with only one element each. That's because the implicit "names" clash internally, and are aliased to the same value, which apparently is not only used to identify the content, but also the whole output field. So in fact the query shown above is equivalent to</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
SELECT A.somefield FROM \A
</pre>
</div></div>
<p>which is clearly not what the user asked for. Maybe it is a matter of "hydration", but in this case it would be more straightforward to give the fields unique indexes automatically like "somefield2", "somefield3".</p>
<p>I run into peculiarities like this one several times a week with Doctrine 2. I am not claiming that there is anything buggy about Doctrine 2 in this case. But I definitely have to say Doctrine 2 could behave much more intuitively. Even if it is intended behaviour, it is a nightmare to understand, and it is not something anyone would come up with intuitively by himself.</p>
<p>In the original query example, I did not ask Doctrine to change the order specified, and would never ever ask for the result being split up into multiple rows. From a user perspective, the behavior is in no way desirable.</p>
<p>From what I would expect, I would simply propose to always keep the ordering of fields in the result just as the user specified it, and always return one row for one match. I do not see any advantages in doing it any different, if not for purely technical reasons related to the existing implementation. What can I say - embrace change <img class="emoticon" src="http://www.doctrine-project.org/jira/images/icons/emoticons/wink.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15663\#worklog-15663RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15662#comment-15662
Sun, 3 Apr 2011 11:26:00 +0000Benjamin Eberlei
<p>Its a requirement to put it on 0 the way how the hydration algorithm works. You would have to add some additional variables to the ResultSetMapping to save the name of an alias or the order with regards to scalar values, which adds additional variables that need to be cached and serialized/unserialized and going by a convention is just easier here.</p>
<p>Scalar expressions and literals can use AS name, and start by a scalar counter of 1 per the requirement that objects start at 0. Multiple objects on the main level come in multiple result rows, so there is no clash possible here.</p>
<p>This is quite different of how sql works with regards to conventions, but fetching an alias which is actually a set of many columns required this shift in conventions in our opinion.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15662\#worklog-15662RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15661#comment-15661
Sun, 3 Apr 2011 10:11:32 +0000Daniel Alvarez Arribas
<p>To support my point, Scalar expressions or Literals do not have a "name" either.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15661\#worklog-15661RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15660#comment-15660
Sun, 3 Apr 2011 10:10:15 +0000Daniel Alvarez Arribas
<p>The confusion is due to the total deviation from regular query semantics. The behaviour to be expected is that when selecting Elements (A, B, C), A is listed first in the result rows, B comes second, and then C. Now, in case of mixed results, it can end up (A, C, B), (C, A, B), or (B, A, C), depending on the types of A, B, and C. Now, tell me this isn' confusing.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15660\#worklog-15660RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15659#comment-15659
Sun, 3 Apr 2011 10:06:50 +0000Daniel Alvarez Arribas
<p>I would expect this to work using regular numeric indexing. If Doctrine can put something at position 0, it should as well be able to put it at position 3. I do not see where this requires string keys.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15659\#worklog-15659RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15658#comment-15658
Sun, 3 Apr 2011 09:53:15 +0000Benjamin Eberlei
<p>I don't understand your confusion with this. How would you expect it to work? Scalar values have a name, so they are named. Objects dont have a "name" or alias and therefore key-based. Its just an convention.</p>
<p>Yes the sentence may be formulated strangely, but its still stating how it works.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15658\#worklog-15658RE: [DDC-1096] "You may have observed that in a mixed result, the object always ends up on index 0 of a result row."
http://www.doctrine-project.org/jira/browse/DDC-1096?focusedCommentId=15657#comment-15657
Sun, 3 Apr 2011 09:40:56 +0000Daniel Alvarez Arribas
<p>And: Is the entry in the manual bad humor? I mean the way the DQL reference puts it ("You may have obverved...") - it even assumes it already took the user some experimentation. Really funny. I wish I had the time back I spent debugging.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1096">DDC-1096</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15657\#worklog-15657RE: [DDC-1087] Repository::findBy and Repository::findOneBy NULL invalid query
http://www.doctrine-project.org/jira/browse/DDC-1087?focusedCommentId=15655#comment-15655
Sun, 3 Apr 2011 03:12:31 +0000Benjamin Eberlei
<p>Fixed</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1087">DDC-1087</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15655\#worklog-15655RE: [DDC-1069] setParameter[s]() examples on DQL page uses ":" even though that is not supported
http://www.doctrine-project.org/jira/browse/DDC-1069?focusedCommentId=15625#comment-15625
Tue, 29 Mar 2011 13:38:19 +0000Benjamin Eberlei
<p>Resolved</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1069">DDC-1069</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15625\#worklog-15625RE: [DDC-1077] Specifying a constant value in the SELECT clause causes parser error
http://www.doctrine-project.org/jira/browse/DDC-1077?focusedCommentId=15597#comment-15597
Sun, 27 Mar 2011 15:18:05 +0000Benjamin Eberlei
<p>Fixed</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1077">DDC-1077</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15597\#worklog-15597RE: [DDC-1079] Behavior of Doctrine 2 is not as defined by EBNF definition for SimpleSelectExpression
http://www.doctrine-project.org/jira/browse/DDC-1079?focusedCommentId=15595#comment-15595
Sun, 27 Mar 2011 08:09:10 +0000Benjamin Eberlei
<p>Fixed, didn't work because of a shortcut that was implemented in SimpleSelectExpression. I removed that now and fixed the problem the shortcut was trying to fix at a better location.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1079">DDC-1079</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15595\#worklog-15595RE: [DDC-1054] Lazy loading problem
http://www.doctrine-project.org/jira/browse/DDC-1054?focusedCommentId=15584#comment-15584
Fri, 25 Mar 2011 09:57:24 +0000victor Velkov
<p>After i updated to the latest version the bug was fixed. So sorry for the bother. Looks like it was connected with the problem of ticket <a href="http://www.doctrine-project.org/jira/browse/DDC-992" title="ManyToMany self referencing association bug with lazy loading" class="issue-link" data-issue-key="DDC-992"><del>DDC-992</del></a>. <br/>
Thanks for the great work <img class="emoticon" src="http://www.doctrine-project.org/jira/images/icons/emoticons/smile.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=vigor_bg">victor Velkov</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1054">DDC-1054</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15584\#worklog-15584RE: [DDC-1069] setParameter[s]() examples on DQL page uses ":" even though that is not supported
http://www.doctrine-project.org/jira/browse/DDC-1069?focusedCommentId=15569#comment-15569
Tue, 22 Mar 2011 05:35:25 +0000André R.
<p>Looks good!</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=anderom">André R.</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1069">DDC-1069</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15569\#worklog-15569RE: [DDC-1069] setParameter[s]() examples on DQL page uses ":" even though that is not supported
http://www.doctrine-project.org/jira/browse/DDC-1069?focusedCommentId=15568#comment-15568
Mon, 21 Mar 2011 22:05:35 +0000Michael Ridgway
<p>I posted a simple patch for this at <a href="https://github.com/doctrine/orm-documentation/pull/20" class="external-link" rel="nofollow">https://github.com/doctrine/orm-documentation/pull/20</a></p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=mridgway">Michael Ridgway</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1069">DDC-1069</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15568\#worklog-15568RE: [DDC-992] ManyToMany self referencing association bug with lazy loading
http://www.doctrine-project.org/jira/browse/DDC-992?focusedCommentId=15540#comment-15540
Sun, 20 Mar 2011 12:16:00 +0000Benjamin Eberlei
<p>Fixed, merged into 2.0.x branch.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-992">DDC-992</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15540\#worklog-15540RE: [DDC-1052] Class table inheritance + OptimisticLocking issue
http://www.doctrine-project.org/jira/browse/DDC-1052?focusedCommentId=15535#comment-15535
Sun, 20 Mar 2011 10:24:20 +0000Gustavo Falco
<p>Great! thanks a lot.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=comfortablynumb">Gustavo Falco</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1052">DDC-1052</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15535\#worklog-15535RE: [DDC-1053] GROUP BY crashes Doctrine 2
http://www.doctrine-project.org/jira/browse/DDC-1053?focusedCommentId=15534#comment-15534
Sun, 20 Mar 2011 09:11:17 +0000Benjamin Eberlei
<p>Fixed, group by identification variable is now supported. Merged into 2.0.x</p>
<p>Added follow up task for 3.0 cleanup <a href="http://www.doctrine-project.org/jira/browse/DDC-1073" title="Refactor SqlWalker::walkGroupByItem not to use PathExpression anymore but accept strings (identification variable) aswell" class="issue-link" data-issue-key="DDC-1073"><del>DDC-1073</del></a></p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1053">DDC-1053</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15534\#worklog-15534RE: [DDC-1052] Class table inheritance + OptimisticLocking issue
http://www.doctrine-project.org/jira/browse/DDC-1052?focusedCommentId=15533#comment-15533
Sun, 20 Mar 2011 08:09:40 +0000Benjamin Eberlei
<p>Fixed, merged into 2.0.x branch</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1052">DDC-1052</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15533\#worklog-15533RE: [DDC-1054] Lazy loading problem
http://www.doctrine-project.org/jira/browse/DDC-1054?focusedCommentId=15532#comment-15532
Sun, 20 Mar 2011 08:01:03 +0000Benjamin Eberlei
<p>In your use-case do you execute Q1 and then Q2 after each other in the same request? I just don't get why in your case a query with a Refresh Hint is executed.</p>
<p>The code is not very helpful as i cannot execute it out of the box. I would prefer a PHPUnit test-case with one of the Doctrine2 Test Models for such a complex issue.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1054">DDC-1054</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15532\#worklog-15532RE: [DDC-1068] ClassMetadata should use Class name from reflection
http://www.doctrine-project.org/jira/browse/DDC-1068?focusedCommentId=15530#comment-15530
Sun, 20 Mar 2011 07:41:18 +0000Benjamin Eberlei
<p>Fixed</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1068">DDC-1068</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15530\#worklog-15530RE: [DDC-1070] AbstractQuery::iterate() do not use $hydrationMode argument
http://www.doctrine-project.org/jira/browse/DDC-1070?focusedCommentId=15528#comment-15528
Sun, 20 Mar 2011 07:25:54 +0000Benjamin Eberlei
<p>Fixed, merged into 2.0.x branch.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1070">DDC-1070</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15528\#worklog-15528RE: [DDC-1054] Lazy loading problem
http://www.doctrine-project.org/jira/browse/DDC-1054?focusedCommentId=15458#comment-15458
Sat, 5 Mar 2011 07:12:23 +0000victor Velkov
<p>well that is why i have attached the php file. Inside you can see my entities and the 2 queries whit which i have the problem. So in general when i call entity and use eager join to get related entity. And then call that related entity on it's own the lazy loading is not working.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=vigor_bg">victor Velkov</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1054">DDC-1054</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15458\#worklog-15458RE: [DDC-1054] Lazy loading problem
http://www.doctrine-project.org/jira/browse/DDC-1054?focusedCommentId=15452#comment-15452
Fri, 4 Mar 2011 16:30:52 +0000Benjamin Eberlei
<p>"I am having a problem". </p>
<p>Can you describe a little bit more what your problem actually is?</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1054">DDC-1054</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15452\#worklog-15452RE: [DDC-1052] Class table inheritance + OptimisticLocking issue
http://www.doctrine-project.org/jira/browse/DDC-1052?focusedCommentId=15436#comment-15436
Wed, 2 Mar 2011 11:39:46 +0000Gustavo Falco
<p>Thanks for your answer Benjamin! your change indeed solved the problem <img class="emoticon" src="http://www.doctrine-project.org/jira/images/icons/emoticons/smile.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> But the file wasn't JoinedEntityPersister (it doesn't exist at least in the latest doctrine copy from "git://github.com/doctrine/doctrine2.git doctrine"). It was on the file BasicEntityPersister.php, located in the same dir you mention.</p>
<p>About my model, I didn't show the entire model because it didn't make sense for this issue. But one reason I have for this hierarchy is that I have lots of models that need to be related with all the instances of my model "Entity". For instance, all Users, Contacts, Leads, Customers and Suppliers need to have Activities, and I need to provide a way to select one between all these models when you, for example, create an Activity. Then I have a model "Opportunity" that needs to be associated only with BusinessPartner's. And, lastly, I have a couple of models that need to be associated with all my "Element"s. BaseElement is a mapped superclass that has only the basic fields for ALL my models (related to Element or not), that have in common all the entities in my model (don't confuse with the model "Entity". Yes, it's a little bit confuse but I couldn't think in another name to relate People and Business Partners <img class="emoticon" src="http://www.doctrine-project.org/jira/images/icons/emoticons/tongue.gif" height="16" width="16" align="absmiddle" alt="" border="0"/>).</p>
<p>The other point: People can't be a customer or a lead. My requirements say that only business partners can be customers, leads or suppliers. Business partners are companies. They can't be individuals. Business partners can have contacts. And if a user needs to "transform" a lead to a customer, it can create a customer from a lead, and have a reference back to it. I thought I need them to have them separated because this won't be only a CRM. It's going to be a sales system too (I don't know if this is the correct english term for this type of system), so I need to have them in two different entities for a couple of reasons. If I only have a status that describes a customer or a lead, I can't, for example, enforce some business rules at database level I'll have (in a DB portable way at least that I know of). I need to enforce, if it's possible and portable, this type of business rules because there will be other apps that will interact with my DB. For instance, if I need to associate an invoice to a lead_or_customer, how can I enforce this on the DB if I only have a status field that determines if it's a lead or a contact? Separating the entities is the only way I could think of to solve this type of problems. Maybe is not the best way. I'll need to rethink the trade-offs of this decision. Thanks for pointing this out <img class="emoticon" src="http://www.doctrine-project.org/jira/images/icons/emoticons/smile.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>
<p>For now it's a CRM. But it's only the beginning. It will have lots of additional models when I'll add modules for a sales system, voIP vinculation, etc. That's why I tried to make a reusable tree on my model. I know the performance risks having too many entities related to each other, having lots of joins and one table in common that will be always touched could be a bottleneck if there are lots of users doing lots of operations. But I'm in the hurry and I need to save development time. I'm the only person that will work on this app, and I have only 6 months from scratch to finish the CRM, which is a really big app in very little time for me (having to work on a pretty big ACL module and a Workflow module too). Inheritance gave me a DRY way in lots of aspects of my app. I can sacrifice some performance to save development time. Then I can optimize if I need it <img class="emoticon" src="http://www.doctrine-project.org/jira/images/icons/emoticons/smile.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>
<p>THANKS A LOT for your fix and for quickly look this issue! and for your comments too. I'm not an expert yet and constructive comments like these help me to rethink some points on my decisions.</p>
<p>Best regards.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=comfortablynumb">Gustavo Falco</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1052">DDC-1052</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15436\#worklog-15436RE: [DDC-1054] Lazy loading problem
http://www.doctrine-project.org/jira/browse/DDC-1054?focusedCommentId=15430#comment-15430
Wed, 2 Mar 2011 03:41:26 +0000victor Velkov
<p>There is a fix that i made to fix the problem, but i am not sure how it will reflect on the performance. But as far as i can see and understand the logic i don't see where else it could be. </p>
<p>in the class ObjectHydrator in privet function _initRelatedCollection <br/>
on line 164 you make a check if collection is set to be refreshed or it is fetched but not initialized.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
<span class="code-keyword">else</span> <span class="code-keyword">if</span> (isset($<span class="code-keyword">this</span>-&gt;_hints[Query::HINT_REFRESH]) ||
isset($<span class="code-keyword">this</span>-&gt;_hints['fetched'][$class-&gt;name][$fieldName]) &amp;&amp;
! $value-&gt;isInitialized()) {
<span class="code-comment">// Is already PersistentCollection, but either REFRESH or FETCH-JOIN and UNINITIALIZED!
</span> $value-&gt;setDirty(<span class="code-keyword">false</span>);
$value-&gt;setInitialized(<span class="code-keyword">true</span>);
$value-&gt;unwrap()-&gt;clear();
$<span class="code-keyword">this</span>-&gt;_initializedCollections[$oid . $fieldName] = $value;
}
</pre>
</div></div>
<p>The problem that i see here is in the second part when the collection is not initialized and i think that is the reason for the problem so my solution si</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
<span class="code-keyword">else</span> <span class="code-keyword">if</span> (isset($<span class="code-keyword">this</span>-&gt;_hints[Query::HINT_REFRESH]) ||
isset($<span class="code-keyword">this</span>-&gt;_hints['fetched'][$class-&gt;name][$fieldName]) &amp;&amp;
! $value-&gt;isInitialized()) {
<span class="code-comment">// Is already PersistentCollection, but either REFRESH or FETCH-JOIN and UNINITIALIZED!
</span> $value-&gt;setDirty(<span class="code-keyword">false</span>);
/**
* $value-&gt;setInitialized(<span class="code-keyword">true</span>);
* $value-&gt;unwrap()-&gt;clear();
* Fix by Victor on 02/03/2011
* With only that code the collection doesn't get initialized
*/
$value-&gt;initialize();
$<span class="code-keyword">this</span>-&gt;_initializedCollections[$oid . $fieldName] = $value;
}
</pre>
</div></div>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=vigor_bg">victor Velkov</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1054">DDC-1054</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15430\#worklog-15430RE: [DDC-1053] GROUP BY crashes Doctrine 2
http://www.doctrine-project.org/jira/browse/DDC-1053?focusedCommentId=15426#comment-15426
Tue, 1 Mar 2011 18:30:21 +0000Daniel Alvarez Arribas
<p>The query shown above could as well be invalid, because it groups the results by something which is not in the select clause. I do not know if this should be a requirement, though, since I can think of use cases where you would want to group by something, but still not select it. Anyway, this query will work:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
SELECT wpomOrder.documentDate
FROM \persistentData\model\<span class="code-keyword">import</span>\webProductionOrderManager\WPOMOrder wpomOrder
GROUP BY wpomOrder.documentDate
</pre>
</div></div>
<p>Note that it groups the results by the expression used in the select clause rather than just the entity like in the example above.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1053">DDC-1053</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15426\#worklog-15426RE: [DDC-1052] Class table inheritance + OptimisticLocking issue
http://www.doctrine-project.org/jira/browse/DDC-1052?focusedCommentId=15422#comment-15422
Tue, 1 Mar 2011 17:38:27 +0000Benjamin Eberlei
<p>Can you try to change lib/Doctrine/ORM/Persisters/JoinedEntityPersister.php line 368</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
<span class="code-keyword">if</span> ($<span class="code-keyword">this</span>-&gt;_class-&gt;isVersioned &amp;&amp; ! $result) {
</pre>
</div></div>
<p>to</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
<span class="code-keyword">if</span> ($versioned &amp;&amp; ! $result) {
</pre>
</div></div>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1052">DDC-1052</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15422\#worklog-15422RE: [DDC-1052] Class table inheritance + OptimisticLocking issue
http://www.doctrine-project.org/jira/browse/DDC-1052?focusedCommentId=15421#comment-15421
Tue, 1 Mar 2011 17:36:21 +0000Benjamin Eberlei
<p>Can you post the stack trace of the optimistic version exception?</p>
<p>In general This inheritance hierachy scares the hell out of me, why do you need 5 levels of inheritance? Cant you just drop BaseElement, element and Entity into one? Plus this model really fails What happens if a person moves from a lead to customer or contact or back? </p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1052">DDC-1052</a>)</td>
</tr>
<tr>
<td>Edited by:</td>
<td><a href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a></td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15421\#worklog-15421RE: [DDC-1040] Using the same named parameter at various places within a DQL query will result in a PHP fatal error
http://www.doctrine-project.org/jira/browse/DDC-1040?focusedCommentId=15397#comment-15397
Sat, 26 Feb 2011 14:17:06 +0000Daniel Alvarez Arribas
<p>I tried to reduce the non-working query as much as possible to get a schematic idea of what provokes the error.</p>
<p>It seems that queries like this one will break:</p>
<p>{{$doctrineQuery = $doctrineEntityManager-&gt;createQuery('SELECT a<br/>
FROM \persistentData\model\import\A a,<br/>
WHERE a.a = :anEntityInstance<br/>
AND a.b = :anEntityInstance<br/>
AND a.c = :aString');</p>
<p>$doctrineQuery-&gt;setParameter('anEntityInstance', $anEntityInstance); // Whatever entity instance<br/>
$doctrineQuery-&gt;setParameter('aString', $aString); // Some string-valued variable</p>
<p>$doctrineQuery-&gt;getResult();}}</p>
<p>Note that the first argument is an entity instance, and the second one a string. Both are non-null.</p>
<p>This gives:</p>
<p>Warning: array_combine(): Both parameters should have an equal number of elements in /var/www/invoiceCreator/src/thirdPartyComponents/doctrine/Doctrine/ORM/Query.php on line 252 Fatal error: Unsupported operand types in /var/www/invoiceCreator/src/thirdPartyComponents/doctrine/Doctrine/ORM/Query.php on line 252</p>
<p>This is a basic form of a working scenario (all parameters have unique names):</p>
<p>{{$doctrineQuery = $doctrineEntityManager-&gt;createQuery('SELECT a<br/>
FROM \persistentData\model\import\A a,<br/>
WHERE a.a = :anEntityInstance1<br/>
AND a.b = :anEntityInstance2<br/>
AND a.c = :aString');</p>
<p>$doctrineQuery-&gt;setParameter('anEntityInstance1', $anEntityInstance); // Whatever entity instance<br/>
$doctrineQuery-&gt;setParameter('anEntityInstance2', $anEntityInstance); // Whatever entity instance<br/>
$doctrineQuery-&gt;setParameter('aString', $aString); // Some string-valued variable</p>
<p>$doctrineQuery-&gt;getResult();}}</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1040">DDC-1040</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15397\#worklog-15397RE: [DDC-1040] Using the same named parameter at various places within a DQL query will result in a PHP fatal error
http://www.doctrine-project.org/jira/browse/DDC-1040?focusedCommentId=15393#comment-15393
Sat, 26 Feb 2011 10:31:20 +0000Daniel Alvarez Arribas
<p>OK, I will see what I can do. I will prepare an example of a working scenario and a non-working scenario, and let you know.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1040">DDC-1040</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15393\#worklog-15393RE: [DDC-1040] Using the same named parameter at various places within a DQL query will result in a PHP fatal error
http://www.doctrine-project.org/jira/browse/DDC-1040?focusedCommentId=15389#comment-15389
Sat, 26 Feb 2011 07:33:46 +0000Benjamin Eberlei
<p>Works for me, see patch attached.</p>
<p>The error occuring to you is not related to named parameters but to objects as parameters. Can you give a reproducable test-case to fix this?</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1040">DDC-1040</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15389\#worklog-15389RE: [DDC-1040] Using the same named parameter at various places within a DQL query will result in a PHP fatal error
http://www.doctrine-project.org/jira/browse/DDC-1040?focusedCommentId=15362#comment-15362
Mon, 21 Feb 2011 17:58:33 +0000Daniel Alvarez Arribas
<p>Currently, I automatically post-process all queries so that all parameters are assigned new (unique) names. This way, even the multiple replicated subqueries within the same DQL query will end up having unique parameter names. While this works, it is clumsy as a general approach.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=dalvarez">Daniel Alvarez Arribas</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-1040">DDC-1040</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15362\#worklog-15362RE: [DDC-992] ManyToMany self referencing association bug with lazy loading
http://www.doctrine-project.org/jira/browse/DDC-992?focusedCommentId=15165#comment-15165
Sun, 23 Jan 2011 08:32:45 +0000victor Velkov
<p>Ok thanks <img class="emoticon" src="http://www.doctrine-project.org/jira/images/icons/emoticons/smile.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=vigor_bg">victor Velkov</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-992">DDC-992</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15165\#worklog-15165RE: [DDC-992] ManyToMany self referencing association bug with lazy loading
http://www.doctrine-project.org/jira/browse/DDC-992?focusedCommentId=15163#comment-15163
Sun, 23 Jan 2011 07:50:11 +0000Benjamin Eberlei
<p>There is a simple workaround if you rename the "roleID" from the join table to something else, childRoleID for example. This should work for now. I am looking into a way to fix this issue.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=beberlei">Benjamin Eberlei</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-992">DDC-992</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15163\#worklog-15163RE: [DDC-992] ManyToMany self referencing association bug with lazy loading
http://www.doctrine-project.org/jira/browse/DDC-992?focusedCommentId=15150#comment-15150
Wed, 19 Jan 2011 09:25:57 +0000victor Velkov
<p>The solution that I found is in the class BasicEntityPersister on line 1123 we have</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
$conditionSql .= $<span class="code-keyword">this</span>-&gt;_getSQLTableAlias($<span class="code-keyword">this</span>-&gt;_class-&gt;name) . '.';
</pre>
</div></div>
<p>and i replace it with </p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
<span class="code-keyword">if</span> ($assoc !== <span class="code-keyword">null</span>
&amp;&amp; $assoc['targetEntity'] == $assoc['sourceEntity']
&amp;&amp; $assoc['type'] == ClassMetadata::MANY_TO_MANY) {
$owningAssoc = $assoc['isOwningSide'] ? $assoc : $<span class="code-keyword">this</span>-&gt;_em-&gt;getClassMetadata($assoc['targetEntity'])
-&gt;associationMappings[$assoc['mappedBy']];
$conditionSql .= $<span class="code-keyword">this</span>-&gt;_class-&gt;getQuotedJoinTableName($owningAssoc, $<span class="code-keyword">this</span>-&gt;_platform) . '.';
} <span class="code-keyword">else</span> {
$conditionSql .= $<span class="code-keyword">this</span>-&gt;_getSQLTableAlias($<span class="code-keyword">this</span>-&gt;_class-&gt;name) . '.';
}
</pre>
</div></div>
<p>I am not sure if that is the correct answer but as far as i have tested it doesn't mess up with the normal many to many association via join table.</p>
<br/>
<br/>
<table>
<tr>
<td>Author:</td>
<td><a
href="http://www.doctrine-project.org/jira/secure/ViewProfile.jspa?name=vigor_bg">victor Velkov</a>
(<a href="http://www.doctrine-project.org/jira/browse/DDC-992">DDC-992</a>)</td>
</tr>
</table>
http://www.doctrine-project.org/jira/browse/DDC-992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15150\#worklog-15150