ArrayIndexOutOfBoundsException in queries with ORDER BY
-------------------------------------------------------
Key: TEIID-1577
URL:
https://issues.jboss.org/browse/TEIID-1577
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 7.4
Environment: Teiid 7.4 cr1 (with build #1483 of Teiid Engine 7.4 cr2) deployed on
JBoss AS 5.1, installed on Ubuntu Server 10.04 LTS. Three source models: one in MySQL
5.1.51 (on the same machine of JBoss), one on SQLServer 2000 (on another machine), one on
SQLServer 2005 (on another machine)
Reporter: Claudio Venturini
Assignee: Steven Hawkins
The models are almost the same described in [
https://issues.jboss.org/browse/TEIID-1576].
There's a global view model (named "aop") that integrates the data from
three view models (using a UNION ALL operator). It has been already described in
[
https://issues.jboss.org/browse/TEIID-1562].
When I run the following query I get an IndexOutOfBoundsException:
{code:sql}
SELECT
codop,
codice,
data,
codref,
groupdim
FROM
aop.misura124.aop.vendita_referenza
order by data asc
{code}
The content of the log file is the following:
{noformat}
2011-05-04 17:36:38,681 DEBUG [org.teiid.COMMAND_LOG] (New I/O server worker #1-1) START
USER COMMAND: startTime=2011-05-04
17:36:38.681 requestID=fvJwLRknMQEc.2 txID=null sessionID=fvJwLRknMQEc applicationName=JDBC principal=admin@teiid-security vdbName=misura124 vdbVersion=1 sql=SELECT
VDBName AS TABLE_CAT, SchemaName AS TABLE_SCHEM, Name AS TABLE_NAME, CASE WHEN IsSystem =
'true' and UCASE(Type) = 'TABLE' THEN 'SYSTEM TABLE' ELSE
UCASE(Type) END AS TABLE_TYPE, Description AS REMARKS, NULL AS TYPE_CAT, NULL AS
TYPE_SCHEM, NULL AS TYPE_NAME, NULL AS SELF_REFERENCING_COL_NAME, NULL AS REF_GENERATION,
IsPhysical AS ISPHYSICAL FROM SYS.Tables g WHERE UCASE(VDBName) LIKE ? ESCAPE '\'
AND UCASE(SchemaName) LIKE ? ESCAPE '\' AND UCASE(Name) LIKE ? ESCAPE
'\' AND (CASE WHEN IsSystem = 'true' and UCASE(Type) = 'TABLE'
THEN 'SYSTEM TABLE' ELSE UCASE(Type) END LIKE ? ESCAPE '\' ) ORDER BY
TABLE_TYPE, TABLE_SCHEM, TABLE_NAME
codop,
codice,
data,
codref,
groupdim
FROM
aop.misura124.aop.vendita_referenza
order by data asc
2011-05-04 17:36:40,071 DEBUG [org.teiid.COMMAND_LOG] (Worker1_QueryProcessorQueue6)
ERROR USER COMMAND: endTime=2011-05-04
17:36:40.071 requestID=qaDAPpF9gmnN.0 txID=null sessionID=qaDAPpF9gmnN principal=admin@teiid-security vdbName=misura124 vdbVersion=1 finalRowCount=null
2011-05-04 17:36:40,071 ERROR [org.teiid.PROCESSOR] (Worker1_QueryProcessorQueue6)
Unexpected exception for request qaDAPpF9gmnN.0
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(ArrayList.java:324)
at
org.teiid.query.optimizer.relational.rules.RuleMergeVirtual.checkForSimpleProjection(RuleMergeVirtual.java:288)
at
org.teiid.query.optimizer.relational.rules.RuleMergeVirtual.doMerge(RuleMergeVirtual.java:158)
at
org.teiid.query.optimizer.relational.rules.RuleMergeVirtual.execute(RuleMergeVirtual.java:73)
at
org.teiid.query.optimizer.relational.RelationalPlanner.executeRules(RelationalPlanner.java:460)
at
org.teiid.query.optimizer.relational.RelationalPlanner.optimize(RelationalPlanner.java:225)
at org.teiid.query.optimizer.QueryOptimizer.optimizePlan(QueryOptimizer.java:192)
at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:429)
at org.teiid.dqp.internal.process.Request.processRequest(Request.java:452)
at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:425)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:224)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:56)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:197)
at
org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:118)
at
org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:288)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
{noformat}
If I remove the GROUP BY statement, the query works. I also tried to sort on other fields,
but the result doesn't change. As always, I've reduced the models in order to
highlight where the problem is. I attach the project which contains them.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira