001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.ESqlStatementType;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.nodes.TDummy;
007import gudusoft.gsqlparser.nodes.TObjectName;
008import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
009import gudusoft.gsqlparser.nodes.TStubStmtSqlNode;
010
011
012public class TShowStmt extends TCustomSqlStatement {
013    public enum EShowType {parameter, transaction, replicaStatus};
014
015    private TObjectName parameterName;
016    private EShowType showType;
017
018    public EShowType getShowType() {
019        return showType;
020    }
021
022    public TObjectName getParameterName() {
023        return parameterName;
024    }
025
026    public TShowStmt(EDbVendor dbvendor) {
027        super(dbvendor);
028        sqlstatementtype = ESqlStatementType.sstShow;
029    }
030
031    public int doParseStatement(TCustomSqlStatement psql) {
032        if (rootNode == null) return -1;
033        super.doParseStatement(psql);
034        if (rootNode instanceof TDummy){
035            TDummy node = (TDummy)rootNode;
036            parameterName = (TObjectName) node.node1;
037            showType = node.showType;
038
039        }else if (rootNode instanceof TStubStmtSqlNode){
040            // sparksql
041        }
042
043        return 0;
044    }
045    public void accept(TParseTreeVisitor v){
046        v.preVisit(this);
047        v.postVisit(this);
048    }
049    public void acceptChildren(TParseTreeVisitor v){
050        v.preVisit(this);
051        v.postVisit(this);
052    }
053
054}