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

Using UNION ALL with NULL in views results in unintended cast to string and errors

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Blocker
    • None
    • 9.0.3
    • Query Engine
    • None
    • Hide

      1. configure in test-vdb.xml the following virtual view:

          <model visible = "true" type = "VIRTUAL" name = "views">
              <metadata type = "DDL"><![CDATA[
                CREATE virtual view v2 as 
      	     select null as t union all
      	     select null as t
              ]]>
              </metadata>
          </model>
      

      2. run the following script:

      select * from views.v2;;
      
      Show
      1. configure in test-vdb.xml the following virtual view: <model visible = "true" type = "VIRTUAL" name = "views" > <metadata type = "DDL" > <![CDATA[ CREATE virtual view v2 as select null as t union all select null as t ]]> </metadata> </model> 2. run the following script: select * from views.v2;;

    Description

      Running the script:

      select * from views.v2;;
      

      leads to the following errors:

      2017-06-06 15:27:38,670 ERROR [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue19) JeWUXFUzqsu3 TEIID30019 Unexpected exception for request JeWUXFUzqsu3.7: org.teiid.core.TeiidRuntimeException: TEIID30447 org.teiid.api.exception.query.QueryResolverException: TEIID30082 Expected value of type 'null' but 'null' is of type 'string' and no implicit conversion is available.
              at org.teiid.query.sql.lang.SetQuery.getTypedProjectedSymbols(SetQuery.java:145)
              at org.teiid.query.rewriter.QueryRewriter.correctProjectedTypes(QueryRewriter.java:819)
              at org.teiid.query.rewriter.QueryRewriter.rewriteSetQuery(QueryRewriter.java:832)
              at org.teiid.query.rewriter.QueryRewriter.rewriteCommand(QueryRewriter.java:270)
              at org.teiid.query.rewriter.QueryRewriter.rewrite(QueryRewriter.java:171)
              at org.teiid.query.rewriter.QueryRewriter.rewrite(QueryRewriter.java:175)
              at org.teiid.query.optimizer.relational.RelationalPlanner.resolveVirtualGroup(RelationalPlanner.java:1992)
              at org.teiid.query.optimizer.relational.RelationalPlanner.buildTree(RelationalPlanner.java:1383)
              at org.teiid.query.optimizer.relational.RelationalPlanner.createQueryPlan(RelationalPlanner.java:1270)
              at org.teiid.query.optimizer.relational.RelationalPlanner.createQueryPlan(RelationalPlanner.java:1221)
              at org.teiid.query.optimizer.relational.RelationalPlanner.generatePlan(RelationalPlanner.java:954)
              at org.teiid.query.optimizer.relational.RelationalPlanner.optimize(RelationalPlanner.java:202)
              at org.teiid.query.optimizer.QueryOptimizer.optimizePlan(QueryOptimizer.java:159)
              at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:445)
              at org.teiid.dqp.internal.process.Request.processRequest(Request.java:473)
              at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:642)
              at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:337)
              at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
              at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:274)
              at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
              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:1145)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
              at java.lang.Thread.run(Thread.java:745)
      Caused by: org.teiid.api.exception.query.QueryResolverException: TEIID30082 Expected value of type 'null' but 'null' is of type 'string' and no implicit conversion is available.
              at org.teiid.query.resolver.util.ResolverUtil.convertExpression(ResolverUtil.java:232)
              at org.teiid.query.resolver.util.ResolverUtil.convertExpression(ResolverUtil.java:197)
              at org.teiid.query.sql.lang.SetQuery.getTypedProjectedSymbols(SetQuery.java:143)
              ... 24 more
      

      Attachments

        Activity

          People

            rhn-engineering-shawkins Steven Hawkins
            dalex005 Dmitrii Pogorelov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: