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
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---