001package gudusoft.gsqlparser.stmt; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.ESqlStatementType; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.*; 007 008/** 009 * SHOW SNAPSHOT statement for StarRocks. 010 * 011 * Syntax: 012 * SHOW SNAPSHOT ON <repo_name> 013 * [WHERE SNAPSHOT = <snapshot_name> [AND TIMESTAMP = <backup_timestamp>]] 014 * 015 * Views data snapshots in a specified repository. 016 */ 017public class TStarrocksShowSnapshotStmt extends TCustomSqlStatement { 018 019 // ON clause - repository name (required) 020 private TObjectName repositoryName; 021 022 // Full WHERE clause expression 023 private TExpression whereCondition; 024 025 public TStarrocksShowSnapshotStmt(EDbVendor dbvendor) { 026 super(dbvendor); 027 sqlstatementtype = ESqlStatementType.sststarrocksShowSnapshot; 028 } 029 030 // Getters 031 public TObjectName getRepositoryName() { 032 return repositoryName; 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 TShowSnapshotSqlNode node = (TShowSnapshotSqlNode) rootNode; 045 046 this.repositoryName = node.getRepositoryName(); 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}