[
https://issues.apache.org/jira/browse/CALCITE-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
chener updated CALCITE-4442:
----------------------------
Issue Type: Wish (was: Bug)
> SqlAlter extend not support ALTER TABLE statement
> --------------------------------------------------
>
> Key: CALCITE-4442
> URL: https://issues.apache.org/jira/browse/CALCITE-4442
> Project: Calcite
> Issue Type: Wish
> Components: core
> Affects Versions: 1.18.0
> Environment: Here is my code:
> {code:java}
> // code for parserImpls.ftl
> SqlAlter SqlAlterTableRename(SqlParserPos pos, String scope) :
> {
> final SqlIdentifier oldTableName;
> final SqlIdentifier newTableName;
> }
> {
> <TABLE> oldTableName = CompoundIdentifier()
> <RENAME> <TO> newTableName = CompoundIdentifier()
> {
> return new SqlAlterTableRename(pos,scope,oldTableName,newTableName) ;
> }
> }
> {code}
>
>
> {code:java}
> // code for SqlAlterTableRename class
> package org.apache.calcite.sql;
> import org.apache.calcite.sql.parser.SqlParserPos;
> import org.apache.calcite.util.ImmutableNullableList;
> import java.util.List;
> public class SqlAlterTableRename extends SqlAlter{
> private SqlIdentifier oldTableName;
> private SqlIdentifier newTableName;
> public SqlIdentifier getOldTableName() {
> return oldTableName;
> }
> public SqlIdentifier getNewTableName() {
> return newTableName;
> }
> private static final SqlOperator OPERATOR =
> new SqlSpecialOperator("ALTER TABLE RENAME", SqlKind.ALTER_TABLE);
> public SqlAlterTableRename(SqlParserPos pos) {
> super(pos);
> }
> public SqlAlterTableRename(SqlParserPos pos, String scope) {
> super(pos, scope);
> }
> public SqlAlterTableRename(SqlParserPos pos, String scope,SqlIdentifier
> oldTableName,SqlIdentifier newTableName) {
> super(pos, scope);
> this.oldTableName = oldTableName;
> this.newTableName = newTableName;
> }
> @Override
> protected void unparseAlterOperation(SqlWriter writer, int leftPrec, int
> rightPrec) {
> writer.keyword("ALTER");
> writer.keyword("TABLE");
> writer.print(oldTableName.toString());
> writer.keyword("RENAME");
> writer.keyword("TO");
> writer.print(newTableName.toString());
> }
> @Override
> public SqlOperator getOperator() {
> return OPERATOR;
> }
> @Override
> public List<SqlNode> getOperandList() {
> return ImmutableNullableList.of(oldTableName,newTableName);
> }
> }
> {code}
>
> Reporter: chener
> Priority: Major
>
> When i am extending a customer sql parser which to resolve ALTER TABLE
> statement,I got this error when compile:
>
> {quote}
> [ERROR] COMPILATION ERROR :
> [INFO] -------------------------------------------------------------
> [ERROR]
> /C:/workspace/java/dtstack/test/calcite-test/target/generated-sources/org/apache/calcite/sql/parser/impl/SqlAlterParserImpl.java:[3673,39]
> 不兼容的类型: org.apache.calcite.sql.
> parser.Span无法转换为org.apache.calcite.sql.parser.SqlParserPos
> [INFO] 1 error
> [INFO] -------------------------------------------------------------
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 7.905 s
> [INFO] Finished at: 2020-12-17T21:20:36+08:00
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile)
> on project calcite-test: Compilation failure
> [ERROR]
> /C:/workspace/java/dtstack/test/calcite-test/target/generated-sources/org/apache/calcite/sql/parser/impl/SqlAlterParserImpl.java:[3673,39]
> 不兼容的类型: org.apache.calcite.sql.
> parser.Span无法转换为org.apache.calcite.sql.parser.SqlParserPos
> {quote}
>
>
> undefined
--
This message was sent by Atlassian Jira
(v8.3.4#803005)