drill-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kathiresan S <kathiresanselva...@gmail.com>
Subject Re: Right outer join fails
Date Tue, 13 Sep 2016 14:10:59 GMT
​Hi,

Additional info on this. Array column ('city' in the example) is the issue.

1. When i select the just the first occurrence of the array column, the
query works fine

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

Result
Jim 1 Sendurai
null null NYC


2. And when i do a repeated_count on the array column, it returns -2 on the
second row

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

Result
Jim 2 Sendurai
null -2 NYC

Any idea/work around for this issue would be highly appreciated

Thanks,
Kathir
​

On Sat, Sep 10, 2016 at 9:56 PM, Kathiresan S <kathiresanselvaraj@gmail.com>
wrote:

> 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]
>         at io.netty.handler.codec.MessageToMessageDecoder.channelRead(
> MessageToMessageDecoder.java:89) [netty-codec-4.0.27.Final.jar:
> 4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.
> invokeChannelRead(AbstractChannelHandlerContext.java:339)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
> jar:4.0.27.Final]
>         at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254)
> [netty-handler-4.0.27.Final.jar:4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.
> invokeChannelRead(AbstractChannelHandlerContext.java:339)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
> jar:4.0.27.Final]
>         at io.netty.handler.codec.MessageToMessageDecoder.channelRead(
> MessageToMessageDecoder.java:103) [netty-codec-4.0.27.Final.jar:
> 4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.
> invokeChannelRead(AbstractChannelHandlerContext.java:339)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
> jar:4.0.27.Final]
>         at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)
> [netty-codec-4.0.27.Final.jar:4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.
> invokeChannelRead(AbstractChannelHandlerContext.java:339)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
> jar:4.0.27.Final]
>         at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(
> ChannelInboundHandlerAdapter.java:86) [netty-transport-4.0.27.Final.
> jar:4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.
> invokeChannelRead(AbstractChannelHandlerContext.java:339)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
> jar:4.0.27.Final]
>         at io.netty.channel.DefaultChannelPipeline.fireChannelRead(
> DefaultChannelPipeline.java:847) [netty-transport-4.0.27.Final.
> jar:4.0.27.Final]
>
> Thanks,
> Kathir
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message