[ https://issues.apache.org/jira/browse/CALCITE-1278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15325296#comment-15325296 ]
Julian Hyde commented on CALCITE-1278: -------------------------------------- Will do - after the release closes. > CalciteSignature's ColumnMetaData info is wrong for DML (except 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 > 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)