001package gudusoft.gsqlparser.stmt.vertica;
002
003
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.nodes.TObjectName;
008import gudusoft.gsqlparser.nodes.TObjectNameList;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.nodes.vertica.TExportToVerticaSqlNode;
011import gudusoft.gsqlparser.stmt.*;
012
013public class TExportToVertica extends TCustomSqlStatement {
014
015    private TObjectName destTableName;
016    private TObjectName sourceTableName;
017    private TObjectNameList destColumnList;
018    private TObjectNameList sourceColumnList;
019    private TSelectSqlStatement selectSqlStatement;
020
021
022    public TExportToVertica(EDbVendor dbvendor) {
023        super(dbvendor);
024        sqlstatementtype = ESqlStatementType.sstExportToVertica;
025    }
026
027
028    public TObjectName getDestTableName() {
029        return destTableName;
030    }
031
032    public TObjectName getSourceTableName() {
033        return sourceTableName;
034    }
035
036    public TObjectNameList getDestColumnList() {
037        return destColumnList;
038    }
039
040    public TObjectNameList getSourceColumnList() {
041        return sourceColumnList;
042    }
043
044    public TSelectSqlStatement getSelectSqlStatement() {
045        return selectSqlStatement;
046    }
047
048    public int doParseStatement(TCustomSqlStatement psql) {
049        if (rootNode == null) return -1;
050        super.doParseStatement(psql);
051        TExportToVerticaSqlNode node = (TExportToVerticaSqlNode) (rootNode);
052        destTableName = node.getDestTableName();
053        sourceTableName = node.getSourceTableName();
054        destColumnList = node.getDestColumnList();
055        sourceColumnList = node.getSourceColumnList();
056        if (node.getSelectSqlNode() != null){
057            selectSqlStatement = new TSelectSqlStatement(this.dbvendor);
058            selectSqlStatement.rootNode = node.getSelectSqlNode();
059            selectSqlStatement.doParseStatement(this);
060        }
061
062        return 0;
063    }
064
065    public void accept(TParseTreeVisitor v) {
066        v.preVisit(this);
067        v.postVisit(this);
068    }
069
070    public void acceptChildren(TParseTreeVisitor v) {
071        v.preVisit(this);
072        v.postVisit(this);
073    }
074}