001package gudusoft.gsqlparser.stmt; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.ESqlStatementType; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.*; 007 008/** 009 * CANCEL EXPORT statement for StarRocks. 010 * 011 * Syntax: 012 * CANCEL EXPORT [FROM db_name] WHERE QUERYID = "query_id" 013 * 014 * This statement cancels a data export job that is not in CANCELLED or FINISHED state. 015 * The cancellation is asynchronous - verify using SHOW EXPORT. 016 */ 017public class TStarrocksCancelExportStmt extends TCustomSqlStatement { 018 019 // FROM database (optional) 020 private TObjectName databaseName; 021 022 // WHERE condition (required - contains QUERYID) 023 private TExpression whereCondition; 024 025 public TStarrocksCancelExportStmt(EDbVendor dbvendor) { 026 super(dbvendor); 027 sqlstatementtype = ESqlStatementType.sststarrocksCancelExport; 028 } 029 030 // Getters 031 public TObjectName getDatabaseName() { 032 return databaseName; 033 } 034 035 public TExpression getWhereCondition() { 036 return whereCondition; 037 } 038 039 @Override 040 public int doParseStatement(TCustomSqlStatement psql) { 041 if (rootNode == null) return -1; 042 super.doParseStatement(psql); 043 044 TCancelExportSqlNode node = (TCancelExportSqlNode) rootNode; 045 046 this.databaseName = node.getDatabaseName(); 047 this.whereCondition = node.getWhereCondition(); 048 049 return 0; 050 } 051 052 @Override 053 public void accept(TParseTreeVisitor v) { 054 v.preVisit(this); 055 v.postVisit(this); 056 } 057 058 @Override 059 public void acceptChildren(TParseTreeVisitor v) { 060 v.preVisit(this); 061 v.postVisit(this); 062 } 063}