001package gudusoft.gsqlparser.stmt.snowflake;
002
003import gudusoft.gsqlparser.EDbObjectType;
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.nodes.TDummy;
008import gudusoft.gsqlparser.nodes.TObjectName;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.nodes.snowflake.TCreatePipeSqlNode;
011
012
013public class TCreatePipeStmt extends TCustomSqlStatement {
014
015    private TObjectName pipeName;
016
017    public void setPipeName(TObjectName pipeName) {
018        this.pipeName = pipeName;
019    }
020
021    public TSnowflakeCopyIntoStmt getCopyIntoStmt() {
022        return copyIntoStmt;
023    }
024
025    public TObjectName getPipeName() {
026
027        return pipeName;
028    }
029
030    public TCreatePipeStmt(EDbVendor dbvendor) {
031        super(dbvendor);
032        sqlstatementtype = ESqlStatementType.sstCreatePipe;
033    }
034
035    private TSnowflakeCopyIntoStmt copyIntoStmt;
036
037    public int doParseStatement(TCustomSqlStatement psql) {
038        if (rootNode == null) return -1;
039        super.doParseStatement(psql);
040        TCreatePipeSqlNode node = (TCreatePipeSqlNode)rootNode;
041        pipeName = node.getPipeName();
042        pipeName.setDbObjectType(EDbObjectType.pipe);
043        copyIntoStmt = new TSnowflakeCopyIntoStmt(this.dbvendor);
044        copyIntoStmt.rootNode = node.getCopyIntoNode();
045        copyIntoStmt.doParseStatement(this);
046
047        return 0;
048    }
049
050    public void accept(TParseTreeVisitor v){
051        v.preVisit(this);
052        v.postVisit(this);
053    }
054
055    public void acceptChildren(TParseTreeVisitor v){
056        v.preVisit(this);
057        v.postVisit(this);
058    }
059}