db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "A B (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-3303) ArrayIndexOutOfBoundsException at MergeSort.compare
Date Fri, 15 Feb 2008 18:44:08 GMT

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

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

    Attachment: d3303_v1.patch

>From what I could gather the failures mentioned in my previous comment were caused by
two different problems, but both come down to the mistreatment (esp. ignoring) of columns
in a ResultColumnList that have been "pulled up" for GROUP BY processing.

I'm attaching a patch, d3303_v1.patch, which makes two very small changes to OrderByColumn.java
to account for "pulled" GROUP BY columns.  With this patch applied all of the queries posted
in my previous comment run as expected.

I also ran derbyall and suites.All with ibm142 and they ran cleanly.

I _think_ this constitutes a complete fix for the issue, but I am not all that familiar with
the GROUP BY and ORDER BY column "pulling" logic that exists in Derby.  I've skimmed through
the relevant code for reviews but have never actually changed it myself.  So if anyone out
there can double-check the change, that would be great.  It's only two lines of code change
plus some additional comments, so it should in theory be quick...

> 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.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
>            Priority: Blocker
>         Attachments: d3303_v1.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.


Mime
View raw message