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

Teiid throws NPE if query contains AVG function on varchar type

    Details

      Description

      Execution of this query ends with NPE in Teiid:
      SELECT stringnum FROM bqt1.smalla GROUP BY stringnum HAVING avg(stringnum) = '1'

      Expected result:
      Exception similar to - org.teiid.api.exception.query.QueryValidatorException: TEIID30492 The aggregate function AVG cannot be used with non-numeric expressions: AVG(BQT1.SmallA.StringNum)

      Actual result:

      12:27:32,829 DEBUG [org.teiid.TRANSPORT] (New I/O worker #7) processing message:MessageHolder: key=619 contents=Invoke interface org.teiid.client.DQP.executeRequest
      12:27:32,830 DEBUG [org.teiid.PROCESSOR] (Worker52_QueryProcessorQueue378) Request Thread r77C2X0C5Gwa.10 with state NEW
      12:27:32,830 DEBUG [org.teiid.PROCESSOR] (Worker52_QueryProcessorQueue378) r77C2X0C5Gwa.10 Non-cachable command.
      12:27:32,830 DEBUG [org.teiid.PROCESSOR] (Worker52_QueryProcessorQueue378) r77C2X0C5Gwa.10 executing  SELECT stringnum FROM bqt1.smalla GROUP BY stringnum HAVING avg(stringnum) = '1'
      12:27:32,831 ERROR [org.teiid.PROCESSOR] (Worker52_QueryProcessorQueue378) TEIID30019 Unexpected exception for request r77C2X0C5Gwa.10: java.lang.NullPointerException
      	at org.teiid.query.resolver.util.ResolverVisitor.resolveCompareCriteria(ResolverVisitor.java:767) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.resolver.util.ResolverVisitor.visit(ResolverVisitor.java:248) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.sql.lang.CompareCriteria.acceptVisitor(CompareCriteria.java:126) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.sql.navigator.AbstractNavigator.visitVisitor(AbstractNavigator.java:54) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.postVisitVisitor(PreOrPostOrderNavigator.java:61) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.postVisitVisitor(SimpleQueryResolver.java:197) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.visit(PreOrPostOrderNavigator.java:135) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.sql.lang.CompareCriteria.acceptVisitor(CompareCriteria.java:126) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.sql.navigator.AbstractNavigator.visitNode(AbstractNavigator.java:63) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.visit(SimpleQueryResolver.java:214) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.resolver.command.SimpleQueryResolver.resolveCommand(SimpleQueryResolver.java:69) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.resolver.QueryResolver.resolveCommand(QueryResolver.java:271) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.query.resolver.QueryResolver.resolveCommand(QueryResolver.java:124) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.Request.resolveCommand(Request.java:260) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:369) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.Request.processRequest(Request.java:435) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:613) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:315) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:254) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.7.1.6_2-redhat-6.jar:8.7.1.6_2-redhat-6]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_40]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_40]
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_40]
       
      12:27:32,832 DEBUG [org.teiid.PROCESSOR] (Worker52_QueryProcessorQueue378) java.lang.NullPointerException Sending error to client r77C2X0C5Gwa.10
      12:27:32,833 DEBUG [org.teiid.TRANSPORT] (Worker52_QueryProcessorQueue378) send message: MessageHolder: key=619 contents=ResultsMessage rowCount=0 finalRow=-1
      

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                shawkins Steven Hawkins
                Reporter:
                jdurani Juraj Duráni
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: