[teiid-issues] [JBoss JIRA] (TEIID-5001) TextTable usage in UNION/UNION ALL queries with JOINs fails with "No value was available" or NPE errors

Steven Hawkins (JIRA) issues at jboss.org
Wed Jul 19 18:40:00 EDT 2017


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

Steven Hawkins resolved TEIID-5001.
-----------------------------------
    Fix Version/s: 10.0
                   9.2.5
                   9.3.2
       Resolution: Done


Updated the check for correlated references to look at each source.  Also backported the npe fix to 9.2.x.

> TextTable usage in UNION/UNION ALL queries with JOINs fails with "No value was available" or NPE errors
> -------------------------------------------------------------------------------------------------------
>
>                 Key: TEIID-5001
>                 URL: https://issues.jboss.org/browse/TEIID-5001
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 9.3
>         Environment: teiid-9.3.0.Final on WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final)
>            Reporter: dalex dalex
>            Assignee: Steven Hawkins
>            Priority: Blocker
>             Fix For: 10.0, 9.2.5, 9.3.2
>
>         Attachments: emptydateranges.csv
>
>
> Running the following query:
> {code:sql}
> SELECT id FROM 
>     (SELECT d.id FROM (
>          SELECT 'l1' as domain
>         ) dim_md_domains_to_load, table(CALL testcase.proc_web_avg_visit_duration_empty("domain" => domain)) x
>     JOIN testcase.dim_md_date_ranges d ON true
>     UNION
>     SELECT id FROM testcase.dim_md_date_ranges
>     ) z
> {code}
> when using the following procedure:
> {code:sql}
> CREATE VIRTUAL PROCEDURE proc_web_avg_visit_duration_empty(
>             domain string
>           ) RETURNS (i integer) AS
>           BEGIN
>             select 1;
>           END
> {code}
> leads to the following error message:
> {code}
> 2017-07-19 19:57:12,608 ERROR [org.teiid.PROCESSOR] (Worker1_QueryProcessorQueue15) FOgTHY5kk50l TEIID30019 Unexpected exception for request FOgTHY5kk50l.1: org.teiid.core.TeiidCo
> mponentException: TEIID30328 Unable to evaluate dim_md_domains_to_load.domain: No value was available
>         at org.teiid.query.util.CommandContext.getFromContext(CommandContext.java:514)
>         at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:766)
>         at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:726)
>         at org.teiid.query.processor.proc.ProcedurePlan.evaluateExpression(ProcedurePlan.java:857)
>         at org.teiid.query.processor.proc.ProcedurePlan.open(ProcedurePlan.java:225)
>         at org.teiid.query.processor.relational.PlanExecutionNode.open(PlanExecutionNode.java:82)
>         at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254)
>         at org.teiid.query.processor.relational.JoinStrategy.openLeft(JoinStrategy.java:95)
>         at org.teiid.query.processor.relational.NestedTableJoinStrategy.openLeft(NestedTableJoinStrategy.java:74)
>         at org.teiid.query.processor.relational.JoinNode.open(JoinNode.java:145)
>         at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254)
>         at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254)
>         at org.teiid.query.processor.relational.UnionAllNode.open(UnionAllNode.java:123)
>         at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254)
>         at org.teiid.query.processor.relational.DupRemoveNode.open(DupRemoveNode.java:53)
>         at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254)
>         at org.teiid.query.processor.relational.LimitNode.open(LimitNode.java:146)
>         at org.teiid.query.processor.relational.RelationalPlan.open(RelationalPlan.java:136)
>         at org.teiid.query.processor.QueryProcessor.init(QueryProcessor.java:231)
>         at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:138)
>         at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114)
>         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:477)
>         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:282)
>         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}
> and when using the following procedure:
> {code:sql}
> CREATE VIRTUAL PROCEDURE proc_web_avg_visit_duration_empty(
>             domain string
>           ) RETURNS (i integer) AS
>           BEGIN
>           END
> {code}
> leads to the following error message:
> {code}
> 2017-07-19 19:51:09,898 ERROR [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue6) W9VMA4B+d8Gd TEIID30019 Unexpected exception for request W9VMA4B+d8Gd.1: java.lang.NullPointerEx
> ception
>         at org.teiid.query.processor.proc.Program.instructionsRequireTransaction(Program.java:307)
>         at org.teiid.query.processor.proc.Program.requiresTransaction(Program.java:301)
>         at org.teiid.query.processor.proc.ProcedurePlan.requiresTransaction(ProcedurePlan.java:881)
>         at org.teiid.query.processor.relational.PlanExecutionNode.requiresTransaction(PlanExecutionNode.java:184)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:283)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:291)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:291)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:291)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:291)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:291)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:291)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:291)
>         at org.teiid.query.processor.relational.RelationalPlan.requiresTransaction(RelationalPlan.java:269)
>         at org.teiid.dqp.internal.process.Request.getTransactionContext(Request.java:374)
>         at org.teiid.dqp.internal.process.Request.createProcessor(Request.java:350)
>         at org.teiid.dqp.internal.process.Request.processRequest(Request.java:485)
>         at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:657)
>         at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:338)
>         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:282)
>         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}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the teiid-issues mailing list