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 LOAD TRANSACTION statement for StarRocks.
010 *
011 * Syntax:
012 * SHOW LOAD TRANSACTION [FROM db_name] [WHERE condition]
013 *
014 * Used to display information about stream load transactions.
015 */
016public class TShowLoadTransactionStmt extends TCustomSqlStatement {
017
018    // Database name (optional: FROM db_name)
019    private TObjectName databaseName;
020
021    // Filter condition (optional: WHERE condition)
022    private TExpression whereCondition;
023
024    public TShowLoadTransactionStmt(EDbVendor dbvendor) {
025        super(dbvendor);
026        sqlstatementtype = ESqlStatementType.sststarrocksShowLoadTransaction;
027    }
028
029    // Getters
030    public TObjectName getDatabaseName() {
031        return databaseName;
032    }
033
034    public TExpression getWhereCondition() {
035        return whereCondition;
036    }
037
038    @Override
039    public int doParseStatement(TCustomSqlStatement psql) {
040        if (rootNode == null) return -1;
041        super.doParseStatement(psql);
042
043        TShowLoadTransactionSqlNode node = (TShowLoadTransactionSqlNode) rootNode;
044
045        this.databaseName = node.getDatabaseName();
046        this.whereCondition = node.getWhereCondition();
047
048        return 0;
049    }
050
051    @Override
052    public void accept(TParseTreeVisitor v) {
053        v.preVisit(this);
054        v.postVisit(this);
055    }
056
057    @Override
058    public void acceptChildren(TParseTreeVisitor v) {
059        v.preVisit(this);
060        v.postVisit(this);
061    }
062}