Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 46044 invoked from network); 3 Jun 2010 08:44:26 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 3 Jun 2010 08:44:26 -0000 Received: (qmail 55479 invoked by uid 500); 3 Jun 2010 08:44:26 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 55423 invoked by uid 500); 3 Jun 2010 08:44:24 -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 55416 invoked by uid 99); 3 Jun 2010 08:44:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Jun 2010 08:44:23 +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.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Jun 2010 08:44:21 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o538hxh2021217 for ; Thu, 3 Jun 2010 08:43:59 GMT Message-ID: <5719218.154561275554639491.JavaMail.jira@thor> Date: Thu, 3 Jun 2010 04:43:59 -0400 (EDT) From: "Knut Anders Hatlen (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Commented: (DERBY-4449) ArrayIndexOutOfBoundsException when inserting DEFAULT into unspecified column In-Reply-To: <1133913897.1258580919697.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-4449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12875011#action_12875011 ] Knut Anders Hatlen commented on DERBY-4449: ------------------------------------------- Here's the failing code: // Get ColumnDescriptor by name or by position? ColumnDescriptor cd; if (tcl == null) { cd = ttd.getColumnDescriptor(index + 1); } else { ResultColumn trc = (ResultColumn) tcl.elementAt(index); cd = ttd.getColumnDescriptor(trc.getName()); } // Too many RCs if no ColumnDescriptor if (cd == null) { throw StandardException.newException(SQLState.LANG_TOO_MANY_RESULT_COLUMNS, ttd.getQualifiedName()); } The call to tcl.elementAt(index) is the one that raises the AIOOBE. Note that the code expects that there may be too many columns, and then getColumnDescriptor() should return null. But in the case where we have a target column list, we fail before we get to the point where getColumnDescriptor() is called. I think it would be sufficient to check that the index is within range before calling elementAt() and set cd to null if it's not. > ArrayIndexOutOfBoundsException when inserting DEFAULT into unspecified column > ----------------------------------------------------------------------------- > > Key: DERBY-4449 > URL: https://issues.apache.org/jira/browse/DERBY-4449 > Project: Derby > Issue Type: Bug > Components: SQL > Affects Versions: 10.5.3.0, 10.6.1.0 > Reporter: Knut Anders Hatlen > Assignee: Knut Anders Hatlen > > When inserting rows into a table, with just a subset of the table's columns in the target column list, an ArrayIndexOutOfBoundsException is raised if the table constructor contains the same number of columns as the target table, and the extra columns are specified as DEFAULT: > ij> create table t (a int, b int); > 0 rows inserted/updated/deleted > ij> insert into t(a) values (1,default); > ERROR XJ001: Java exception: '1 >= 1: java.lang.ArrayIndexOutOfBoundsException'. > The insert statement should have failed with this error: > ERROR 42802: The number of values assigned is not the same as the number of specified or implied columns. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.