]
Steven Hawkins resolved TEIID-1577.
-----------------------------------
Labels: 7.4CR2 exception order (was: exception order)
Fix Version/s: 7.4
Resolution: Done
The fix was to ensure that secondary branches do not need to modify above the set op when
their top view layer is removed.
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
Labels: exception, order, 7.4CR2
Fix For: 7.4
Attachments: Misura124.zip
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: