001package gudusoft.gsqlparser.stmt; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.ESqlStatementType; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.*; 007 008/** 009 * COMMIT LOAD TRANSACTION statement for StarRocks. 010 * 011 * Syntax: 012 * COMMIT LOAD TRANSACTION [label_name] 013 * COMMIT LOAD TRANSACTION [FOR db_name] 014 * 015 * Commits the stream load transaction making data changes persistent. 016 */ 017public class TCommitLoadTransactionStmt extends TCustomSqlStatement { 018 019 // Transaction label (optional) 020 private TObjectName labelName; 021 022 // Database name (optional: FOR db_name) 023 private TObjectName databaseName; 024 025 public TCommitLoadTransactionStmt(EDbVendor dbvendor) { 026 super(dbvendor); 027 sqlstatementtype = ESqlStatementType.sststarrocksCommitLoadTransaction; 028 } 029 030 // Getters 031 public TObjectName getLabelName() { 032 return labelName; 033 } 034 035 public TObjectName getDatabaseName() { 036 return databaseName; 037 } 038 039 @Override 040 public int doParseStatement(TCustomSqlStatement psql) { 041 if (rootNode == null) return -1; 042 super.doParseStatement(psql); 043 044 TCommitLoadTransactionSqlNode node = (TCommitLoadTransactionSqlNode) rootNode; 045 046 this.labelName = node.getLabelName(); 047 this.databaseName = node.getDatabaseName(); 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}