[ 
https://issues.apache.org/jira/browse/CALCITE-1278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde resolved CALCITE-1278.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 1.9.0

Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/76616379. 
[~maryannxue], thanks for the patch!

> CalciteSignature's ColumnMetaData for DELETE should be same as INSERT
> ---------------------------------------------------------------------
>
>                 Key: CALCITE-1278
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1278
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.7.0
>            Reporter: Maryann Xue
>            Assignee: Maryann Xue
>             Fix For: 1.9.0
>
>         Attachments: CALCITE-1278.patch
>
>
> DELETE, as one type of TableModify operation, has the same RelDataType as 
> INSERT, which is RelRecordType(ROWCOUNT INTEGER). But during "prepare" stage, 
> the corresponding ColumnMetaData info becomes inconsistent, due to:
> {code}
>       preparedResult = preparingStmt.prepareSql(
>           sqlNode, Object.class, validator, true);
>       switch (sqlNode.getKind()) {
>       case INSERT:
>       case EXPLAIN:
>         // FIXME: getValidatedNodeType is wrong for DML
>         x = RelOptUtil.createDmlRowType(sqlNode.getKind(), typeFactory);
>         break;
>       default:
>         x = validator.getValidatedNodeType(sqlNode);
>       }
> {code}
> I've noticed that there is a "FIXME: getValidatedNodeType is wrong for DML". 
> Guess that's the root cause, and RelOptUtil.createDmlRowType() is probably a 
> workaround? For now, we can simply include DELETE and other TableModify 
> Operation in the first switch case.



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

Reply via email to