001package gudusoft.gsqlparser.stmt.snowflake; 002 003 004import gudusoft.gsqlparser.EDbVendor; 005import gudusoft.gsqlparser.ESqlClause; 006import gudusoft.gsqlparser.ESqlStatementType; 007import gudusoft.gsqlparser.TCustomSqlStatement; 008import gudusoft.gsqlparser.nodes.TCreateTableOption; 009import gudusoft.gsqlparser.nodes.TDummy; 010import gudusoft.gsqlparser.nodes.TObjectName; 011import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 012import gudusoft.gsqlparser.nodes.snowflake.TCreateStageSqlNode; 013 014import java.util.ArrayList; 015 016/** 017 * Snowflake create stage 018 */ 019public class TCreateStageStmt extends TCustomSqlStatement { 020 021 private String fileFormatName = null; 022 private String fileFormatType = null; 023 024 public void setFileFormatName(String fileFormatName) { 025 this.fileFormatName = fileFormatName; 026 } 027 028 public void setFileFormatType(String fileFormatType) { 029 this.fileFormatType = fileFormatType; 030 } 031 032 public String getFileFormatName() { 033 return fileFormatName; 034 } 035 036 public String getFileFormatType() { 037 return fileFormatType; 038 } 039 040 public void setExternalStageURL(String externalStageURL) { 041 this.externalStageURL = externalStageURL; 042 } 043 044 private String externalStageURL = null; 045 046 public String getExternalStageURL() { 047 return externalStageURL; 048 } 049 050 private TObjectName stageName; 051 052 public void setStageName(TObjectName stageName) { 053 this.stageName = stageName; 054 } 055 056 public TObjectName getStageName() { 057 return stageName; 058 } 059 060 public String getStageNameOnly() { 061 return stageName.getObjectString(); 062 } 063 064 private TObjectName nameSpace; 065 066 public TObjectName getNameSpace() { 067 return nameSpace; 068 } 069 070 public TCreateStageStmt(EDbVendor dbvendor) { 071 super(dbvendor); 072 sqlstatementtype = ESqlStatementType.sstCreateStage; 073 } 074 075 public int doParseStatement(TCustomSqlStatement psql) { 076 if (rootNode == null) return -1; 077 super.doParseStatement(psql); 078 TCreateStageSqlNode node = (TCreateStageSqlNode)rootNode; 079 stageName = node.getStageName(); 080 nameSpace = node.getNameSpace(); 081// if (node.st1 != null){ 082// externalStageURL = node.st1.toString(); 083// } 084 085 ArrayList<TCreateTableOption> tableOptions = node.getTableOptions(); 086 if (tableOptions != null){ 087 for(int i=0;i<tableOptions.size();i++){ 088 tableOptions.get(i).doParse(this, ESqlClause.unknown); 089 } 090 } 091 092 return 0; 093 } 094 095 public void accept(TParseTreeVisitor v){ 096 v.preVisit(this); 097 v.postVisit(this); 098 } 099 100 public void acceptChildren(TParseTreeVisitor v){ 101 v.preVisit(this); 102 v.postVisit(this); 103 } 104}