Skip to content

Commit

Permalink
resolve conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
zhuxt2015 committed Jul 18, 2022
1 parent 67a6567 commit 0079329
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.starrocks.mysql.privilege.Privilege;
import com.starrocks.qe.ConnectContext;
import com.starrocks.server.GlobalStateMgr;
import com.starrocks.sql.ast.AstVisitor;

public class RecoverPartitionStmt extends DdlStmt {
private TableName dbTblName;
Expand All @@ -50,6 +51,10 @@ public String getTableName() {
return dbTblName.getTbl();
}

public TableName getDbTblName() {
return dbTblName;
}

public String getPartitionName() {
return partitionName;
}
Expand Down Expand Up @@ -80,4 +85,14 @@ public String toSql() {
sb.append(getTableName());
return sb.toString();
}

@Override
public boolean isSupportNewPlanner() {
return true;
}

@Override
public <R, C> R accept(AstVisitor<R, C> visitor, C context) {
return visitor.visitRecoverPartitionStmt(this, context);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.starrocks.analysis.InsertStmt;
import com.starrocks.analysis.LimitElement;
import com.starrocks.analysis.RecoverDbStmt;
import com.starrocks.analysis.RecoverPartitionStmt;
import com.starrocks.analysis.RecoverTableStmt;
import com.starrocks.analysis.SetStmt;
import com.starrocks.analysis.SetUserPropertyStmt;
Expand Down Expand Up @@ -349,6 +350,12 @@ public Void visitTruncateTableStatement(TruncateTableStmt statement, ConnectCont
return null;
}

@Override
public Void visitRecoverPartitionStmt(RecoverPartitionStmt statement, ConnectContext context) {
RecoverPartitionAnalyzer.analyze(statement, context);
return null;
}

// ------------------------------------------- Analyze Statement ---------------------------------------------------

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// This file is licensed under the Elastic License 2.0. Copyright 2021-present, StarRocks Limited.
package com.starrocks.sql.analyzer;

import com.starrocks.analysis.RecoverPartitionStmt;
import com.starrocks.analysis.TableName;
import com.starrocks.qe.ConnectContext;
import com.starrocks.sql.common.MetaUtils;

public class RecoverPartitionAnalyzer {
public static void analyze(RecoverPartitionStmt statement, ConnectContext context) {
TableName tbl = statement.getDbTblName();
MetaUtils.normalizationTableName(context, tbl);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
import com.starrocks.analysis.OrderByElement;
import com.starrocks.analysis.ParseNode;
import com.starrocks.analysis.RecoverDbStmt;
import com.starrocks.analysis.RecoverPartitionStmt;
import com.starrocks.analysis.RecoverTableStmt;
import com.starrocks.analysis.SetStmt;
import com.starrocks.analysis.SetUserPropertyStmt;
Expand Down Expand Up @@ -364,6 +365,10 @@ public R visitKillStatement(KillStmt statement, C context) {
return visitStatement(statement, context);
}

public R visitRecoverPartitionStmt(RecoverPartitionStmt statement, C context) {
return visitStatement(statement, context);
}

public R visitShowPartitionsStmt(ShowPartitionsStmt statement, C context) {
return visitShowStatement(statement, context);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@
import com.starrocks.analysis.Predicate;
import com.starrocks.analysis.RangePartitionDesc;
import com.starrocks.analysis.RecoverDbStmt;
import com.starrocks.analysis.RecoverPartitionStmt;
import com.starrocks.analysis.RecoverTableStmt;
import com.starrocks.analysis.SelectList;
import com.starrocks.analysis.SelectListItem;
Expand Down Expand Up @@ -3384,4 +3385,12 @@ public ParseNode visitShowProcStatement(StarRocksParser.ShowProcStatementContext
StringLiteral stringLiteral = (StringLiteral) visit(context.path);
return new ShowProcStmt(stringLiteral.getValue());
}

@Override
public ParseNode visitRecoverPartitionStatement(StarRocksParser.RecoverPartitionStatementContext context) {
QualifiedName qualifiedName = getQualifiedName(context.qualifiedName());
TableName tableName = qualifiedNameToTableName(qualifiedName);
String partitionName = ((Identifier) visit(context.identifier())).getValue();
return new RecoverPartitionStmt(tableName, partitionName);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ statement
| showTabletStatement #showTablet
| cancelAlterTableStatement #cancelAlterTable
| showPartitionsStatement #showPartitions
| recoverPartitionStatement #recoverPartition

// View Statement
| createViewStatement #createView
Expand Down Expand Up @@ -330,6 +331,10 @@ showPartitionsStatement
(ORDER BY sortItem (',' sortItem)*)? limitElement?
;

recoverPartitionStatement
: RECOVER PARTITION identifier FROM table=qualifiedName
;

// ------------------------------------------- View Statement ----------------------------------------------------------

createViewStatement
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public void testNormalDropPartition() throws Exception {
Assert.assertNull(partition);
String recoverPartitionSql = "recover partition p20210201 from test.tbl1";
RecoverPartitionStmt recoverPartitionStmt =
(RecoverPartitionStmt) UtFrameUtils.parseAndAnalyzeStmt(recoverPartitionSql, connectContext);
(RecoverPartitionStmt) UtFrameUtils.parseStmtWithNewParser(recoverPartitionSql, connectContext);
GlobalStateMgr.getCurrentState().recoverPartition(recoverPartitionStmt);
partition = table.getPartition("p20210201");
Assert.assertNotNull(partition);
Expand All @@ -108,7 +108,7 @@ public void testForceDropPartition() throws Exception {
Assert.assertNull(partition);
String recoverPartitionSql = "recover partition p20210202 from test.tbl1";
RecoverPartitionStmt recoverPartitionStmt =
(RecoverPartitionStmt) UtFrameUtils.parseAndAnalyzeStmt(recoverPartitionSql, connectContext);
(RecoverPartitionStmt) UtFrameUtils.parseStmtWithNewParser(recoverPartitionSql, connectContext);
ExceptionChecker.expectThrowsWithMsg(DdlException.class,
"No partition named p20210202 in table tbl1",
() -> GlobalStateMgr.getCurrentState().recoverPartition(recoverPartitionStmt));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ public void testForMultiPartitionTable() throws Exception {
Assert.assertTrue(!originPartitionTabletIds2.containsKey("p1"));

String recoverStr = "recover partition p1 from db2.tbl2;";
RecoverPartitionStmt recoverStmt = (RecoverPartitionStmt) UtFrameUtils.parseAndAnalyzeStmt(recoverStr, ctx);
RecoverPartitionStmt recoverStmt = (RecoverPartitionStmt) UtFrameUtils.parseStmtWithNewParser(recoverStr, ctx);
GlobalStateMgr.getCurrentState().recoverPartition(recoverStmt);
checkShowPartitionsResultNum("db2.tbl2", true, 3);
checkShowPartitionsResultNum("db2.tbl2", false, 3);
Expand Down

0 comments on commit 0079329

Please sign in to comment.