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

Right outer join fails

    XMLWordPrintableJSON

Details

    Description

      Hi, A Query with right outer join fails while the inner and left outer joins work for the same data. I've replicated the issue with some simple data here and this happens in both 1.6.0 and 1.8.0

      Json file 1: data.json

      { "name": "Jim","city" : [1,2]}

      Json file 2: cities.json

      {id:1,name:"Sendurai"} {id:2,name:"NYC"}

      Queries that work:
      1. select a.name,a.city,b.id,b.name from dfs.tmp.`data.json` a left outer join dfs.tmp.`cities.json` b on a.city[0]=b.id

      2. select a.name,a.city,b.id,b.name from dfs.tmp.`data.json` a join dfs.tmp.`cities.json` b on a.city[0]=b.id

      Query that fails:

      select a.name,a.city,b.id,b.name from dfs.tmp.`data.json` a right outer join dfs.tmp.`cities.json` b on a.city[0]=b.id

      On the server side, i see below error trace :

      java.lang.IllegalStateException: QueryDataBatch was released twice.
      at org.apache.drill.exec.rpc.user.QueryDataBatch.release(QueryDataBatch.java:56) [drill-java-exec-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.user.QueryResultHandler.batchArrived(QueryResultHandler.java:167) [drill-java-exec-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.user.UserClient.handleReponse(UserClient.java:110) ~[drill-java-exec-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:46) ~[drill-rpc-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:31) ~[drill-rpc-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.RpcBus.handle(RpcBus.java:67) ~[drill-rpc-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.RpcBus$RequestEvent.run(RpcBus.java:374) ~[drill-rpc-1.6.0.jar:1.6.0]
      at org.apache.drill.common.SerializedExecutor$RunnableProcessor.run(SerializedExecutor.java:89) [drill-rpc-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.RpcBus$SameExecutor.execute(RpcBus.java:252) [drill-rpc-1.6.0.jar:1.6.0]
      at org.apache.drill.common.SerializedExecutor.execute(SerializedExecutor.java:123) [drill-rpc-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:285) [drill-rpc-1.6.0.jar:1.6.0]
      at org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:257) [drill-rpc-1.6.0.jar:1.6.0]

      Attachments

        Activity

          People

            Unassigned Unassigned
            kathir Kathiresan Selvaraj
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: