001package gudusoft.gsqlparser.stmt; 002/* 003 * Date: 13-8-9 004 */ 005 006import gudusoft.gsqlparser.EAlterViewOption; 007import gudusoft.gsqlparser.EDbVendor; 008import gudusoft.gsqlparser.ESqlStatementType; 009import gudusoft.gsqlparser.TCustomSqlStatement; 010import gudusoft.gsqlparser.nodes.*; 011 012import java.util.ArrayList; 013 014public class TAlterViewStatement extends TAlterRelation { 015 private String comment; 016 017 public String getComment() { 018 return comment; 019 } 020 private TObjectName viewName; 021 private EAlterViewOption alterViewOption; 022 private TObjectName newViewName; 023 private ArrayList<TPartitionExtensionClause> partitionSpecs; 024 private TSelectSqlStatement selectSqlStatement; 025 private TObjectName ownerName; 026 027 public void setOwnerName(TObjectName ownerName) { 028 this.ownerName = ownerName; 029 } 030 031 public TObjectName getOwnerName() { 032 033 return ownerName; 034 } 035 // private TSelectSqlNode selectSqlNode; 036 037 public TAlterViewStatement(EDbVendor dbvendor) { 038 super(dbvendor); 039 sqlstatementtype = ESqlStatementType.sstalterview; 040 } 041 042 public TObjectName getViewName() { 043 return viewName; 044 } 045 046 public EAlterViewOption getAlterViewOption() { 047 return alterViewOption; 048 } 049 050 public TObjectName getNewViewName() { 051 return newViewName; 052 } 053 054 public ArrayList<TPartitionExtensionClause> getPartitionSpecs() { 055 return partitionSpecs; 056 } 057 058 public TSelectSqlStatement getSelectSqlStatement() { 059 return selectSqlStatement; 060 } 061 062 063 064 public int doParseStatement(TCustomSqlStatement psql) { 065 if (rootNode == null) return -1; 066 super.doParseStatement(psql); 067 TAlterViewSqlNode node = (TAlterViewSqlNode)rootNode; 068 alterViewOption = node.getAlterViewOption(); 069 viewName = node.getViewName(); 070 newViewName = node.getNewViewName(); 071 ownerName = node.getOwnerName(); 072 partitionSpecs = node.getPartitionSpecs(); 073 this.comment = node.getComment(); 074 075 if (node.getSelectSqlNode() != null){ 076 selectSqlStatement = new TSelectSqlStatement(EDbVendor.dbvhive); 077 selectSqlStatement.rootNode = node.getSelectSqlNode(); 078 selectSqlStatement.setStartToken(node.getSelectSqlNode()); 079 selectSqlStatement.setEndToken(node.getSelectSqlNode()); 080 selectSqlStatement.doParseStatement(this); 081 } 082 if (alterViewOption == null) return 0; 083 084 switch (alterViewOption){ 085 case rename: 086 this.newViewName = node.getNewViewName(); 087 break; 088 } 089 090 091 return 0; 092 } 093 094 public void setViewName(TObjectName viewName) { 095 this.viewName = viewName; 096 } 097 098 public void setAlterViewOption(EAlterViewOption alterViewOption) { 099 this.alterViewOption = alterViewOption; 100 } 101 102 public void setNewViewName(TObjectName newViewName) { 103 this.newViewName = newViewName; 104 } 105 106 107 public void setSelectSqlStatement(TSelectSqlStatement selectSqlStatement) { 108 this.selectSqlStatement = selectSqlStatement; 109 } 110 111 public void accept(TParseTreeVisitor v){ 112 v.preVisit(this); 113 v.postVisit(this); 114 } 115 116 public void acceptChildren(TParseTreeVisitor v){ 117 v.preVisit(this); 118 if (selectSqlStatement != null) selectSqlStatement.accept(v); 119 v.postVisit(this); 120 } 121 122}