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/10/02 12:35:10 UTC
cayenne git commit: CAY-2368 ColumnSelect: Property.self() translates
into wrong SQL code
Repository: cayenne
Updated Branches:
refs/heads/STABLE-4.0 6c866e197 -> c0c0cfa05
CAY-2368 ColumnSelect: Property.self() translates into wrong SQL code
(cherry picked from commit b34c76b24a73355fb4c1085dfc10c4741668ea60)
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/c0c0cfa0
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/c0c0cfa0
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/c0c0cfa0
Branch: refs/heads/STABLE-4.0
Commit: c0c0cfa05ff1386c3ba97b9f0d7ed9bdf99fd584
Parents: 6c866e1
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Oct 2 15:35:02 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Oct 2 15:35:02 2017 +0300
----------------------------------------------------------------------
.../select/DefaultSelectTranslator.java | 1 +
.../apache/cayenne/query/ColumnSelectIT.java | 31 ++++++++++++++++++++
docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
3 files changed, 33 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/c0c0cfa0/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslator.java
index 39eda02..d35b0b4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslator.java
@@ -412,6 +412,7 @@ public class DefaultSelectTranslator extends QueryAssembler implements SelectTra
setAddBindingListener(bindingListener);
for(Property<?> property : query.getColumns()) {
+ joinTableAliasForProperty[0] = null;
int expressionType = property.getExpression().getType();
// forbid direct selection of toMany relationships columns
http://git-wip-us.apache.org/repos/asf/cayenne/blob/c0c0cfa0/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 21e3d9e..fe4edba 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
@@ -477,6 +477,37 @@ public class ColumnSelectIT extends ServerCase {
assertEquals("ng1 artist1", a);
}
+ @Test
+ public void testAliasOrder() {
+ // test that all table aliases are correct
+ List<Object[]> result = ObjectSelect.columnQuery(Artist.class,
+ Artist.PAINTING_ARRAY.outer().count(),
+ Property.createSelf(Artist.class),
+ Artist.PAINTING_ARRAY.dot(Painting.PAINTING_TITLE),
+ Property.createSelf(Artist.class),
+ Artist.PAINTING_ARRAY.dot(Painting.TO_GALLERY).dot(Gallery.GALLERY_NAME),
+ Artist.ARTIST_NAME,
+ Property.createSelf(Artist.class)
+ ).select(context);
+ assertEquals(21, result.size());
+ for(Object[] next : result) {
+ long count = (Long)next[0];
+ Artist artist = (Artist)next[1];
+ String paintingTitle = (String)next[2];
+ Artist artist2 = (Artist)next[3];
+ String galleryName = (String)next[4];
+ String artistName = (String)next[5];
+ Artist artist3 = (Artist)next[6];
+
+ assertTrue(paintingTitle.startsWith("painting"));
+ assertTrue(count == 4L || count == 5L);
+ assertEquals("tate modern", galleryName);
+ assertEquals(PersistenceState.COMMITTED, artist.getPersistenceState());
+ assertEquals(PersistenceState.COMMITTED, artist2.getPersistenceState());
+ assertEquals(PersistenceState.COMMITTED, artist3.getPersistenceState());
+ }
+ }
+
/*
* Test iterated select
*/
http://git-wip-us.apache.org/repos/asf/cayenne/blob/c0c0cfa0/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 5b1201e..7aa154b 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -15,6 +15,7 @@ Bug Fixes:
CAY-2364 Wrong logging in SQLTemplate
CAY-2365 SQLExec query tries to convert (unexpected) result set into objects
+CAY-2368 ColumnSelect: Property.self() translates into wrong SQL code
----------------------------------
Release: 4.0.B2