001package gudusoft.gsqlparser.stmt.hive;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.ESqlStatementType;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.TSourceToken;
007import gudusoft.gsqlparser.nodes.TObjectName;
008import gudusoft.gsqlparser.nodes.TObjectNameList;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.nodes.TPartitionExtensionClause;
011import gudusoft.gsqlparser.nodes.hive.THivePrincipalName;
012import gudusoft.gsqlparser.nodes.hive.THiveShowGrantSqlNode;
013
014public class THiveShowGrant extends TCustomSqlStatement {
015
016    private THivePrincipalName principalName;
017    private TObjectName tableName;
018    private TSourceToken tableToken;
019    private TPartitionExtensionClause partitionSpec;
020    private TObjectNameList columns;
021
022    public THiveShowGrant(EDbVendor dbvendor) {
023        super(dbvendor);
024        sqlstatementtype = ESqlStatementType.ssthiveShowGrants;
025    }
026
027    public THivePrincipalName getPrincipalName() {
028        return principalName;
029    }
030
031    public TObjectName getTableName() {
032        return tableName;
033    }
034
035    public TSourceToken getTableToken() {
036        return tableToken;
037    }
038
039    public TPartitionExtensionClause getPartitionSpec() {
040        return partitionSpec;
041    }
042
043    public TObjectNameList getColumns() {
044        return columns;
045    }
046
047    public int doParseStatement(TCustomSqlStatement psql) {
048        if (rootNode == null) return -1;
049        super.doParseStatement(psql);
050        THiveShowGrantSqlNode node = (THiveShowGrantSqlNode)rootNode;
051
052        principalName = node.getPrincipalName();
053        tableName = node.getTableName();
054        tableToken = node.getTableToken();
055        partitionSpec = node.getPartitionSpec();
056        columns = node.getColumns();
057
058        return 0;
059    }
060
061    public void accept(TParseTreeVisitor v){
062        v.preVisit(this);
063        v.postVisit(this);
064    }
065
066    public void acceptChildren(TParseTreeVisitor v){
067        v.preVisit(this);
068        v.postVisit(this);
069    }
070
071    public void setPrincipalName(THivePrincipalName principalName) {
072        this.principalName = principalName;
073    }
074
075    public void setTableName(TObjectName tableName) {
076        this.tableName = tableName;
077    }
078
079    public void setPartitionSpec(TPartitionExtensionClause partitionSpec) {
080        this.partitionSpec = partitionSpec;
081    }
082
083    public void setColumns(TObjectNameList columns) {
084        this.columns = columns;
085    }
086}