Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-1636

Programmatically configure internal materialized tables

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Won't Do
    • Icon: Optional Optional
    • None
    • 7.3
    • Query Engine
    • None

      I am trying to programatically create a materialized view from the MetadataFactory object. I have created a table object using addTable() and then I call setMaterialized(true). I see there are a couple of other related method names in Table (setMaterializedStagedTable and setMaterializedTable). I assume those are when materializing to an external database. What I am doing is incorrect, however.

      When I try to issue a refresh CALL SYSADMIN.refreshMatView(viewname=>'xyz_metadata.property', invalidate=>false), I get the following exception:
      QueryMetadataException]QueryPlan could not be found for physical group chorus_metadata.property
      at org.teiid.query.metadata.TransformationMetadata.getVirtualPlan(TransformationMetadata.java:453)
      at org.teiid.query.metadata.TempMetadataAdapter.getVirtualPlan(TempMetadataAdapter.java:253)
      at org.teiid.query.optimizer.relational.RelationalPlanner.getGlobalTempTableMetadataId(RelationalPlanner.java:1136)
      at org.teiid.query.tempdata.TempTableDataManager.handleSystemProcedures(TempTableDataManager.java:320)
      at org.teiid.query.tempdata.TempTableDataManager.registerRequest(TempTableDataManager.java:188)
      at org.teiid.query.tempdata.TempTableDataManager.registerRequest(TempTableDataManager.java:170)
      at org.teiid.query.processor.relational.AccessNode.registerRequest(AccessNode.java:197)
      at org.teiid.query.processor.relational.AccessNode.open(AccessNode.java:118)
      at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:250)
      at org.teiid.query.processor.relational.RelationalPlan.open(RelationalPlan.java:152)
      at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:134)
      at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:105)
      at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:115)
      at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:250)
      at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:184)
      at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:49)
      at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:188)
      at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:116)
      at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:290)
      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:619)
      13 Jun 2011 17:05:43,663 PDT INFO [MATVIEWS] Loading materialized view table #MAT_XYZ_METADATA.PROPERTY

      Subsequent calls to the refresh stored procedure yield an NPE else in Teiid code.

              rhn-engineering-shawkins Steven Hawkins
              markaddleman_jira Mark Addleman (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: