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 STORAGE VOLUMES statement for StarRocks.
010 *
011 * Syntax:
012 * SHOW STORAGE VOLUMES [ LIKE '<pattern>' ]
013 *
014 * This statement lists all storage volumes in the cluster.
015 * The LIKE pattern can be used to filter results.
016 */
017public class TStarrocksShowStorageVolumeStmt extends TCustomSqlStatement {
018
019    // Optional LIKE pattern
020    private String likePattern;
021
022    public TStarrocksShowStorageVolumeStmt(EDbVendor dbvendor) {
023        super(dbvendor);
024        sqlstatementtype = ESqlStatementType.sststarrocksShowStorageVolume;
025    }
026
027    // Getters
028    public String getLikePattern() {
029        return likePattern;
030    }
031
032    @Override
033    public int doParseStatement(TCustomSqlStatement psql) {
034        if (rootNode == null) return -1;
035        super.doParseStatement(psql);
036
037        TShowStorageVolumeSqlNode node = (TShowStorageVolumeSqlNode) rootNode;
038
039        if (node.getLikePattern() != null) {
040            this.likePattern = node.getLikePattern().toString();
041        }
042
043        return 0;
044    }
045
046    @Override
047    public void accept(TParseTreeVisitor v) {
048        v.preVisit(this);
049        v.postVisit(this);
050    }
051
052    @Override
053    public void acceptChildren(TParseTreeVisitor v) {
054        v.preVisit(this);
055        v.postVisit(this);
056    }
057}