[teiid-issues] [JBoss JIRA] (TEIID-3776) Teiid throws NPE if query contains AVG function on varchar type

Steven Hawkins (JIRA) issues at jboss.org
Mon Oct 19 08:49:00 EDT 2015


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

Steven Hawkins resolved TEIID-3776.
-----------------------------------
    Resolution: Done


Updating the resolving logic to account more for null type values and added a general validation to ensure all non-matching aggregate scenarios are caught.

> Teiid throws NPE if query contains AVG function on varchar type
> ---------------------------------------------------------------
>
>                 Key: TEIID-3776
>                 URL: https://issues.jboss.org/browse/TEIID-3776
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 8.7.1.6_2
>            Reporter: Juraj Duráni
>            Assignee: Steven Hawkins
>             Fix For: 8.12.1, 8.13
>
>
> 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:
> {code:text}
> 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
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the teiid-issues mailing list