]
Steven Hawkins resolved TEIID-5271.
-----------------------------------
Fix Version/s: 10.0.4
10.2
10.1.2
Resolution: Done
The logic looking for correlations was not correctly walking all the way up the join tree.
By stopping prematurely the correlations were not found. There were another couple of
small adjustments to make this case work - in particular we were too broadly merging the
virtual layer with correlations and no sources.
Joining more than one table/view to results of table function causes
error
--------------------------------------------------------------------------
Key: TEIID-5271
URL:
https://issues.jboss.org/browse/TEIID-5271
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 10.1
Environment: teiid-10.1.0 on WildFly Full 11.0.0.Final (WildFly Core
3.0.8.Final)
Reporter: dalex dalex
Assignee: Steven Hawkins
Fix For: 10.0.4, 10.2, 10.1.2
Joining more than one table/view to results of table function causes error. For example,
such query:
{code:sql}
select * from views.v x1, table(select x1.a a) x2 join views.v x3 on x2.a=x3.a join
views.v x4 on x4.a=x3.a ;;
{code}
causes such error:
{code:noformat}
2018-03-05 10:20:14,105 ERROR [org.teiid.PROCESSOR] (Worker3_QueryProcessorQueue10)
/oCxMs2/Zs22 TEIID30019 Unexpected exception for request /oCxMs2/Zs22.5:
org.teiid.core.TeiidCompo
nentException: TEIID30328 Unable to evaluate x1.a: No value was available
at org.teiid.query.util.CommandContext.getFromContext(CommandContext.java:520)
at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:751)
at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:707)
at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:344)
at org.teiid.query.eval.Evaluator.internalEvaluateTVL(Evaluator.java:185)
at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:297)
at org.teiid.query.eval.Evaluator.internalEvaluateTVL(Evaluator.java:181)
at org.teiid.query.eval.Evaluator.evaluateTVL(Evaluator.java:174)
at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:168)
at
org.teiid.query.processor.relational.SelectNode.nextBatchDirect(SelectNode.java:106)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at
org.teiid.query.processor.relational.LimitNode.nextBatchDirect(LimitNode.java:98)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at
org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at
org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:141)
at
org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:111)
at
org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
at
org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:142)
at
org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:480)
at
org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:350)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:47)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:276)
at
org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
at
org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:115)
at
org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:206)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
{code}