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 ROUTINE LOAD statement for StarRocks. 010 * 011 * Syntax: 012 * SHOW [ALL] ROUTINE LOAD [ FOR [db_name.]job_name | FROM db_name ] 013 * [ WHERE [ STATE = { "NEED_SCHEDULE" | "RUNNING" | "PAUSED" | "UNSTABLE" | "STOPPED" | "CANCELLED" } ] ] 014 * [ ORDER BY field_name [ ASC | DESC ] ] 015 * [ LIMIT { [offset, ] limit | limit OFFSET offset } ] 016 */ 017public class TShowRoutineLoadStmt extends TCustomSqlStatement { 018 019 private boolean showAll; 020 private TObjectName jobName; // For: FOR [db_name.]job_name 021 private TObjectName databaseName; // For: FROM db_name 022 private TExpression filterExpression; 023 private TOrderBy orderBy; 024 private TLimitClause limitClause; 025 026 public TShowRoutineLoadStmt(EDbVendor dbvendor) { 027 super(dbvendor); 028 sqlstatementtype = ESqlStatementType.sststarrocksShowRoutineLoad; 029 } 030 031 public boolean isShowAll() { 032 return showAll; 033 } 034 035 public TObjectName getJobName() { 036 return jobName; 037 } 038 039 public TObjectName getDatabaseName() { 040 return databaseName; 041 } 042 043 public TExpression getFilterExpression() { 044 return filterExpression; 045 } 046 047 public TOrderBy getOrderBy() { 048 return orderBy; 049 } 050 051 public TLimitClause getLimitClause() { 052 return limitClause; 053 } 054 055 @Override 056 public int doParseStatement(TCustomSqlStatement psql) { 057 if (rootNode == null) return -1; 058 super.doParseStatement(psql); 059 060 TShowRoutineLoadSqlNode node = (TShowRoutineLoadSqlNode) rootNode; 061 062 this.showAll = node.isShowAll(); 063 this.jobName = node.getJobName(); 064 this.databaseName = node.getDatabaseName(); 065 this.filterExpression = node.getWhereClause(); 066 this.orderBy = node.getOrderBy(); 067 this.limitClause = node.getLimitClause(); 068 069 return 0; 070 } 071 072 @Override 073 public void accept(TParseTreeVisitor v) { 074 v.preVisit(this); 075 v.postVisit(this); 076 } 077 078 @Override 079 public void acceptChildren(TParseTreeVisitor v) { 080 v.preVisit(this); 081 v.postVisit(this); 082 } 083}