You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Aman Sinha (JIRA)" <ji...@apache.org> on 2015/10/02 02:16:26 UTC

[jira] [Commented] (DRILL-3885) Column alias "`f.c`" rejected if number of regions is > 1 in HBase unit tests

    [ https://issues.apache.org/jira/browse/DRILL-3885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14940624#comment-14940624 ] 

Aman Sinha commented on DRILL-3885:
-----------------------------------

I am working on getting [~dragoncurve]'s patch for DRILL-2361 committed - which I think should fix this.  Please try this test after that issue is resolved.

> Column alias "`f.c`" rejected if number of regions is > 1 in HBase unit tests
> -----------------------------------------------------------------------------
>
>                 Key: DRILL-3885
>                 URL: https://issues.apache.org/jira/browse/DRILL-3885
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Daniel Barclay (Drill)
>
> Drill rejects the column alias {{`f.c`}}, because of its period character, in this query:
> {noformat}
> SELECT
>   row_key, convert_from(tableName.f.c, 'UTF8') `f.c`
> FROM
>   hbase.`TestTable3` tableName
> WHERE
>   row_key LIKE '08%0' OR row_key LIKE '%70'
> {noformat}
> in unit test {{TestHBaseFilterPushDown.testFilterPushDownRowKeyLike}} if the number of regions used in {{HBaseTestsSuite}} is set to something greater than one.
> One problem seems to be that the validation check is inconsistent, happening only if the data structure containing that alias get serialized and deserialized.
> The rejection of that alias seems like a problem (at least from the SQL level), although it seems that it might be reasonable given some nearby code, suggesting that maybe names/expressions/something aren't encoded enough to handle name segments with periods. 
> The exception stack trace is:
> {noformat}
> org.apache.drill.exec.rpc.RpcException: org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: UnsupportedOperationException: Field references must be singular names.
> Fragment 1:1
> [Error Id: 34475f52-6f22-43be-9011-c31a84469781 on dev-linux2:31010]
> 	at org.apache.drill.exec.rpc.RpcException.mapException(RpcException.java:60)
> 	at org.apache.drill.exec.client.DrillClient$ListHoldingResultsListener.getResults(DrillClient.java:386)
> 	at org.apache.drill.exec.client.DrillClient.runQuery(DrillClient.java:291)
> 	at org.apache.drill.BaseTestQuery.testRunAndReturn(BaseTestQuery.java:292)
> 	at org.apache.drill.BaseTestQuery.testSqlWithResults(BaseTestQuery.java:279)
> 	at org.apache.drill.hbase.BaseHBaseTest.runHBaseSQLlWithResults(BaseHBaseTest.java:86)
> 	at org.apache.drill.hbase.BaseHBaseTest.runHBaseSQLVerifyCount(BaseHBaseTest.java:90)
> 	at org.apache.drill.hbase.TestHBaseFilterPushDown.testFilterPushDownRowKeyLike(TestHBaseFilterPushDown.java:466)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> Caused by: org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: UnsupportedOperationException: Field references must be singular names.
> Fragment 1:1
> [Error Id: 34475f52-6f22-43be-9011-c31a84469781 on dev-linux2: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:1)
> 	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:1)
> 	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.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.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
> 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
> 	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)