Xenia,
I saw your commit - thanks, and congrats on your first Cayenne commit in the
new role :-)
A few notes:
1. We log all fixed Jiras under docs/doc/src/main/resources/RELEASE-NOTES.txt .
Once this is done, you can go ahead and close the Jira.
2. Since we support 2 Cayenne branches - 3.0 and 3.1 (== trunk), all fixes to
3.0 should also be cloned to trunk, so that they do not disappear from the
future releases.
Cheers,
Andrus
On Oct 9, 2010, at 11:51 PM, Andrus Adamchik wrote:
> Hi Xenia,
>
> Thanks for looking into this. I reviewed the patch - looks correct to me (the
> unit test fails with an error before changes to SelectTranslator, and passes
> after doing the join stack reset), so please feel free to use your new
> committer powers to apply it. A few notes:
>
> (1) Don't forget to add the newly generated CompoundPaintingLongNames.java
> and _CompoundPaintingLongNames.java (not included in the patch).
>
> (2) I think we may even go with a more general fix - instead of conditionally
> resetting the stack after a flattened attribute, always do a reset before any
> attribute or relationship:
>
> diff --git
> a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
> b/framework/cayen
> index 4ddee21..0d1c64f 100644
> ---
> a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
> +++
> b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
> @@ -364,6 +365,8 @@ public class SelectTranslator extends QueryAssembler {
> }
>
> private void visitRelationship(ArcProperty property) {
> + resetJoinStack();
> +
> ObjRelationship rel = property.getRelationship();
> DbRelationship dbRel = rel.getDbRelationships().get(0);
>
> The reset is a rather cheap operation, and the above seems to be just a
> little more consistent (hmm... I wonder if not resetting it inside
> 'visitRelationship' would result in bugs similar to CAY-1484 for entities
> with multiple flattened relationships??)
>
> Andrus
>
>
>
> On Oct 8, 2010, at 3:23 PM, Ksenia Khailenko (JIRA) wrote:
>
>>
>> [
>> https://issues.apache.org/jira/browse/CAY-1484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>> ]
>>
>> Ksenia Khailenko updated CAY-1484:
>> ----------------------------------
>>
>> Attachment: CAY-1484.-Fixed-using-of-incorrect-alias.patch
>>
>>> Flattened attribute queries are incorrectly generated
>>> -----------------------------------------------------
>>>
>>> Key: CAY-1484
>>> URL: https://issues.apache.org/jira/browse/CAY-1484
>>> Project: Cayenne
>>> Issue Type: Bug
>>> Components: Core Library
>>> Affects Versions: 3.0.1
>>> Environment: Gentoo linux
>>> MySQL 5.1
>>> java version "1.6.0_20"
>>> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
>>> Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
>>> Reporter: Misha Doronin
>>> Attachments: bugdemo_maven_derby.zip, bugdemo_maven_derby_nobug.zip,
>>> CAY-1484.-Fixed-using-of-incorrect-alias.patch, CayenneBugDemo.zip
>>>
>>> Original Estimate: 1h
>>> Remaining Estimate: 1h
>>>
>>> Attached eclipse project demonstrating issue, including cayenne model
>>> When creating database structure like:
>>> table1
>>> t1key
>>> t1value
>>> t2keyref
>>> table2
>>> t2key
>>> t2value
>>> t3keyref
>>> table3
>>> t3key
>>> t3value
>>> and cayenne model with flattened attribute table3.t3value in table2
>>> it produces incorrect join query to table2 and 3:
>>> SELECT t1.t3value, t1.t2key, t0.t2value, t0.t3keyref, t0.t2key FROM
>>> testschema.table2 t0 JOIN testschema.table3 t1 ON (t0.t3key = t1.t3keyref)
>>> WHERE t0.t2key = ?
>>> Note t1.t2key, which obviously shouldn't be there and produces error.
>>
>> --
>> This message is automatically generated by JIRA.
>> -
>> You can reply to this email to add a comment to the issue online.
>>
>>
>
>