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

Rahul Challapalli commented on DRILL-5399:
------------------------------------------

One more instance

Query :
{code}
 select id, flatten(kvgen(m)) from `json_kvgenflatten/missing-map.json`
{code}

Data:
{code}
{
    "id": 1,
    "m": {"a":1,"b":2}
}
{
    "id": 2
}
{
    "id": 3,
    "m": {"c":3,"d":4}
}
{code}

Plan :
{code}
00-00    Screen : rowType = RecordType(ANY id, ANY EXPR$1): rowcount = 1.0, 
cumulative cost = {2.1 rows, 5.1 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 761
00-01      Project(id=[$0], EXPR$1=[$3]) : rowType = RecordType(ANY id, ANY 
EXPR$1): rowcount = 1.0, cumulative cost = {2.0 rows, 5.0 cpu, 0.0 io, 0.0 
network, 0.0 memory}, id = 760
00-02        Flatten(flattenField=[$3]) : rowType = RecordType(ANY EXPR$0, ANY 
EXPR$1, ANY EXPR$3, ANY EXPR$4): rowcount = 1.0, cumulative cost = {2.0 rows, 
5.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 759
00-03          Project(EXPR$0=[$0], EXPR$1=[$1], EXPR$3=[$2], EXPR$4=[$2]) : 
rowType = RecordType(ANY EXPR$0, ANY EXPR$1, ANY EXPR$3, ANY EXPR$4): rowcount 
= 1.0, cumulative cost = {1.0 rows, 4.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, 
id = 758
00-04            Project(EXPR$0=[$0], EXPR$1=[$1], EXPR$3=[KVGEN($1)]) : 
rowType = RecordType(ANY EXPR$0, ANY EXPR$1, ANY EXPR$3): rowcount = 1.0, 
cumulative cost = {1.0 rows, 4.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 757
00-05              Scan(groupscan=[EasyGroupScan 
[selectionRoot=maprfs:/drill/testdata/json_kvgenflatten/missing-map.json, 
numFiles=1, columns=[`id`, `m`], 
files=[maprfs:///drill/testdata/json_kvgenflatten/missing-map.json]]]) : 
rowType = RecordType(ANY id, ANY m): rowcount = 1.0, cumulative cost = {0.0 
rows, 0.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 756
{code}

And in the logs, I see this warning. Looks like we are failing while setting up 
the new schema in the project operator. Could the json reader possibly be 
messing it up?
{code}
2017-03-31 15:27:55,863 [27212813-c2fa-204a-2971-015ea610ad67:frag:0:0] WARN  
o.a.d.e.e.ExpressionTreeMaterializer - Unable to find value vector of path 
`EXPR$3`, returning null instance.
{code}

> Random Error : Flatten does not support inputs of non-list values.
> ------------------------------------------------------------------
>
>                 Key: DRILL-5399
>                 URL: https://issues.apache.org/jira/browse/DRILL-5399
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Data Types, Storage - JSON
>    Affects Versions: 1.10.0
>            Reporter: Rahul Challapalli
>
> git.commit.id.abbrev=38ef562
> The below query did not fail when I ran it in isolation. However when I ran 
> the test suite at [1], which also contains the below query, by using 50 
> threads submitting queries concurrently, I hit the below error.
> {code}
> select flatten(sub.fk.`value`) from (select flatten(kvgen(map)) fk from 
> `json_kvgenflatten/nested3.json`) sub
> Failed with exception
> java.sql.SQLException: UNSUPPORTED_OPERATION ERROR: Flatten does not support 
> inputs of non-list values.
> Fragment 0:0
> [Error Id: 90026283-0b95-4bda-948e-54ed57a62edf on qa-node183.qa.lab:31010]
>       at 
> org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(DrillCursor.java:489)
>       at 
> org.apache.drill.jdbc.impl.DrillCursor.loadInitialSchema(DrillCursor.java:561)
>       at 
> org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:1895)
>       at 
> org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:61)
>       at 
> oadd.org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:473)
>       at 
> org.apache.drill.jdbc.impl.DrillMetaImpl.prepareAndExecute(DrillMetaImpl.java:1100)
>       at 
> oadd.org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:477)
>       at 
> org.apache.drill.jdbc.impl.DrillConnectionImpl.prepareAndExecuteInternal(DrillConnectionImpl.java:180)
>       at 
> oadd.org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:109)
>       at 
> oadd.org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:130)
>       at 
> org.apache.drill.jdbc.impl.DrillStatementImpl.executeQuery(DrillStatementImpl.java:112)
>       at 
> org.apache.drill.test.framework.DrillTestJdbc.executeQuery(DrillTestJdbc.java:177)
>       at 
> org.apache.drill.test.framework.DrillTestJdbc.run(DrillTestJdbc.java:101)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: oadd.org.apache.drill.common.exceptions.UserRemoteException: 
> UNSUPPORTED_OPERATION ERROR: Flatten does not support inputs of non-list 
> values.
> Fragment 0:0
> [Error Id: 90026283-0b95-4bda-948e-54ed57a62edf on qa-node183.qa.lab:31010]
>       at 
> oadd.org.apache.drill.exec.rpc.user.QueryResultHandler.resultArrived(QueryResultHandler.java:123)
>       at 
> oadd.org.apache.drill.exec.rpc.user.UserClient.handle(UserClient.java:343)
>       at 
> oadd.org.apache.drill.exec.rpc.user.UserClient.handle(UserClient.java:88)
>       at 
> oadd.org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:274)
>       at 
> oadd.org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:244)
>       at 
> oadd.io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>       at 
> oadd.io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>       at 
> oadd.io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>       at 
> oadd.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>       at 
> oadd.io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>       at 
> oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>       at 
> oadd.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847)
>       at 
> oadd.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
>       at 
> oadd.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
>       at 
> oadd.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
>       at 
> oadd.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
>       at oadd.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
>       at 
> oadd.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
>       ... 1 more
> {code}
> [1] 
> https://github.com/mapr/drill-test-framework/tree/master/framework/resources/Functional/json/json_kvgenflatten



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to