Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-2934

Exception when distinct aggregate is compared to numeric literal with decimal point

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.9.0
    • 1.0.0
    • Execution - Flow
    • None

    Description

      This exception has something to do with the numeric literal comparison.

      alter session set `planner.slice_target` = 1;

      Exception: (same is true for SUM/AVG)

      0: jdbc:drill:schema=dfs> select count(*) from cp.`tpch/orders.parquet` having count(distinct o_orderkey) <= 10000000.00;
      Query failed: SYSTEM ERROR: org.apache.drill.common.exceptions.ExpressionParsingException: Expression has syntax error! line 1:32:extraneous input 'E7' expecting Careen
      [8b467bf9-3fff-4aae-bfca-8d1cb5f01d4f on atsqa4-133.qa.lab:31010]
      Error: exception while executing query: Failure while executing query. (state=,code=0)
      

      This one works (the difference is the value: one million with decimal point)

      0: jdbc:drill:schema=dfs> select count(*) from cp.`tpch/orders.parquet` having count(distinct o_orderkey) <= 1000000.00;
      +------------+
      |   EXPR$0   |
      +------------+
      | 15000      |
      +------------+
      1 row selected (2.793 seconds)
      

      Remove decimal point, works:

      0: jdbc:drill:schema=dfs> select count(*) from cp.`tpch/orders.parquet` having sum(distinct o_orderkey) >= 10000000;
      +------------+
      |   EXPR$0   |
      +------------+
      | 15000      |
      +------------+
      1 row selected (3.021 seconds)
      

      Non distinct aggregate:

      0: jdbc:drill:schema=dfs> select count(*) from cp.`tpch/orders.parquet` having count(o_orderkey) <= 10000000.00;
      +------------+
      |   EXPR$0   |
      +------------+
      | 15000      |
      +------------+
      1 row selected (0.249 seconds)
      

      drillbit.log

      2015-05-01 04:31:34,925 [2abcfe58-9dd4-8ea0-51f9-4243ed49ad54:foreman] INFO  o.a.drill.exec.work.foreman.Foreman - State change requested.  PENDING --> FAILED
      org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception during fragment initialization: SYSTEM ERROR: org.apache.drill.common.exceptions.ExpressionParsingException: Expression has syntax error! line 1:32:extraneous input 'E7' expecting CParen
      
      
      [c8b9ea63-fb5d-44a7-a8e3-87995c3e6d31 on atsqa4-133.qa.lab:31010]
              at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:212) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_71]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71]
              at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
      Caused by: org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: org.apache.drill.common.exceptions.ExpressionParsingException: Expression has syntax error! line 1:32:extraneous input 'E7' expecting CParen
      
      
      [c8b9ea63-fb5d-44a7-a8e3-87995c3e6d31 on atsqa4-133.qa.lab:31010]
              at org.apache.drill.exec.rpc.CoordinationQueue.updateFailedFuture(CoordinationQueue.java:154) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
              at org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:231) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
              at org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:173) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
              at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[netty-codec-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[netty-codec-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:161) ~[netty-codec-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) ~[netty-transport-4.0.24.Final.jar:4.0.24.Final]
              at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) ~[netty-common-4.0.24.Final.jar:4.0.24.Final]
              ... 1 common frames omitted
      

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            amansinha100 Aman Sinha
            vicky Victoria Markman
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment