Return-Path: Delivered-To: apmail-cayenne-commits-archive@www.apache.org Received: (qmail 20521 invoked from network); 13 Apr 2009 18:49:32 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 13 Apr 2009 18:49:32 -0000 Received: (qmail 72460 invoked by uid 500); 13 Apr 2009 18:49:32 -0000 Delivered-To: apmail-cayenne-commits-archive@cayenne.apache.org Received: (qmail 72439 invoked by uid 500); 13 Apr 2009 18:49:32 -0000 Mailing-List: contact commits-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list commits@cayenne.apache.org Received: (qmail 72430 invoked by uid 99); 13 Apr 2009 18:49:32 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Apr 2009 18:49:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Apr 2009 18:49:22 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D3EB82388999; Mon, 13 Apr 2009 18:49:01 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r764555 - in /cayenne/main/trunk: docs/doc/src/main/resources/ framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/ framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/ Date: Mon, 13 Apr 2009 18:49:01 -0000 To: commits@cayenne.apache.org From: aadamchik@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090413184901.D3EB82388999@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: aadamchik Date: Mon Apr 13 18:49:00 2009 New Revision: 764555 URL: http://svn.apache.org/viewvc?rev=764555&view=rev Log: CAY-1207 Oracle8 does not like new join syntax Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8JoinStack.java - copied, changed from r764550, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java - copied, changed from r764550, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java - copied, changed from r764550, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=764555&r1=764554&r2=764555&view=diff ============================================================================== --- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original) +++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Mon Apr 13 18:49:00 2009 @@ -52,6 +52,7 @@ CAY-1194 problems with relationships when using nested contexts and ROP CAY-1196 CayenneRuntimeException in modeler due to ClassNotFoundException when java type is invalid and db attribute is null CAY-1204 Incorrect relationship syncing in nested CayenneContext's +CAY-1207 Oracle8 does not like new join syntax ---------------------------------- Release: 3.0M5 Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java?rev=764555&r1=764554&r2=764555&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java Mon Apr 13 18:49:00 2009 @@ -23,6 +23,8 @@ import org.apache.cayenne.access.trans.JoinStack; import org.apache.cayenne.access.trans.JoinTreeNode; +import org.apache.cayenne.dba.DbAdapter; +import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.DbEntity; import org.apache.cayenne.map.DbJoin; import org.apache.cayenne.map.DbRelationship; @@ -31,12 +33,14 @@ * OpenBase does not support standard JOIN keyword and have strange syntax for defining * inner/outer joins * - * @see http://www.openbase.com/help/KnowledgeBase/400_OpenBaseSQL/401_SelectStatements.html + * @see http + * ://www.openbase.com/help/KnowledgeBase/400_OpenBaseSQL/401_SelectStatements.html + * @since 3.0 */ -public class OpenBaseJoinStack extends JoinStack { +class OpenBaseJoinStack extends JoinStack { - public OpenBaseJoinStack() { - super(); + protected OpenBaseJoinStack(DbAdapter dbAdapter, DataMap dataMap) { + super(dbAdapter, dataMap); } @Override @@ -60,7 +64,8 @@ } @Override - protected void appendQualifier(Appendable out, boolean firstQualifierElement) throws IOException { + protected void appendQualifier(Appendable out, boolean firstQualifierElement) + throws IOException { boolean first = firstQualifierElement; for (JoinTreeNode node : rootNode.getChildren()) { if (!first) { @@ -100,7 +105,7 @@ throw new IllegalArgumentException("Unsupported join type: " + node.getJoinType()); } - + out.append(targetAlias).append('.').append(join.getTargetName()); } Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java?rev=764555&r1=764554&r2=764555&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java Mon Apr 13 18:49:00 2009 @@ -29,7 +29,7 @@ @Override protected JoinStack createJoinStack() { - return new OpenBaseJoinStack(); + return new OpenBaseJoinStack(getAdapter(), queryMetadata.getDataMap()); } @Override Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java?rev=764555&r1=764554&r2=764555&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java Mon Apr 13 18:49:00 2009 @@ -23,6 +23,7 @@ import org.apache.cayenne.map.EntityResolver; import org.apache.cayenne.query.SQLAction; import org.apache.cayenne.query.SQLTemplate; +import org.apache.cayenne.query.SelectQuery; /** * An action builder for Oracle8Adapter. @@ -39,4 +40,9 @@ public SQLAction sqlAction(SQLTemplate query) { return new Oracle8SQLTemplateAction(query, adapter, getEntityResolver()); } + + @Override + public SQLAction objectSelectAction(SelectQuery query) { + return new Oracle8SelectAction(query, getAdapter(), getEntityResolver()); + } } Copied: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8JoinStack.java (from r764550, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8JoinStack.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8JoinStack.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java&r1=764550&r2=764555&rev=764555&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseJoinStack.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8JoinStack.java Mon Apr 13 18:49:00 2009 @@ -16,27 +16,27 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.dba.openbase; +package org.apache.cayenne.dba.oracle; import java.io.IOException; import java.util.List; import org.apache.cayenne.access.trans.JoinStack; import org.apache.cayenne.access.trans.JoinTreeNode; +import org.apache.cayenne.dba.DbAdapter; +import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.DbEntity; import org.apache.cayenne.map.DbJoin; import org.apache.cayenne.map.DbRelationship; /** - * OpenBase does not support standard JOIN keyword and have strange syntax for defining - * inner/outer joins - * - * @see http://www.openbase.com/help/KnowledgeBase/400_OpenBaseSQL/401_SelectStatements.html + * @since 3.0 */ -public class OpenBaseJoinStack extends JoinStack { +// cloned from OpenBaseJoin stack... need better strategies of reuse... +class Oracle8JoinStack extends JoinStack { - public OpenBaseJoinStack() { - super(); + Oracle8JoinStack(DbAdapter dbAdapter, DataMap dataMap) { + super(dbAdapter, dataMap); } @Override @@ -60,7 +60,8 @@ } @Override - protected void appendQualifier(Appendable out, boolean firstQualifierElement) throws IOException { + protected void appendQualifier(Appendable out, boolean firstQualifierElement) + throws IOException { boolean first = firstQualifierElement; for (JoinTreeNode node : rootNode.getChildren()) { if (!first) { @@ -100,16 +101,13 @@ throw new IllegalArgumentException("Unsupported join type: " + node.getJoinType()); } - - out.append(targetAlias).append('.').append(join.getTargetName()); + out.append(targetAlias).append('.').append(join.getTargetName()); } for (JoinTreeNode child : node.getChildren()) { out.append(" AND "); appendQualifierSubtree(out, child); } - } - } Copied: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java (from r764550, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java&r1=764550&r2=764555&rev=764555&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java Mon Apr 13 18:49:00 2009 @@ -16,27 +16,32 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ - package org.apache.cayenne.dba.oracle; -import org.apache.cayenne.dba.JdbcAdapter; +import java.sql.Connection; + +import org.apache.cayenne.access.trans.SelectTranslator; +import org.apache.cayenne.dba.DbAdapter; import org.apache.cayenne.map.EntityResolver; -import org.apache.cayenne.query.SQLAction; -import org.apache.cayenne.query.SQLTemplate; +import org.apache.cayenne.query.SelectQuery; /** - * An action builder for Oracle8Adapter. - * - * @since 1.2 + * @since 3.0 */ -class Oracle8ActionBuilder extends OracleActionBuilder { +class Oracle8SelectAction extends OracleSelectAction { - Oracle8ActionBuilder(JdbcAdapter adapter, EntityResolver resolver) { - super(adapter, resolver); + Oracle8SelectAction(SelectQuery query, DbAdapter adapter, + EntityResolver entityResolver) { + super(query, adapter, entityResolver); } @Override - public SQLAction sqlAction(SQLTemplate query) { - return new Oracle8SQLTemplateAction(query, adapter, getEntityResolver()); + protected SelectTranslator createTranslator(Connection connection) { + SelectTranslator translator = new Oracle8SelectTranslator(); + translator.setQuery(query); + translator.setAdapter(adapter); + translator.setEntityResolver(getEntityResolver()); + translator.setConnection(connection); + return translator; } } Copied: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java (from r764550, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java&r1=764550&r2=764555&rev=764555&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java Mon Apr 13 18:49:00 2009 @@ -16,28 +16,22 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ - -package org.apache.cayenne.dba.openbase; +package org.apache.cayenne.dba.oracle; import org.apache.cayenne.access.trans.JoinStack; -import org.apache.cayenne.access.trans.SelectTranslator; /** - * @since 1.2 + * @since 3.0 */ -class OpenBaseSelectTranslator extends SelectTranslator { +public class Oracle8SelectTranslator extends OracleSelectTranslator { + /** + * Returns an old style joint stack for Oracle8 that does not support explicit join + * syntax. + */ @Override protected JoinStack createJoinStack() { - return new OpenBaseJoinStack(); - } - - @Override - protected void appendLimitAndOffsetClauses(StringBuilder buffer) { - int limit = queryMetadata.getFetchLimit(); - if (limit > 0) { - buffer.append(" RETURN RESULTS ").append(limit); - } + return new Oracle8JoinStack(getAdapter(), queryMetadata.getDataMap()); } }