[ https://issues.apache.org/jira/browse/DRILL-3818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14905477#comment-14905477 ]
Daniel Barclay (Drill) commented on DRILL-3818: ----------------------------------------------- Stack trace from server log ({{sqlline.log}} from {{drill-embeded}}): {noformat} org.apache.drill.common.exceptions.UserException: VALIDATION ERROR: java.lang.NullPointerException [Error Id: d1ea15ce-e0dc-4ee8-afaf-ff9c970ffb1d ] at org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:524) ~[drill-common-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT] at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:181) [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT] at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:905) [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT] at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:244) [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_72] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_72] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_72] Caused by: org.apache.calcite.tools.ValidationException: java.lang.NullPointerException at org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:179) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.prepare.PlannerImpl.validateAndGetType(PlannerImpl.java:188) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateNode(DefaultSqlHandler.java:447) ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT] at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert(DefaultSqlHandler.java:190) ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT] at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:159) ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT] at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:178) [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT] ... 5 common frames omitted Caused by: java.lang.NullPointerException: null at org.apache.calcite.sql.validate.AggregatingSelectScope.getGroupExprs(AggregatingSelectScope.java:142) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.AggregatingSelectScope.checkAggregateExpr(AggregatingSelectScope.java:221) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.AggregatingSelectScope.getOperandScope(AggregatingSelectScope.java:206) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlScopedShuttle.visit(SqlScopedShuttle.java:48) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlScopedShuttle.visit(SqlScopedShuttle.java:32) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:130) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlValidatorImpl.expand(SqlValidatorImpl.java:4067) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlValidatorUtil.analyzeGroupExpr(SqlValidatorUtil.java:455) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlValidatorUtil.convertGroupSet(SqlValidatorUtil.java:426) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlValidatorUtil.analyzeGroupItem(SqlValidatorUtil.java:402) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.AggregatingSelectScope.<init>(AggregatingSelectScope.java:97) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlValidatorImpl.registerQuery(SqlValidatorImpl.java:2216) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlValidatorImpl.registerQuery(SqlValidatorImpl.java:2121) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:835) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:551) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] at org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:177) ~[calcite-core-1.4.0-drill-r2.jar:1.4.0-drill-r2] ... 10 common frames omitted {noformat} > Error when DISTINCT and GROUP BY is used in avro or json > -------------------------------------------------------- > > Key: DRILL-3818 > URL: https://issues.apache.org/jira/browse/DRILL-3818 > Project: Apache Drill > Issue Type: Bug > Components: Execution - RPC, SQL Parser > Affects Versions: 1.1.0, 1.2.0 > Environment: Linux Mint 17.1 > java version "1.7.0_80" > Java(TM) SE Runtime Environment (build 1.7.0_80-b15) > Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) > Reporter: Philip Deegan > Assignee: Daniel Barclay (Drill) > Fix For: 1.2.0 > > > Data > {noformat} > { "a": { "b": { "c": "d" }, "e": 2 }} > {noformat} > Query > {noformat} > select DISTINCT(t.a.b.c), MAX(t.a.e) FROM dfs.`json.json` t GROUP BY t.a.b.c > LIMIT 1; > {noformat} > Occurs on 1.1.0 and incubator-drill master > {noformat} > +-------------------------------------------+ > | commit_id | > +-------------------------------------------+ > | 9f54aac33df3e783c0192ab56c7e1313dbc823fa | > +-------------------------------------------+ > [Error Id: bb826851-d8cb-46f5-96c0-1ed01d3d8c45 on philix:31010] > at > org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(DrillCursor.java:247) > at > org.apache.drill.jdbc.impl.DrillCursor.loadInitialSchema(DrillCursor.java:290) > at > org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:1359) > at > org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:74) > at > net.hydromatic.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:404) > at > net.hydromatic.avatica.AvaticaStatement.executeQueryInternal(AvaticaStatement.java:351) > at > net.hydromatic.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:338) > at > net.hydromatic.avatica.AvaticaStatement.execute(AvaticaStatement.java:69) > at > org.apache.drill.jdbc.impl.DrillStatementImpl.execute(DrillStatementImpl.java:86) > at sqlline.Commands.execute(Commands.java:841) > at sqlline.Commands.sql(Commands.java:751) > at sqlline.SqlLine.dispatch(SqlLine.java:737) > at sqlline.SqlLine.begin(SqlLine.java:612) > at sqlline.SqlLine.start(SqlLine.java:366) > at sqlline.SqlLine.main(SqlLine.java:259) > Caused by: org.apache.drill.common.exceptions.UserRemoteException: VALIDATION > ERROR: java.lang.NullPointerException > [Error Id: bb826851-d8cb-46f5-96c0-1ed01d3d8c45 on philix:31010] > at > org.apache.drill.exec.rpc.user.QueryResultHandler.resultArrived(QueryResultHandler.java:118) > at > org.apache.drill.exec.rpc.user.UserClient.handleReponse(UserClient.java:110) > at > org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:47) > at > org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:32) > at org.apache.drill.exec.rpc.RpcBus.handle(RpcBus.java:61) > at > org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:233) > at > org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:205) > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847) > at > io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:618) > at > io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:329) > at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:250) > at > io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) > at java.lang.Thread.run(Thread.java:745) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)