001package gudusoft.gsqlparser.stmt; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.ESqlStatementType; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.*; 007 008/** 009 * Statement class for StarRocks DROP DICTIONARY statement. 010 * 011 * Syntax: 012 * DROP DICTIONARY dictionary_object_name [CACHE] 013 */ 014public class TStarrocksDropDictionaryStmt extends TCustomSqlStatement { 015 016 private TObjectName dictionaryName; 017 private boolean cacheOnly; 018 019 public TStarrocksDropDictionaryStmt(EDbVendor dbVendor) { 020 super(dbVendor); 021 sqlstatementtype = ESqlStatementType.sststarrocksDropDictionary; 022 } 023 024 public TObjectName getDictionaryName() { 025 return dictionaryName; 026 } 027 028 public boolean isCacheOnly() { 029 return cacheOnly; 030 } 031 032 @Override 033 public void accept(TParseTreeVisitor v) { 034 v.preVisit(this); 035 v.postVisit(this); 036 } 037 038 @Override 039 public void acceptChildren(TParseTreeVisitor v) { 040 if (this.dictionaryName != null) { 041 this.dictionaryName.accept(v); 042 } 043 } 044 045 @Override 046 public int doParseStatement(TCustomSqlStatement psql) { 047 if (rootNode == null) return -1; 048 super.doParseStatement(psql); 049 050 if (rootNode instanceof TDropDictionarySqlNode) { 051 TDropDictionarySqlNode node = (TDropDictionarySqlNode) rootNode; 052 this.dictionaryName = node.getDictionaryName(); 053 this.cacheOnly = node.isCacheOnly(); 054 } 055 return 0; 056 } 057}