001package gudusoft.gsqlparser.stmt.vertica;
002
003
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlClause;
006import gudusoft.gsqlparser.ESqlStatementType;
007import gudusoft.gsqlparser.TCustomSqlStatement;
008import gudusoft.gsqlparser.nodes.TExpression;
009import gudusoft.gsqlparser.nodes.TObjectName;
010import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
011import gudusoft.gsqlparser.nodes.vertica.TCreateAccessPolicySqlNode;
012
013
014public class TCreateAccessPolicy extends TCustomSqlStatement {
015
016    private TObjectName tableName;
017    private TObjectName columnName;
018    private TExpression expr;
019
020    public TCreateAccessPolicy(EDbVendor dbvendor) {
021        super(dbvendor);
022        sqlstatementtype = ESqlStatementType.sstCreateAccessPolicy;
023    }
024
025    public TObjectName getTableName() {
026        return tableName;
027    }
028
029    public TObjectName getColumnName() {
030        return columnName;
031    }
032
033    public TExpression getExpr() {
034        return expr;
035    }
036
037    public int doParseStatement(TCustomSqlStatement psql) {
038        if (rootNode == null) return -1;
039        super.doParseStatement(psql);
040        TCreateAccessPolicySqlNode node = (TCreateAccessPolicySqlNode)(rootNode);
041
042        tableName = node.getTableName();
043        columnName = node.getColumnName();
044        expr = node.getExpr();
045        if (expr != null){
046            expr.doParse(this, ESqlClause.unknown);
047        }
048
049        return 0;
050    }
051
052    public void accept(TParseTreeVisitor v){
053        v.preVisit(this);
054        v.postVisit(this);
055    }
056
057    public void acceptChildren(TParseTreeVisitor v){
058        v.preVisit(this);
059        v.postVisit(this);
060    }
061}