Maryann Xue created CALCITE-1278:
------------------------------------

             Summary: CalciteSignature's ColumnMetaData info is wrong for DELETE
                 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


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 in the first switch case.



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

Reply via email to