[teiid-issues] [JBoss JIRA] (TEIID-5146) UNION of two similar JOIN queries fails with ASSERTION FAILED error if it contains table function of procedural call with arguments

Steven Hawkins (JIRA) issues at jboss.org
Mon Nov 13 15:51:00 EST 2017


     [ https://issues.jboss.org/browse/TEIID-5146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins updated TEIID-5146:
----------------------------------
    Fix Version/s: 9.3.5


> UNION of two similar JOIN queries fails with ASSERTION FAILED error if it contains table function of procedural call with arguments
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TEIID-5146
>                 URL: https://issues.jboss.org/browse/TEIID-5146
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 9.3.4
>            Reporter: El Fuego
>            Assignee: Steven Hawkins
>             Fix For: 9.3.5, 10.1, 10.0.1
>
>
> UNION of two similar JOINs containing table function of procedural call with arguments, like:
> {code:sql}SELECT d.col_t2 FROM "ds.test_t1", table(CALL views.pr0("arg1" => col_t1)) x
> 	JOIN "ds.test_t2" d 
> 		ON true
> --
> UNION
> --
> SELECT d.col_t2 FROM "ds.test_t1", table(CALL views.pr0("arg1" => col_t1)) x
> 	JOIN "ds.test_t2" d 
> 		ON true{code}
> fails with error:
> {code}2017-11-11 16:16:57,158 ERROR [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue23) wbDLp863MJn9 TEIID30019 Unexpected exception for request wbDLp863MJn9.7: java.lang.AssertionError: ASSERTION FAILED: expected reference to be not null
> 	at org.teiid.core.util.Assertion.failed(Assertion.java:73)
> 	at org.teiid.core.util.Assertion.isNotNull(Assertion.java:100)
> 	at org.teiid.core.util.Assertion.isNotNull(Assertion.java:92)
> 	at org.teiid.common.buffer.TupleBuffer.getBatch(TupleBuffer.java:287)
> 	at org.teiid.dqp.internal.process.TupleSourceCache$CopyOnReadTupleSource.nextTuple(TupleSourceCache.java:103)
> 	at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:394)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 	at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164)
> 	at org.teiid.query.processor.relational.SourceState.prefetch(SourceState.java:211)
> 	at org.teiid.query.processor.relational.SourceState.rowCountLE(SourceState.java:158)
> 	at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:227)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 	at org.teiid.query.processor.relational.LimitNode.nextBatchDirect(LimitNode.java:102)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 	at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:69)
> 	at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:70)
> 	at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:84)
> 	at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:92)
> 	at org.teiid.query.processor.relational.NestedTableJoinStrategy.process(NestedTableJoinStrategy.java:119)
> 	at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:235)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 	at org.teiid.query.processor.relational.LimitNode.nextBatchDirect(LimitNode.java:102)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 	at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:150)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 	at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:147)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 	at org.teiid.query.processor.relational.LimitNode.nextBatchDirect(LimitNode.java:102)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 	at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:145)
> 	at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:152)
> 	at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:115)
> 	at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164)
> 	at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:146)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:479)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:349)
> 	at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:275)
> 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> 	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}
> even if procedure doesn't use that argument at all.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the teiid-issues mailing list