Teiid throws TEIID31071 if sub query uses "in memory" materialized view and "external" materialized view

Solution Verified - Updated -

Issue

  • Teiid Engine throws "Invalid table"[1] if a query includes a sub query which uses 2 different types of tables, one is "in memory" materialized view, and the other one is "external" materialized view.
  • Although the Exception[1] says "Table xxxxx has no columns defined", columns are defined.
  • If user does not use a sub query and JOIN "in memory" materialized view and "external" materialized view, its works fine
  • The issue always occurs even rebooting JBoss DV

[1]

15:46:00,634 ERROR [org.teiid.PROCESSOR] (Worker16_QueryProcessorQueue324) TEIID30019 Unexpected exception for request MwL2Tasy3Q3e.0: org.teiid.api.exception.query.QueryMetadataException: TEIID31071 Invalid table; Table xxxxx has no columns defined
        at org.teiid.query.metadata.TransformationMetadata.getElementIDsInGroupID(TransformationMetadata.java:279) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.metadata.TempMetadataAdapter.getElementIDsInGroupID(TempMetadataAdapter.java:218) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.resolver.util.ResolverUtil.getGroupInfo(ResolverUtil.java:508) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.resolver.util.ResolverUtil.resolveElementsInGroup(ResolverUtil.java:492) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.getOutputCols(NewCalculateCostUtil.java:585) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.createColStats(NewCalculateCostUtil.java:533) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.estimateSourceNodeCost(NewCalculateCostUtil.java:521) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.computeNodeCost(NewCalculateCostUtil.java:154) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.updateCardinality(NewCalculateCostUtil.java:136) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.updateCardinality(NewCalculateCostUtil.java:133) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.updateCardinality(NewCalculateCostUtil.java:133) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.computeCostForTree(NewCalculateCostUtil.java:122) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.JoinRegion.initializeCostingInformation(JoinRegion.java:390) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.rules.RulePlanJoins.execute(RulePlanJoins.java:163) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.RelationalPlanner.executeRules(RelationalPlanner.java:584) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.relational.RelationalPlanner.optimize(RelationalPlanner.java:245) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.query.optimizer.QueryOptimizer.optimizePlan(QueryOptimizer.java:159) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:409) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.Request.processRequest(Request.java:436) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:600) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:309) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:248) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:269) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214) [teiid-engine-8.4.1-redhat-7.jar:8.4.1-redhat-7]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_71]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_71]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_71]

Environment

  • Red Hat JBoss Data Virtualization
    • 6.0.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content