Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 96779 invoked from network); 13 Oct 2008 17:29:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 13 Oct 2008 17:29:05 -0000 Received: (qmail 85945 invoked by uid 500); 13 Oct 2008 17:29:05 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 85907 invoked by uid 500); 13 Oct 2008 17:29:05 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 85896 invoked by uid 99); 13 Oct 2008 17:29:05 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Oct 2008 10:29:05 -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; Mon, 13 Oct 2008 17:28:07 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 5BEAD234C21B for ; Mon, 13 Oct 2008 10:28:44 -0700 (PDT) Message-ID: <1336904856.1223918924375.JavaMail.jira@brutus> Date: Mon, 13 Oct 2008 10:28:44 -0700 (PDT) From: "Mamta A. Satoor (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Commented: (DERBY-3872) NullPoinerException thrown when INTEGER function used as a predicate in a WHERE clause of a SELECT .. GROUP BY .. HAVING statement In-Reply-To: <1408929505.1220993744315.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/DERBY-3872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12639125#action_12639125 ] Mamta A. Satoor commented on DERBY-3872: ---------------------------------------- Sorry, I was out towards the end of last week and so couldn't respond sooner. Thanks a bunch Army and Bryan. Seems like we have definitely found a solution. I will apply the patch armysFix.diff and run all the junit and derbyall tests on my machine and commit the patch in next couple days. Thanks again for all your help. > NullPoinerException thrown when INTEGER function used as a predicate in a WHERE clause of a SELECT .. GROUP BY .. HAVING statement > ----------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-3872 > URL: https://issues.apache.org/jira/browse/DERBY-3872 > Project: Derby > Issue Type: Bug > Affects Versions: 10.3.3.0 > Reporter: Stan Bradbury > Assignee: Mamta A. Satoor > Attachments: armysFix.diff, NPE_Reproduction.sql, QueryWithoutTruePred.out, QueryWithTruePred.out > > > Use attached SQL script to create two tables , execute the following SQL and throw the exception and stack trace below. NOTE: removing the 'always true' clause '.. ( integer (1.1) = 1) .." from the SQL and the query does not fail. Releated?? > select q1."DEPTNO" from DEPTTAB q1, EMPTAB q2 where ( integer (1.1) = 1) and ( q2."DEPT_DEPTNO" = q1."DEPTNO") > GROUP BY q1."DEPTNO" > HAVING max( q2."SALARY") >= ( select q3."SALARY" from EMPTAB q3 where ( q3."EMPID" = q1."DEPTNO") ) > ERROR 38000: The exception 'java.lang.NullPointerException' was thrown while evaluating an expression. > . . .derby.iapi.error.StandardException.newException > . . .derby.iapi.error.StandardException.unexpectedUserException > . . .derby.impl.services.reflect.DirectCall.invoke > . . .derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore > . . .derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow > . . .derby.impl.jdbc.EmbedResultSet.movePosition > . . .derby.impl.jdbc.EmbedResultSet.next > . . .derby.tools.JDBCDisplayUtil.indent_DisplayResults > . . .derby.tools.JDBCDisplayUtil.indent_DisplayResults > . . .derby.tools.JDBCDisplayUtil.indent_DisplayResults > . . .derby.tools.JDBCDisplayUtil.DisplayResults > . . .derby.impl.tools.ij.utilMain.displayResult > . . .derby.impl.tools.ij.utilMain.doCatch > . . .derby.impl.tools.ij.utilMain.runScriptGuts > . . .derby.impl.tools.ij.utilMain.go > . . .derby.impl.tools.ij.Main.go > . . .derby.impl.tools.ij.Main.mainCore > . . .derby.impl.tools.ij.Main14.main > . . .derby.tools.ij.main > Caused by: java.lang.NullPointerException > . . .derby.iapi.types.NumberDataType.compare > . . .derby.impl.store.access.btree.ControlRow.compareIndexRowFromPageToKey > . . .derby.impl.store.access.btree.ControlRow.searchForEntry > . . .derby.impl.store.access.btree.LeafControlRow.search > . . .derby.impl.store.access.btree.BTreeScan.positionAtStartForForwardScan > . . .derby.impl.store.access.btree.BTreeForwardScan.positionAtStartPosition > . . .derby.impl.store.access.btree.BTreeForwardScan.fetchRows > . . .derby.impl.store.access.btree.BTreeScan.fetchNext > . . .derby.impl.sql.execute.TableScanResultSet.getNextRowCore > . . .derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore > . . .derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore > . . .derby.impl.sql.execute.OnceResultSet.getNextRowCore > . . .derby.exe.ac601a400fx011cx480cx5eacx00000010d8100.g0 > . . .derby.exe.ac601a400fx011cx480cx5eacx00000010d8100.e6 > ... 17 more > ============= begin nested exception, level (1) =========== > java.lang.NullPointerException > . . .derby.iapi.types.NumberDataType.compare > . . .derby.impl.store.access.btree.ControlRow.compareIndexRowFromPageToKey > . . .derby.impl.store.access.btree.ControlRow.searchForEntry > . . .derby.impl.store.access.btree.LeafControlRow.search > . . .derby.impl.store.access.btree.BTreeScan.positionAtStartForForwardScan > . . .derby.impl.store.access.btree.BTreeForwardScan.positionAtStartPosition > . . .derby.impl.store.access.btree.BTreeForwardScan.fetchRows > . . .derby.impl.store.access.btree.BTreeScan.fetchNext > . . .derby.impl.sql.execute.TableScanResultSet.getNextRowCore > . . .derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore > . . .derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore > . . .derby.impl.sql.execute.OnceResultSet.getNextRowCore > . . .derby.exe.ac601a400fx011cx480cx5eacx00000010d8100.g0 > . . .derby.exe.ac601a400fx011cx480cx5eacx00000010d8100.e6 > . . .derby.impl.services.reflect.DirectCall.invoke > . . .derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore > . . .derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow > . . .derby.impl.jdbc.EmbedResultSet.movePosition > . . .derby.impl.jdbc.EmbedResultSet.next > . . .derby.tools.JDBCDisplayUtil.indent_DisplayResults > . . .derby.tools.JDBCDisplayUtil.indent_DisplayResults > . . .derby.tools.JDBCDisplayUtil.indent_DisplayResults > . . .derby.tools.JDBCDisplayUtil.DisplayResults > . . .derby.impl.tools.ij.utilMain.displayResult > . . .derby.impl.tools.ij.utilMain.doCatch > . . .derby.impl.tools.ij.utilMain.runScriptGuts > . . .derby.impl.tools.ij.utilMain.go > . . .derby.impl.tools.ij.Main.go > . . .derby.impl.tools.ij.Main.mainCore > . . .derby.impl.tools.ij.Main14.main > . . .derby.tools.ij.main > ============= end nested exception, level (1) =========== > Cleanup action completed -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.