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

ASF GitHub Bot commented on TAJO-1329:
--------------------------------------

Github user jihoonson commented on the pull request:

    https://github.com/apache/tajo/pull/389#issuecomment-78464388
  
    @hyunsik sorry to say, but would you please check this error again?
    ```
    default> create table nested_table2 (f1 int, nf1 record (f1 int4, f3 
double), nf2 record (f1 int4, nf1 record (f1 int4, f2 text), nf2 record (f1 
int4, f2 text), f2 double), f2 text);
    OK
    default> \d
    nested_table
    nested_table2
    default> \d nested_table2
    ERROR: org.apache.tajo.rpc.TajoServiceException: 
java.lang.NullPointerException
    com.google.protobuf.ServiceException: 
org.apache.tajo.rpc.TajoServiceException: java.lang.NullPointerException
        at 
org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:104)
        at 
org.apache.tajo.client.CatalogAdminClientImpl.getTableDesc(CatalogAdminClientImpl.java:216)
        at 
org.apache.tajo.client.TajoClientImpl.getTableDesc(TajoClientImpl.java:217)
        at 
org.apache.tajo.cli.tsql.commands.DescTableCommand.invoke(DescTableCommand.java:50)
        at org.apache.tajo.cli.tsql.TajoCli.executeMetaCommand(TajoCli.java:471)
        at 
org.apache.tajo.cli.tsql.TajoCli.executeParsedResults(TajoCli.java:445)
        at org.apache.tajo.cli.tsql.TajoCli.runShell(TajoCli.java:419)
        at org.apache.tajo.cli.tsql.TajoCli.main(TajoCli.java:694)
    Caused by: org.apache.tajo.rpc.TajoServiceException: 
java.lang.NullPointerException
        at 
org.apache.tajo.rpc.BlockingRpcClient.makeTajoServiceException(BlockingRpcClient.java:188)
        at 
org.apache.tajo.rpc.BlockingRpcClient.access$500(BlockingRpcClient.java:42)
        at 
org.apache.tajo.rpc.BlockingRpcClient$ClientChannelInboundHandler.channelRead(BlockingRpcClient.java:211)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
        at 
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:182)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
        at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130)
        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:116)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: com.google.protobuf.ServiceException: 
com.google.protobuf.ServiceException: java.lang.NullPointerException
        at 
org.apache.tajo.master.TajoMasterClientService$TajoMasterClientProtocolServiceHandler.getTableDesc(TajoMasterClientService.java:816)
        at 
org.apache.tajo.ipc.TajoMasterClientProtocol$TajoMasterClientProtocolService$2.callBlockingMethod(TajoMasterClientProtocol.java:585)
        at 
org.apache.tajo.rpc.BlockingRpcServer$ServerHandler.channelRead(BlockingRpcServer.java:113)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
        at 
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:182)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
        at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130)
        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:116)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.NullPointerException
        at 
org.apache.tajo.master.TajoMasterClientService$TajoMasterClientProtocolServiceHandler.getTableDesc(TajoMasterClientService.java:805)
        ... 18 more
    
        ... 17 more
    ```
    The main reason looks duplicated names. Here is the master log.
    ```
    2015-03-12 20:33:05,241 INFO org.apache.tajo.master.exec.DDLExecutor: Table 
default.nested_table2 is created (0)
    2015-03-12 20:33:08,601 ERROR org.apache.tajo.catalog.Schema: Already 
exists column nf1
    2015-03-12 20:33:08,601 ERROR org.apache.tajo.catalog.CatalogServer: 
org.apache.tajo.catalog.exception.AlreadyExistsFieldException: Already Exists 
Field: nf1
    2015-03-12 20:33:08,602 ERROR 
org.apache.tajo.catalog.AbstractCatalogClient: 
com.google.protobuf.ServiceException: 
org.apache.tajo.catalog.exception.AlreadyExistsFieldException: Already Exists 
Field: nf1
    com.google.protobuf.ServiceException: com.google.protobuf.ServiceException: 
org.apache.tajo.catalog.exception.AlreadyExistsFieldException: Already Exists 
Field: nf1
            at 
org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:104)
            at 
org.apache.tajo.catalog.AbstractCatalogClient.getTableDesc(AbstractCatalogClient.java:280)
            at 
org.apache.tajo.master.TajoMasterClientService$TajoMasterClientProtocolServiceHandler.getTableDesc(TajoMasterClientService.java:805)
            at 
org.apache.tajo.ipc.TajoMasterClientProtocol$TajoMasterClientProtocolService$2.callBlockingMethod(TajoMasterClientProtocol.java:585)
            at 
org.apache.tajo.rpc.BlockingRpcServer$ServerHandler.channelRead(BlockingRpcServer.java:113)
            at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
            at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
            at 
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
            at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
            at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
            at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:182)
            at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
            at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
            at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
            at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130)
            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:116)
            at java.lang.Thread.run(Thread.java:745)
    Caused by: com.google.protobuf.ServiceException: 
org.apache.tajo.catalog.exception.AlreadyExistsFieldException: Already Exists 
Field: nf1
            at 
org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.getTableDesc(CatalogServer.java:537)
            at 
org.apache.tajo.catalog.AbstractCatalogClient$13.call(AbstractCatalogClient.java:287)
            at 
org.apache.tajo.catalog.AbstractCatalogClient$13.call(AbstractCatalogClient.java:280)
            at 
org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:94)
            ... 20 more
    Caused by: org.apache.tajo.catalog.exception.AlreadyExistsFieldException: 
Already Exists Field: nf1
            at org.apache.tajo.catalog.Schema.addColumn(Schema.java:315)
            at org.apache.tajo.catalog.Schema.addColumn(Schema.java:344)
            at org.apache.tajo.catalog.Schema.<init>(Schema.java:118)
            at org.apache.tajo.catalog.Schema.deserializeColumn(Schema.java:92)
            at org.apache.tajo.catalog.Schema.<init>(Schema.java:62)
            at 
org.apache.tajo.catalog.CatalogUtil.getQualfiedSchema(CatalogUtil.java:329)
            at 
org.apache.tajo.catalog.store.AbstractDBStore.getTable(AbstractDBStore.java:1421)
            at 
org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.getTableDesc(CatalogServer.java:528)
            ... 23 more
    ```


> Improve Schema class to support nested struct support
> -----------------------------------------------------
>
>                 Key: TAJO-1329
>                 URL: https://issues.apache.org/jira/browse/TAJO-1329
>             Project: Tajo
>          Issue Type: Sub-task
>          Components: catalog
>            Reporter: Hyunsik Choi
>            Assignee: Hyunsik Choi
>             Fix For: 0.11
>
>         Attachments: TAJO-1329.patch, TAJO-1329_2.patch, TAJO-1329_3.patch, 
> TAJO-1329_4.patch, TAJO-1329_5.patch
>
>
> The main objective is to improve Schema class to support nested struct 
> support. This issues involves in-memory structure and protobuf 
> (de)serialization structure.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to