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.
>> 
>> 
> 
> 

Reply via email to