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}