[ 
https://issues.apache.org/jira/browse/DERBY-3303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

A B updated DERBY-3303:
-----------------------

    Attachment: d3303_v2.patch

Thank you very much for taking the time to review, Bryan.  I appreciate it!

Your suggestions are great ones so I'm attaching a _v2 patch which incorporates 
them.  I did modify the comments a bit to try to be more accurate about what 
"resolveAddedColumn()" really does--esp. for the example query, it doesn't 
really look for a column corresponding to "SUM(J)", rather it looks for a 
column corresponding to "this.addedColumnOffset", which (in the old example) 
ends up being SUM(J).  I also changed the example to order by SUM(K) instead of 
SUM(J) in hopes of making it clearer (since there are two "SUM(J)"s in the old 
example).

Hopefully the new comments are not worse than the old ones...

Thanks again for the quick feedback!

> ArrayIndexOutOfBoundsException at MergeSort.compare
> ---------------------------------------------------
>
>                 Key: DERBY-3303
>                 URL: https://issues.apache.org/jira/browse/DERBY-3303
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.3.1.4, 10.3.2.1, 10.4.0.0
>         Environment: ------------------ Java Information ------------------
> Java Version:    1.6.0_03
> Java Vendor:     Sun Microsystems Inc.
> Java home:       D:\Programs\Java\jre1.6.0_03
> Java classpath:  derbytools.jar
> OS name:         Windows XP
> OS architecture: x86
> OS version:      5.1
> Java user name:  Donatas
> Java user home:  C:\Documents and Settings\Donatas
> Java user dir:   d:\java\derby-10.3.2.1\lib
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> --------- Derby Information --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [D:\java\derby-10.3.2.1\lib\derbytools.jar] 10.3.2.1 - (599110)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> ------------------------------------------------------
>            Reporter: Donatas Ciuksys
>            Assignee: A B
>            Priority: Blocker
>         Attachments: d3303_v1.patch, d3303_v2.patch, db.zip, ddl.sql
>
>
> Derby throws ArrayIndexOutOfBoundsException  when I try to execute SQL query 
> shown below.
> This is a regression, since Derby 10.2.2.0 executes this query without 
> problems.
> Attached are DDL statements to create DB tables, and database itself (with 
> data).
> 2008-01-08 12:32:34.461 GMT Thread[DRDAConnThread_5,6,derby.daemons] (XID = 
> 1497), (SESSIONID = 0), (DATABASE = InventorizacijaDB), (DRDAID = 
> NF000001.G46A-666250070078662256{1}), Failed Statement is: select 
> MAX(preke0_.BARKODAS) as col_0_0_, MAX(preke0_.PAVADINIMAS) as col_1_0_, 
> MAX(preke0_.KIEKIS) as col_2_0_, SUM(irasas1_.FAKTINIS_KIEKIS) as col_3_0_ 
> from PREKE preke0_, IRASAS irasas1_, IRASU_BLOKAS irasubloka2_ where 
> irasas1_.IRASU_BLOKAS=irasubloka2_.ID and 
> preke0_.UNIKALUS_KODAS=irasas1_.UNIKALUS_KODAS and 
> irasubloka2_.INVENTORIZACIJA=? group by irasas1_.UNIKALUS_KODAS order by 
> abs(SUM(irasas1_.FAKTINIS_KIEKIS)-MAX(preke0_.KIEKIS)) DESC with 1 parameters 
> begin parameter #1: 1 :end parameter 
> java.lang.ArrayIndexOutOfBoundsException: 5
>       at org.apache.derby.impl.store.access.sort.MergeSort.compare(Unknown 
> Source)
>       at org.apache.derby.impl.store.access.sort.SortBuffer.insert(Unknown 
> Source)
>       at org.apache.derby.impl.store.access.sort.MergeInserter.insert(Unknown 
> Source)
>       at org.apache.derby.impl.sql.execute.SortResultSet.loadSorter(Unknown 
> Source)
>       at org.apache.derby.impl.sql.execute.SortResultSet.openCore(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown Source)
>       at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown 
> Source)
>       at org.apache.derby.impl.drda.DRDAStatement.execute(Unknown Source)
>       at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown 
> Source)
>       at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to