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)