This is an automated email from the ASF dual-hosted git repository.
w41ter pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 1a2a91a03a4 [fix](index) Fix CREATE/DROP INDEX stmt toSql #44494
(#44661)
1a2a91a03a4 is described below
commit 1a2a91a03a409a10e41f38686f586f3df903bc2d
Author: walter <[email protected]>
AuthorDate: Thu Nov 28 10:10:12 2024 +0800
[fix](index) Fix CREATE/DROP INDEX stmt toSql #44494 (#44661)
cherry pick from #44494
---
.../org/apache/doris/analysis/AlterTableStmt.java | 4 +++
.../apache/doris/analysis/CreateIndexClause.java | 4 +++
.../org/apache/doris/analysis/DropIndexClause.java | 4 +++
.../apache/doris/analysis/AlterTableStmtTest.java | 32 ++++++++++++++++++++++
4 files changed, 44 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterTableStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterTableStmt.java
index d939bb0c3fb..957fee0325f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterTableStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterTableStmt.java
@@ -198,6 +198,10 @@ public class AlterTableStmt extends DdlStmt {
sb.append("DROP ROLLUP ");
}
sb.append(((AddRollupClause) op).getRollupName());
+ } else if (op instanceof CreateIndexClause) {
+ sb.append(((CreateIndexClause) op).toSql(true));
+ } else if (op instanceof DropIndexClause) {
+ sb.append(((DropIndexClause) op).toSql(true));
} else {
sb.append(op.toSql());
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateIndexClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateIndexClause.java
index 16f90432e7b..62d051ca318 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateIndexClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateIndexClause.java
@@ -88,6 +88,10 @@ public class CreateIndexClause extends AlterTableClause {
@Override
public String toSql() {
+ return toSql(alter);
+ }
+
+ public String toSql(boolean alter) {
if (alter) {
return "ADD " + indexDef.toSql();
} else {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropIndexClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropIndexClause.java
index 783bed775be..25b4db9d16f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropIndexClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropIndexClause.java
@@ -80,6 +80,10 @@ public class DropIndexClause extends AlterTableClause {
@Override
public String toSql() {
+ return toSql(alter);
+ }
+
+ public String toSql(boolean alter) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("DROP INDEX ").append("`" + indexName + "`");
if (!alter) {
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterTableStmtTest.java
b/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterTableStmtTest.java
index 9476df59cd1..c968f21d670 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterTableStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterTableStmtTest.java
@@ -126,6 +126,7 @@ public class AlterTableStmtTest {
@Test
public void testCreateIndex() throws UserException {
+ // ALTER TABLE `db`.`table` ADD INDEX `index1` (`col1`) USING INVERTED
COMMENT 'balabala'
List<AlterClause> ops = Lists.newArrayList();
ops.add(new CreateIndexClause(
new TableName(InternalCatalog.INTERNAL_CATALOG_NAME, "db",
"table"),
@@ -137,8 +138,26 @@ public class AlterTableStmtTest {
stmt.toSql());
}
+ @Test
+ public void testCreateIndexStmt() throws UserException {
+ // CREATE INDEX `index1` ON `db`.`table` (`col1`) USING INVERTED
COMMENT 'balabala'
+ CreateIndexClause createIndexClause = new CreateIndexClause(
+ new TableName(InternalCatalog.INTERNAL_CATALOG_NAME, "db",
"table"),
+ new IndexDef("index1", false, Lists.newArrayList("col1"),
IndexDef.IndexType.INVERTED, null, "balabala"),
+ false);
+ List<AlterClause> ops = Lists.newArrayList();
+ ops.add(createIndexClause);
+ AlterTableStmt stmt = new AlterTableStmt(new TableName(internalCtl,
"testDb", "testTbl"), ops);
+ stmt.analyze(analyzer);
+ Assert.assertEquals("CREATE INDEX `index1` ON `db`.`table` (`col1`)
USING INVERTED COMMENT 'balabala'",
+ createIndexClause.toSql());
+ Assert.assertEquals("ALTER TABLE `testDb`.`testTbl` ADD INDEX `index1`
(`col1`) USING INVERTED COMMENT 'balabala'",
+ stmt.toSql());
+ }
+
@Test
public void testDropIndex() throws UserException {
+ // ALTER TABLE `db`.`table` DROP INDEX `index1`
List<AlterClause> ops = Lists.newArrayList();
ops.add(new DropIndexClause("index1", false,
new TableName(InternalCatalog.INTERNAL_CATALOG_NAME, "db",
"table"), true));
@@ -146,4 +165,17 @@ public class AlterTableStmtTest {
stmt.analyze(analyzer);
Assert.assertEquals("ALTER TABLE `testDb`.`testTbl` DROP INDEX
`index1`", stmt.toSql());
}
+
+ @Test
+ public void testDropIndexStmt() throws UserException {
+ // DROP INDEX `index1` ON `db`.`table`
+ DropIndexClause dropIndexClause = new DropIndexClause("index1", false,
+ new TableName(InternalCatalog.INTERNAL_CATALOG_NAME, "db",
"table"), false);
+ List<AlterClause> ops = Lists.newArrayList();
+ ops.add(dropIndexClause);
+ AlterTableStmt stmt = new AlterTableStmt(new TableName(internalCtl,
"testDb", "testTbl"), ops);
+ stmt.analyze(analyzer);
+ Assert.assertEquals("DROP INDEX `index1` ON `db`.`table`",
dropIndexClause.toSql());
+ Assert.assertEquals("ALTER TABLE `testDb`.`testTbl` DROP INDEX
`index1`", stmt.toSql());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]