Return-Path: Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: (qmail 15787 invoked from network); 2 May 2008 17:26:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 May 2008 17:26:44 -0000 Received: (qmail 92430 invoked by uid 500); 2 May 2008 17:26:45 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 92403 invoked by uid 500); 2 May 2008 17:26:45 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 92392 invoked by uid 99); 2 May 2008 17:26:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 May 2008 10:26:45 -0700 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.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 May 2008 17:26:09 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 9F159234C10E for ; Fri, 2 May 2008 10:22:55 -0700 (PDT) Message-ID: <727934179.1209748975637.JavaMail.jira@brutus> Date: Fri, 2 May 2008 10:22:55 -0700 (PDT) From: "Sandeep Shrivastava (JIRA)" To: dev@openjpa.apache.org Subject: [jira] Updated: (OPENJPA-587) Sybase queries that select columns from derived tables fail OOTB In-Reply-To: <739543228.1209748855803.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/OPENJPA-587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sandeep Shrivastava updated OPENJPA-587: ---------------------------------------- Attachment: openjpa-1.1.0-SNAPSHOT-r422266-650703.patch The patch to the Sybase dictionary class to override the requiresAliasForSubselect value to true which is the default for Sybase. > Sybase queries that select columns from derived tables fail OOTB > ---------------------------------------------------------------- > > Key: OPENJPA-587 > URL: https://issues.apache.org/jira/browse/OPENJPA-587 > Project: OpenJPA > Issue Type: Bug > Components: jdbc > Affects Versions: 1.1.0 > Environment: OpenJPA 1.1.0-SNAPSHOT > version id: openjpa-1.1.0-SNAPSHOT-r422266:650703 > Apache svn revision: 422266:650703 > Reporter: Sandeep Shrivastava > Attachments: openjpa-1.1.0-SNAPSHOT-r422266-650703.patch > > Original Estimate: 24h > Remaining Estimate: 24h > > Sybase SQL syntax requires that all derived tables have a correlation name. The DBDictionary default for requiresAliasForSubselect is false. Overriding it to true in the Sybase dictionary class fixes the problem OOTB else users have to override it in the configuration by default with Sybase. > This test simply persists a JDO entity (having embedded entities) and then > tries to execute a query as follows: > public void testQuery() { > PersistenceManager pm = getPM(); > Query q = pm.newQuery(EmbeddedOwnerPC.class, > 'stringField == \'string1\' && embedded.intField == 1 ' > + '&& complexEmbedded.stringField == \'recurseEmbedString\' ' > + '&& complexEmbedded.ownerField.id1 == 3 ' > + '&& complexEmbedded.stringSet.contains (\'foo\') ' > + '&& complexEmbedded.embedded != null ' > // just to test not null > + > '&& complexEmbedded.embedded.stringField == > \'embedString2\''); > Collection results = (Collection) q.execute(); > Exception is : > [testlogic] [2008-03-28 12:15:57,426] BEGIN > org.apache.cactus.ServletTestCase.testQuery > [testlogic] > file:/D:/weblogic/dev/src/wls/qa/tests/functional/jdo/kodo/datacache/datacacheR1.test.xml#testdatacache > [testlogic] > kodo.jdo.DataStoreException: The derived table expression is missing a > correlation name. Check derived table syntax in the Reference Manual. > > > org.apache.cactus.ServletTestCase.testQuery > [testlogic] file:/D:/weblogic/dev/src/wls/qa/tests/functional/jdo/kodo/datacache/datacacheR1.test.xml#testdatacache > [testlogic] > kodo.jdo.DataStoreException: The derived table expression is missing a correlation name. Check derived table syntax in the Reference Manual. > [testlogic] at org.apache.openjpa.jdbc.sql.SQLExceptions.narrow(SQLExceptions.java:146) > [testlogic] at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4081) > [testlogic] at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) > [testlogic] at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88) > [testlogic] at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64) > [testlogic] at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.handleCheckedException(SelectResultObjectProvider.java:155) > [testlogic] at org.apache.openjpa.datacache.QueryCacheStoreQuery$CachingResultObjectProvider.handleCheckedException(QueryCacheStoreQuery.java:639) > [testlogic] at org.apache.openjpa.lib.rop.WindowResultList.size(WindowResultList.java:95) > [testlogic] at org.apache.openjpa.kernel.DelegatingResultList.size(DelegatingResultList.java:136) > [testlogic] at kodo.kernel.TestEmbedded.testQuery(TestEmbedded.java:296) > [testlogic] at org.apache.cactus.internal.AbstractCactusTestCase.runBareServer(AbstractCactusTestCase.java:149) > [testlogic] at org.apache.cactus.internal.server.AbstractWebTestCaller.doTest(AbstractWebTestCaller.java:119) > [testlogic] at org.apache.cactus.internal.server.AbstractWebTestController.handleRequest_aroundBody0(AbstractWebTestController.java:93) > [testlogic] at org.apache.cactus.internal.server.AbstractWebTestController.handleRequest_aroundBody1$advice(AbstractWebTestController.java:224) > [testlogic] at org.apache.cactus.internal.server.AbstractWebTestController.handleRequest(AbstractWebTestController.java:1) > [testlogic] at org.apache.cactus.server.ServletTestRedirector.doPost_aroundBody2(ServletTestRedirector.java:101) > [testlogic] at org.apache.cactus.server.ServletTestRedirector.doPost_aroundBody3$advice(ServletTestRedirector.java:224) > [testlogic] at org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedirector.java:1) > [testlogic] at org.apache.cactus.server.ServletTestRedirector.doGet_aroundBody0(ServletTestRedirector.java:72) > [testlogic] at org.apache.cactus.server.ServletTestRedirector.doGet_aroundBody1$advice(ServletTestRedirector.java:224) > [testlogic] at org.apache.cactus.server.ServletTestRedirector.doGet(ServletTestRedirector.java:1) > [testlogic] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) > [testlogic] at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.