[jira] [Commented] (CAY-2843) Use an IN clause for single field disjoint by ID prefetches
[ https://issues.apache.org/jira/browse/CAY-2843?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17815333#comment-17815333 ] Jurgen Doll commented on CAY-2843: -- Created a [PR|https://github.com/apache/cayenne/pull/606] containing a potential solution that passes the tests. > Use an IN clause for single field disjoint by ID prefetches > --- > > Key: CAY-2843 > URL: https://issues.apache.org/jira/browse/CAY-2843 > Project: Cayenne > Issue Type: Improvement > Components: Core Library >Affects Versions: 4.2 >Reporter: Jurgen Doll >Priority: Minor > Labels: pull-request-available > Time Spent: 10m > Remaining Estimate: 0h > > Currently HierarchicalObjectResolver uses "field1 = ? OR field1 = ? " > pattern for all disjoint by ID prefetches. > I propose distinguishing between single field prefetches and multi-field > prefetches, so that the former makes use of an IN clause instead. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (CAY-2843) Use an IN clause for single field disjoint by ID prefetches
Jurgen Doll created CAY-2843: Summary: Use an IN clause for single field disjoint by ID prefetches Key: CAY-2843 URL: https://issues.apache.org/jira/browse/CAY-2843 Project: Cayenne Issue Type: Improvement Components: Core Library Affects Versions: 4.2 Reporter: Jurgen Doll Currently HierarchicalObjectResolver uses "field1 = ? OR field1 = ? " pattern for all disjoint by ID prefetches. I propose distinguishing between single field prefetches and multi-field prefetches, so that the former makes use of an IN clause instead. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (CAY-2842) Prevent duplicate select columns when using distinct with order by
[ https://issues.apache.org/jira/browse/CAY-2842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17815273#comment-17815273 ] Jurgen Doll commented on CAY-2842: -- Created a [PR|https://github.com/apache/cayenne/pull/605] containing a failing test and a potential solution that passes the tests. > Prevent duplicate select columns when using distinct with order by > -- > > Key: CAY-2842 > URL: https://issues.apache.org/jira/browse/CAY-2842 > Project: Cayenne > Issue Type: Improvement > Components: Core Library >Affects Versions: 4.2 >Reporter: Jurgen Doll >Priority: Minor > Labels: pull-request-available > Time Spent: 10m > Remaining Estimate: 0h > > When a "select distinct" query has an "order by" clause then the "order by" > fields must also be listed in the select clause. However no check is > currently done to see if the column is already specified which can result in > duplicate columns being fetched. > This is listed as a TODO item in OrderingStage. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[PR] CAY-2842 Prevent duplicate select columns when using distinct with order by [cayenne]
Jugen opened a new pull request, #605: URL: https://github.com/apache/cayenne/pull/605 (no comment) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@cayenne.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[jira] [Created] (CAY-2842) Prevent duplicate select columns when using distinct with order by
Jurgen Doll created CAY-2842: Summary: Prevent duplicate select columns when using distinct with order by Key: CAY-2842 URL: https://issues.apache.org/jira/browse/CAY-2842 Project: Cayenne Issue Type: Improvement Components: Core Library Affects Versions: 4.2 Reporter: Jurgen Doll When a "select distinct" query has an "order by" clause then the "order by" fields must also be listed in the select clause. However no check is currently done to see if the column is already specified which can result in duplicate columns being fetched. This is listed as a TODO item in OrderingStage. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (CAY-2841) Multi column ColumnSelect with SHARED_CACHE fails after 1st select
[ https://issues.apache.org/jira/browse/CAY-2841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev reassigned CAY-2841: Assignee: Nikita Timofeev > Multi column ColumnSelect with SHARED_CACHE fails after 1st select > -- > > Key: CAY-2841 > URL: https://issues.apache.org/jira/browse/CAY-2841 > Project: Cayenne > Issue Type: Bug >Affects Versions: 4.2 >Reporter: Jurgen Doll >Assignee: Nikita Timofeev >Priority: Minor > Fix For: 4.2.1, 5.0-M1 > > > Adding the following test case to > {color:#00}{color:#00}ColumnSelectIT{color}{color} shows the problem: > > {color:#00} {color}{color:#646464}@{color}{color:#00}Test{color} > {color:#00} {color}{color:#7f0055}public{color}{color:#00} > {color}{color:#7f0055}void{color}{color:#00} testSharedCache() > {color}{color:#7f0055}throws{color}{color:#00} Exception {{color} > {color:#00} ColumnSelect colQry = ObjectSelect.query( > Artist.{color}{color:#7f0055}class{color}{color:#00} ){color} > {color:#00} .columns( Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH ){color} > {color:#00} .cacheStrategy( QueryCacheStrategy.SHARED_CACHE );{color} > {color:#00} {color} > {color:#00} List result = colQry.select(context);{color} > {color:#00} assertEquals(20, result.size());{color} > > {color:#00} {color}{color:#3f7f5f}// Next line fails with > UnsupportedOperationException{color} > {color:#00} List result2 = colQry.select(context);{color} > {color:#00} assertEquals(20, result.size());{color} > {color:#00} }{color} > > Stacktrace: > > {color:#ff}Exception in thread "JavaFX Application Thread" > {color}{color:#0066cc}java.lang.UnsupportedOperationException{color} > {color:#ff} at > java.base/java.util.Collections$UnmodifiableCollection.removeIf({color}{color:#0066cc}Collections.java:1120{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction$MixedConversionStrategy.convert({color}{color:#0066cc}DataDomainQueryAction.java:818{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction.interceptObjectConversion({color}{color:#0066cc}DataDomainQueryAction.java:507{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction.execute({color}{color:#0066cc}DataDomainQueryAction.java:135{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain.onQueryNoFilters({color}{color:#0066cc}DataDomain.java:570{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain$DataDomainQueryFilterChain.onQuery({color}{color:#0066cc}DataDomain.java:819{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain.onQuery({color}{color:#0066cc}DataDomain.java:562{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.runQuery({color}{color:#0066cc}ObjectContextQueryAction.java:406{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.executePostCache({color}{color:#0066cc}ObjectContextQueryAction.java:107{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.execute({color}{color:#0066cc}ObjectContextQueryAction.java:94{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataContext.onQuery({color}{color:#0066cc}DataContext.java:960{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataContext.performQuery({color}{color:#0066cc}DataContext.java:949{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.BaseContext.select({color}{color:#0066cc}BaseContext.java:307{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.query.FluentSelect.select({color}{color:#0066cc}FluentSelect.java:160{color}{color:#ff}){color} > > Workaround: Add > {color:#00}{color:#00}.suppressDistinct(){color}{color} to the query. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (CAY-2841) Multi column ColumnSelect with SHARED_CACHE fails after 1st select
[ https://issues.apache.org/jira/browse/CAY-2841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2841: - Fix Version/s: 4.2.1 (was: 4.1.2) > Multi column ColumnSelect with SHARED_CACHE fails after 1st select > -- > > Key: CAY-2841 > URL: https://issues.apache.org/jira/browse/CAY-2841 > Project: Cayenne > Issue Type: Bug >Affects Versions: 4.2 >Reporter: Jurgen Doll >Priority: Minor > Fix For: 4.2.1, 5.0-M1 > > > Adding the following test case to > {color:#00}{color:#00}ColumnSelectIT{color}{color} shows the problem: > > {color:#00} {color}{color:#646464}@{color}{color:#00}Test{color} > {color:#00} {color}{color:#7f0055}public{color}{color:#00} > {color}{color:#7f0055}void{color}{color:#00} testSharedCache() > {color}{color:#7f0055}throws{color}{color:#00} Exception {{color} > {color:#00} ColumnSelect colQry = ObjectSelect.query( > Artist.{color}{color:#7f0055}class{color}{color:#00} ){color} > {color:#00} .columns( Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH ){color} > {color:#00} .cacheStrategy( QueryCacheStrategy.SHARED_CACHE );{color} > {color:#00} {color} > {color:#00} List result = colQry.select(context);{color} > {color:#00} assertEquals(20, result.size());{color} > > {color:#00} {color}{color:#3f7f5f}// Next line fails with > UnsupportedOperationException{color} > {color:#00} List result2 = colQry.select(context);{color} > {color:#00} assertEquals(20, result.size());{color} > {color:#00} }{color} > > Stacktrace: > > {color:#ff}Exception in thread "JavaFX Application Thread" > {color}{color:#0066cc}java.lang.UnsupportedOperationException{color} > {color:#ff} at > java.base/java.util.Collections$UnmodifiableCollection.removeIf({color}{color:#0066cc}Collections.java:1120{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction$MixedConversionStrategy.convert({color}{color:#0066cc}DataDomainQueryAction.java:818{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction.interceptObjectConversion({color}{color:#0066cc}DataDomainQueryAction.java:507{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction.execute({color}{color:#0066cc}DataDomainQueryAction.java:135{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain.onQueryNoFilters({color}{color:#0066cc}DataDomain.java:570{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain$DataDomainQueryFilterChain.onQuery({color}{color:#0066cc}DataDomain.java:819{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain.onQuery({color}{color:#0066cc}DataDomain.java:562{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.runQuery({color}{color:#0066cc}ObjectContextQueryAction.java:406{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.executePostCache({color}{color:#0066cc}ObjectContextQueryAction.java:107{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.execute({color}{color:#0066cc}ObjectContextQueryAction.java:94{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataContext.onQuery({color}{color:#0066cc}DataContext.java:960{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataContext.performQuery({color}{color:#0066cc}DataContext.java:949{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.BaseContext.select({color}{color:#0066cc}BaseContext.java:307{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.query.FluentSelect.select({color}{color:#0066cc}FluentSelect.java:160{color}{color:#ff}){color} > > Workaround: Add > {color:#00}{color:#00}.suppressDistinct(){color}{color} to the query. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (CAY-2841) Multi column ColumnSelect with SHARED_CACHE fails after 1st select
[ https://issues.apache.org/jira/browse/CAY-2841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2841: - Fix Version/s: 4.1.2 5.0-M1 > Multi column ColumnSelect with SHARED_CACHE fails after 1st select > -- > > Key: CAY-2841 > URL: https://issues.apache.org/jira/browse/CAY-2841 > Project: Cayenne > Issue Type: Bug >Affects Versions: 4.2 >Reporter: Jurgen Doll >Priority: Minor > Fix For: 4.1.2, 5.0-M1 > > > Adding the following test case to > {color:#00}{color:#00}ColumnSelectIT{color}{color} shows the problem: > > {color:#00} {color}{color:#646464}@{color}{color:#00}Test{color} > {color:#00} {color}{color:#7f0055}public{color}{color:#00} > {color}{color:#7f0055}void{color}{color:#00} testSharedCache() > {color}{color:#7f0055}throws{color}{color:#00} Exception {{color} > {color:#00} ColumnSelect colQry = ObjectSelect.query( > Artist.{color}{color:#7f0055}class{color}{color:#00} ){color} > {color:#00} .columns( Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH ){color} > {color:#00} .cacheStrategy( QueryCacheStrategy.SHARED_CACHE );{color} > {color:#00} {color} > {color:#00} List result = colQry.select(context);{color} > {color:#00} assertEquals(20, result.size());{color} > > {color:#00} {color}{color:#3f7f5f}// Next line fails with > UnsupportedOperationException{color} > {color:#00} List result2 = colQry.select(context);{color} > {color:#00} assertEquals(20, result.size());{color} > {color:#00} }{color} > > Stacktrace: > > {color:#ff}Exception in thread "JavaFX Application Thread" > {color}{color:#0066cc}java.lang.UnsupportedOperationException{color} > {color:#ff} at > java.base/java.util.Collections$UnmodifiableCollection.removeIf({color}{color:#0066cc}Collections.java:1120{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction$MixedConversionStrategy.convert({color}{color:#0066cc}DataDomainQueryAction.java:818{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction.interceptObjectConversion({color}{color:#0066cc}DataDomainQueryAction.java:507{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomainQueryAction.execute({color}{color:#0066cc}DataDomainQueryAction.java:135{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain.onQueryNoFilters({color}{color:#0066cc}DataDomain.java:570{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain$DataDomainQueryFilterChain.onQuery({color}{color:#0066cc}DataDomain.java:819{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataDomain.onQuery({color}{color:#0066cc}DataDomain.java:562{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.runQuery({color}{color:#0066cc}ObjectContextQueryAction.java:406{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.executePostCache({color}{color:#0066cc}ObjectContextQueryAction.java:107{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.util.ObjectContextQueryAction.execute({color}{color:#0066cc}ObjectContextQueryAction.java:94{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataContext.onQuery({color}{color:#0066cc}DataContext.java:960{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.access.DataContext.performQuery({color}{color:#0066cc}DataContext.java:949{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.BaseContext.select({color}{color:#0066cc}BaseContext.java:307{color}{color:#ff}){color} > {color:#ff} at > org.apache.cayenne.query.FluentSelect.select({color}{color:#0066cc}FluentSelect.java:160{color}{color:#ff}){color} > > Workaround: Add > {color:#00}{color:#00}.suppressDistinct(){color}{color} to the query. -- This message was sent by Atlassian Jira (v8.20.10#820010)