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/31 10:59:28 UTC

[1/2] cayenne git commit: CAY-2359 EJBQL: db path in not supported in ORDER BY

Repository: cayenne
Updated Branches:
  refs/heads/STABLE-4.0 084baf620 -> f074a59b7


CAY-2359 EJBQL: db path in not supported in ORDER BY

(cherry picked from commit 64dad56)


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/4adfc53a
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/4adfc53a
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/4adfc53a

Branch: refs/heads/STABLE-4.0
Commit: 4adfc53a8d5cb750da6114326aae844f43a3bf03
Parents: 084baf6
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Aug 31 12:53:25 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Thu Aug 31 12:54:33 2017 +0300

----------------------------------------------------------------------
 .../translator/ejbql/EJBQLOrderByTranslator.java   | 11 +++++++++++
 .../org/apache/cayenne/query/EJBQLQueryIT.java     | 17 +++++++++++++++--
 docs/doc/src/main/resources/RELEASE-NOTES.txt      |  1 +
 3 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/4adfc53a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLOrderByTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLOrderByTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLOrderByTranslator.java
index 41ca358..2183af4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLOrderByTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLOrderByTranslator.java
@@ -69,4 +69,15 @@ class EJBQLOrderByTranslator extends EJBQLBaseVisitor {
         expression.visit(childVisitor);
         return false;
     }
+
+    @Override
+    public boolean visitDbPath(EJBQLExpression expression, int finishedChildIndex) {
+        expression.visit(new EJBQLDbPathTranslator(context) {
+            @Override
+            protected void appendMultiColumnPath(EJBQLMultiColumnOperand operand) {
+                throw new EJBQLException("Can't order on multi-column paths or objects");
+            }
+        });
+        return false;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4adfc53a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
index a60e9d2..d5e6766 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
@@ -675,8 +675,8 @@ public class EJBQLQueryIT extends ServerCase {
         registry.addCallback(LifecycleEvent.POST_LOAD, Painting.class, "postAddCallback");
 
         // select Paintings, where one of it will be null
-        EJBQLQuery queryFullProduct = new EJBQLQuery("select a.paintingArray+ from Artist a order by a.artistName");
-        List<Painting> result1 = context.performQuery(queryFullProduct);
+        EJBQLQuery query = new EJBQLQuery("select a.paintingArray+ from Artist a order by a.artistName");
+        List<Painting> result1 = context.performQuery(query);
         assertEquals(4, result1.size());
         assertNull(result1.get(3));
         for(int i=0; i<3; i++) {
@@ -684,4 +684,17 @@ public class EJBQLQueryIT extends ServerCase {
             assertTrue(result1.get(i).isPostAdded());
         }
     }
+
+    @Test
+    public void testOrderByDbPath() throws Exception {
+        tArtist.insert(1, "a3");
+        tArtist.insert(2, "a2");
+        tArtist.insert(3, "a1");
+
+        EJBQLQuery query = new EJBQLQuery("SELECT a FROM Artist a ORDER BY db:a.ARTIST_ID DESC");
+        List<Artist> result = context.performQuery(query);
+        assertEquals("a1", result.get(0).getArtistName());
+        assertEquals("a2", result.get(1).getArtistName());
+        assertEquals("a3", result.get(2).getArtistName());
+    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4adfc53a/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 5dc9861..1639dd7 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -26,6 +26,7 @@ CAY-2354 DbGenerator.runGenerator must commit its connection
 CAY-2356 EJBQL: Incorrect COUNT() on outer joined table
 CAY-2357 Generic select queries silently convert result to nulls if no PK column found
 CAY-2358 NPE when callbacks invoked on null objects
+CAY-2359 EJBQL: db path in not supported in ORDER BY
 
 ----------------------------------
 Release: 4.0.B1


[2/2] cayenne git commit: Fix tests

Posted by nt...@apache.org.
Fix tests


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/f074a59b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/f074a59b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/f074a59b

Branch: refs/heads/STABLE-4.0
Commit: f074a59b7b52f4d0a40117c9f6841b6ac9b58c50
Parents: 4adfc53
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Aug 31 13:54:08 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Thu Aug 31 13:54:08 2017 +0300

----------------------------------------------------------------------
 .../src/test/java/org/apache/cayenne/query/SQLTemplateIT.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/f074a59b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
index 020364a..30f4151 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
@@ -161,7 +161,7 @@ public class SQLTemplateIT extends ServerCase {
 
 	@Test
 	public void testSQLTemplateSelectNullObjects() throws Exception {
-		tPainting.insert(1, null, "p1", BigInteger.valueOf(10L));
+		tPainting.insert(1, null, "p1", 10);
 
 
 		String sql = "SELECT p.GALLERY_ID FROM PAINTING p";
@@ -175,7 +175,7 @@ public class SQLTemplateIT extends ServerCase {
 
 	@Test(expected = CayenneRuntimeException.class)
 	public void testSQLTemplateSelectInvalid() throws Exception {
-		tPainting.insert(1, null, "p1", BigInteger.valueOf(10L));
+		tPainting.insert(1, null, "p1", 10);
 
 		String sql = "SELECT p.PAINTING_TITLE FROM PAINTING p";
 		SQLTemplate q1 = new SQLTemplate(Gallery.class, sql);