You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2017/08/22 08:50:18 UTC
cayenne git commit: CAY-2353 Broken paginated column select with only
one entity in the result
Repository: cayenne
Updated Branches:
refs/heads/master d189e5f2c -> 863c23e66
CAY-2353 Broken paginated column select with only one entity in the result
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/863c23e6
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/863c23e6
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/863c23e6
Branch: refs/heads/master
Commit: 863c23e66b84a616188adb8c7d18d5e3e2436636
Parents: d189e5f
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Aug 22 11:50:11 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Tue Aug 22 11:50:11 2017 +0300
----------------------------------------------------------------------
.../cayenne/access/DataContextQueryAction.java | 7 +++--
.../apache/cayenne/query/ColumnSelectIT.java | 31 ++++++++++++++++++++
docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
3 files changed, 36 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/863c23e6/cayenne-server/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java
index 0ef2c0c..87a7b80 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java
@@ -112,7 +112,8 @@ class DataContextQueryAction extends ObjectContextQueryAction {
if(rsMapping.size() > 1) {
mixedResults = true;
} else if(rsMapping.size() == 1) {
- mixedResults = !(rsMapping.get(0) instanceof EntityResultSegment);
+ mixedResults = !(rsMapping.get(0) instanceof EntityResultSegment)
+ || !metadata.isSingleResultSetMapping();
}
}
@@ -121,9 +122,9 @@ class DataContextQueryAction extends ObjectContextQueryAction {
} else {
DbEntity dbEntity = metadata.getDbEntity();
if (dbEntity != null && dbEntity.getPrimaryKeys().size() == 1) {
- paginatedList = new SimpleIdIncrementalFaultList<Object>(actingDataContext, query, maxIdQualifierSize);
+ paginatedList = new SimpleIdIncrementalFaultList<>(actingDataContext, query, maxIdQualifierSize);
} else {
- paginatedList = new IncrementalFaultList<Object>(actingDataContext, query, maxIdQualifierSize);
+ paginatedList = new IncrementalFaultList<>(actingDataContext, query, maxIdQualifierSize);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/863c23e6/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
index 3d8668f..d4798c9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
@@ -556,6 +556,22 @@ public class ColumnSelectIT extends ServerCase {
}
@Test
+ public void testPageSizeOneScalarAsArray() {
+ List<Object[]> a = ObjectSelect.query(Artist.class)
+ .columns(Artist.ARTIST_NAME.trim())
+ .pageSize(10)
+ .select(context);
+ assertNotNull(a);
+ assertEquals(20, a.size());
+ int idx = 0;
+ for(Object[] next : a) {
+ assertNotNull(""+idx, next[0]);
+ assertTrue(next[0] instanceof String);
+ idx++;
+ }
+ }
+
+ @Test
public void testPageSizeScalars() {
List<Object[]> a = ObjectSelect.query(Artist.class)
.columns(Artist.ARTIST_NAME.trim(), Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY.count())
@@ -588,6 +604,21 @@ public class ColumnSelectIT extends ServerCase {
}
@Test
+ public void testPageSizeOneObjectAsArray() {
+ Property<Artist> artistFull = Property.createSelf(Artist.class);
+ List<Object[]> a = ObjectSelect.query(Artist.class)
+ .columns(artistFull)
+ .pageSize(10)
+ .select(context);
+ assertNotNull(a);
+ assertEquals(20, a.size());
+ for(Object[] next : a){
+ assertNotNull(next[0]);
+ assertTrue(next[0] instanceof Artist);
+ }
+ }
+
+ @Test
public void testPageSizeObjectAndScalars() {
Property<Artist> artistFull = Property.createSelf(Artist.class);
List<Object[]> a = ObjectSelect.query(Artist.class)
http://git-wip-us.apache.org/repos/asf/cayenne/blob/863c23e6/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index 566e28d..0bf60cf 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -34,6 +34,7 @@ CAY-2331 cgen: broken templates for data map
CAY-2347 cdbimport: can't get all relationships on the first pass
CAY-2349 Cache issue: 'SelectQuery' with prefetches loses relationships
CAY-2350 Expression: NotIn with empty collection returns empty result
+CAY-2353 Broken paginated column select with only one entity in the result
----------------------------------
Release: 4.0.B1