001package gudusoft.gsqlparser.stmt.redshift; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.ESqlStatementType; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.TDummy; 007import gudusoft.gsqlparser.nodes.TObjectName; 008import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 009import gudusoft.gsqlparser.nodes.TSelectSqlNode; 010import gudusoft.gsqlparser.stmt.TSelectSqlStatement; 011 012 013public class TRedshiftDeclare extends TCustomSqlStatement { 014 015 private TObjectName cursorName; 016 private TSelectSqlStatement subquery = null; 017 018 public TRedshiftDeclare(EDbVendor dbvendor) { 019 super(dbvendor); 020 sqlstatementtype = ESqlStatementType.sstredshiftDeclare; 021 } 022 023 public TObjectName getCursorName() { 024 return cursorName; 025 } 026 027 public TSelectSqlStatement getSubquery() { 028 return subquery; 029 } 030 031 public int doParseStatement(TCustomSqlStatement psql) { 032 if (rootNode == null) return -1; 033 super.doParseStatement(psql); 034 TDummy dummy = (TDummy)rootNode; 035 cursorName = (TObjectName)dummy.node1; 036 037 subquery = new TSelectSqlStatement(this.dbvendor); 038 subquery.rootNode = dummy.node2; 039 subquery.doParseStatement(this); 040 041 return 0; 042 } 043 044 public void accept(TParseTreeVisitor v){ 045 v.preVisit(this); 046 047 v.postVisit(this); 048 } 049 public void acceptChildren(TParseTreeVisitor v){ 050 v.preVisit(this); 051 subquery.accept(v); 052 v.postVisit(this); 053 } 054 055 public void setCursorName(TObjectName cursorName) { 056 this.cursorName = cursorName; 057 } 058 059 public void setSubquery(TSelectSqlStatement subquery) { 060 this.subquery = subquery; 061 } 062}