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

Reply via email to