You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2016/11/03 17:40:59 UTC
[1/4] cayenne git commit: Added SybaseSelectTranslator to handle
limits within the query
Repository: cayenne
Updated Branches:
refs/heads/master 2a06041df -> 0e1912c20
Added SybaseSelectTranslator to handle limits within the query
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/a851bb6c
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/a851bb6c
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/a851bb6c
Branch: refs/heads/master
Commit: a851bb6c02d8391f63d874b650998fcd50fb2b33
Parents: 513acc4
Author: Lon Varscsak <lo...@gmail.com>
Authored: Wed Oct 26 14:45:52 2016 -0700
Committer: Lon Varscsak <lo...@gmail.com>
Committed: Wed Oct 26 14:48:10 2016 -0700
----------------------------------------------------------------------
.../cayenne/dba/sybase/SybaseAdapter.java | 21 +++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/a851bb6c/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
index 073290a..d5893ac 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
@@ -19,8 +19,14 @@
package org.apache.cayenne.dba.sybase;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.List;
+
import org.apache.cayenne.access.translator.ParameterBinding;
import org.apache.cayenne.access.translator.ejbql.EJBQLTranslatorFactory;
+import org.apache.cayenne.access.translator.select.SelectTranslator;
import org.apache.cayenne.access.types.ByteArrayType;
import org.apache.cayenne.access.types.ByteType;
import org.apache.cayenne.access.types.CharType;
@@ -35,13 +41,10 @@ import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.dba.PkGenerator;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.map.EntityResolver;
+import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.resource.ResourceLocator;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.List;
-
/**
* DbAdapter implementation for <a href="http://www.sybase.com">Sybase
* RDBMS</a>.
@@ -69,6 +72,14 @@ public class SybaseAdapter extends JdbcAdapter {
return new SybaseEJBQLTranslatorFactory();
}
+ /**
+ * @since 4.0
+ */
+ @Override
+ public SelectTranslator getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver) {
+ return new SybaseSelectTranslator(query, this, entityResolver);
+ }
+
/**
* Returns word "go".
*
[2/4] cayenne git commit: Added SybaseSelectTranslator to handle
limits within the query
Posted by aa...@apache.org.
Added SybaseSelectTranslator to handle limits within the query
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/6b7a053a
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/6b7a053a
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/6b7a053a
Branch: refs/heads/master
Commit: 6b7a053a8c42a5d474434371842552f514351c98
Parents: a851bb6
Author: Lon Varscsak <lo...@gmail.com>
Authored: Wed Oct 26 14:28:45 2016 -0700
Committer: Lon Varscsak <lo...@gmail.com>
Committed: Wed Oct 26 14:48:18 2016 -0700
----------------------------------------------------------------------
.../dba/sybase/SybaseSelectTranslator.java | 34 ++++++++++++++++++++
1 file changed, 34 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6b7a053a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java
new file mode 100644
index 0000000..9361b29
--- /dev/null
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java
@@ -0,0 +1,34 @@
+package org.apache.cayenne.dba.sybase;
+
+import org.apache.cayenne.access.translator.select.DefaultSelectTranslator;
+import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.map.EntityResolver;
+import org.apache.cayenne.query.Query;
+
+public class SybaseSelectTranslator extends DefaultSelectTranslator {
+ /**
+ * @since 4.0
+ */
+ public SybaseSelectTranslator(Query query, DbAdapter adapter, EntityResolver entityResolver) {
+ super(query, adapter, entityResolver);
+ }
+
+ @Override
+ protected void appendLimitAndOffsetClauses(StringBuilder buffer) {
+
+ int limit = queryMetadata.getFetchLimit();
+ int offset = queryMetadata.getFetchOffset();
+
+ if (limit > 0) {
+ String sql = buffer.toString();
+
+ // If contains distinct insert top limit after
+ if (sql.startsWith("SELECT DISTINCT ")) {
+ buffer.replace(0, 15, "SELECT DISTINCT TOP " + (offset + limit));
+
+ } else {
+ buffer.replace(0, 6, "SELECT TOP " + (offset + limit));
+ }
+ }
+ }
+}
[3/4] cayenne git commit: Merge branch '114'
Posted by aa...@apache.org.
Merge branch '114'
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/cd1496a6
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/cd1496a6
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/cd1496a6
Branch: refs/heads/master
Commit: cd1496a6a6ae0af27e7c209f05a4be1732deda99
Parents: 2a06041 6b7a053
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Thu Nov 3 20:27:27 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Thu Nov 3 20:27:27 2016 +0300
----------------------------------------------------------------------
.../cayenne/dba/sybase/SybaseAdapter.java | 21 +++++++++---
.../dba/sybase/SybaseSelectTranslator.java | 34 ++++++++++++++++++++
2 files changed, 50 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
[4/4] cayenne git commit: CAY-2132 Adding SybaseSelectTranslator to
support TOP/DISTINCT TOP in limited queries
Posted by aa...@apache.org.
CAY-2132 Adding SybaseSelectTranslator to support TOP/DISTINCT TOP in limited queries
* adding missing license headers; release notes;
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/0e1912c2
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/0e1912c2
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/0e1912c2
Branch: refs/heads/master
Commit: 0e1912c2027b51b8b8173fd79387e19994358a11
Parents: cd1496a
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Thu Nov 3 20:33:12 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Thu Nov 3 20:39:03 2016 +0300
----------------------------------------------------------------------
.../dba/sybase/SybaseSelectTranslator.java | 18 ++++++++++++++++++
docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
2 files changed, 19 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0e1912c2/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java
index 9361b29..93af596 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSelectTranslator.java
@@ -1,3 +1,21 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
package org.apache.cayenne.dba.sybase;
import org.apache.cayenne.access.translator.select.DefaultSelectTranslator;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0e1912c2/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 59845ad..967cb60 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -36,6 +36,7 @@ CAY-2114 cdbimport: object layer settings are not respected
CAY-2115 DbLoader - allow loading DataMap without Obj layer
CAY-2116 Split schema synchronization code in a separate module
CAY-2118 cdbimport: drop support for the old style of table filtering
+CAY-2132 Adding SybaseSelectTranslator to support TOP/DISTINCT TOP in limited queries
Bug Fixes: