[
https://issues.apache.org/jira/browse/TAJO-1329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14342217#comment-14342217
]
ASF GitHub Bot commented on TAJO-1329:
--------------------------------------
Github user jihoonson commented on the pull request:
https://github.com/apache/tajo/pull/389#issuecomment-76596134
@hyunsik, thanks for your work.
With this patch, it seems that users can execute ```CREATE TABLE```
statements with nested schemas.
So, I simply submitted an example query used in a junit test, but found the
following error:
```
default> create table nested_table (f1 int, nested_field record (f2 int4,
f3 int8), f3 text);
ERROR: Cannot create table "default.nested_table".
```
The error message is follows:
```
2015-03-01 22:04:22,658 ERROR org.apache.tajo.catalog.CatalogServer:
java.sql.BatchUpdateException: The statement was aborted because it would have
caused a duplicate key value in a unique or primary key constraint or unique
index identified by 'COLUMNS_PK' defined on 'COLUMNS'.
org.apache.tajo.catalog.exception.CatalogException:
java.sql.BatchUpdateException: The statement was aborted because it would have
caused a duplicate key value in a unique or primary key constraint or unique
index identified by 'COLUMNS_PK' defined on 'COLUMNS'.
at
org.apache.tajo.catalog.store.AbstractDBStore.createTable(AbstractDBStore.java:892)
at
org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.createTable(CatalogServer.java:604)
at
org.apache.tajo.catalog.AbstractCatalogClient$23.call(AbstractCatalogClient.java:481)
at
org.apache.tajo.catalog.AbstractCatalogClient$23.call(AbstractCatalogClient.java:478)
at
org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:94)
at
org.apache.tajo.catalog.AbstractCatalogClient.createTable(AbstractCatalogClient.java:478)
at
org.apache.tajo.master.exec.DDLExecutor.createTable(DDLExecutor.java:248)
at
org.apache.tajo.master.exec.DDLExecutor.createTable(DDLExecutor.java:208)
at
org.apache.tajo.master.exec.DDLExecutor.execute(DDLExecutor.java:88)
at
org.apache.tajo.master.exec.QueryExecutor.execute(QueryExecutor.java:98)
at
org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:163)
at
org.apache.tajo.master.TajoMasterClientService$TajoMasterClientProtocolServiceHandler.submitQuery(TajoMasterClientService.java:287)
at
org.apache.tajo.ipc.TajoMasterClientProtocol$TajoMasterClientProtocolService$2.callBlockingMethod(TajoMasterClientProtocol.java:543)
at
org.apache.tajo.rpc.BlockingRpcServer$ServerHandler.messageReceived(BlockingRpcServer.java:103)
at
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at
org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at
org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
at
org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
at
org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
at
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at
org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
at
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
at
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.BatchUpdateException: The statement was aborted because
it would have caused a duplicate key value in a unique or primary key
constraint or unique index identified by 'COLUMNS_PK' defined on 'COLUMNS'.
at org.apache.derby.impl.jdbc.EmbedStatement.executeBatch(Unknown
Source)
at
org.apache.tajo.catalog.store.AbstractDBStore.createTable(AbstractDBStore.java:828)
... 39 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: The statement
was aborted because it would have caused a duplicate key value in a unique or
primary key constraint or unique index identified by 'COLUMNS_PK' defined on
'COLUMNS'.
at
org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown
Source)
at
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown
Source)
at
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown
Source)
at
org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at
org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeBatchElement(Unknown
Source)
... 41 more
Caused by: java.sql.SQLException: The statement was aborted because it
would have caused a duplicate key value in a unique or primary key constraint
or unique index identified by 'COLUMNS_PK' defined on 'COLUMNS'.
at
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at
org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
Source)
... 49 more
Caused by: ERROR 23505: The statement was aborted because it would have
caused a duplicate key value in a unique or primary key constraint or unique
index identified by 'COLUMNS_PK' defined on 'COLUMNS'.
at
org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at
org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(Unknown
Source)
at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(Unknown
Source)
at org.apache.derby.impl.sql.execute.IndexChanger.insert(Unknown
Source)
at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(Unknown
Source)
at
org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown Source)
at
org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown
Source)
at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown
Source)
at
org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
at
org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
... 43 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
>
>
> 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)