[
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)