static ASTNode buildNotInNullCheckFrom(ASTNode subQueryAST, String subQueryAlias) { ASTNode from = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_FROM, "TOK_FROM"); ASTNode sqExpr = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_SUBQUERY, "TOK_SUBQUERY"); sqExpr.addChild(subQueryAST); sqExpr.addChild(createAliasAST(subQueryAlias)); from.addChild(sqExpr); return from; }
static ASTNode buildSelectExpr(ASTNode expression) { ASTNode selAst = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_SELEXPR, "TOK_SELEXPR"); selAst.addChild(expression); return selAst; }
static ASTNode buildNotInNullCheckSelect(String cntAlias) { ASTNode select = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_SELECT, "TOK_SELECT"); ASTNode selectExpr = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_SELEXPR, "TOK_SELEXPR"); ASTNode countStar = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_FUNCTIONSTAR, "TOK_FUNCTIONSTAR"); ASTNode alias = (createAliasAST(cntAlias)); countStar.addChild((ASTNode) ParseDriver.adaptor.create(HiveParser.Identifier, "count")); select.addChild(selectExpr); selectExpr.addChild(countStar); selectExpr.addChild(alias); return select; }
static ASTNode createColRefAST(String tabAlias, String colName) { ASTNode dot = (ASTNode) ParseDriver.adaptor.create(HiveParser.DOT, "."); ASTNode tabAst = createTabRefAST(tabAlias); ASTNode colAst = (ASTNode) ParseDriver.adaptor.create(HiveParser.Identifier, colName); dot.addChild(tabAst); dot.addChild(colAst); return dot; }
static ASTNode buildNotInNullCheckInsert() { ASTNode insert = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_INSERT, "TOK_INSERT"); ASTNode dest = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_DESTINATION, "TOK_DESTINATION"); ASTNode dir = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_DIR, "TOK_DIR"); ASTNode tfile = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_TMP_FILE, "TOK_TMP_FILE"); insert.addChild(dest); dest.addChild(dir); dir.addChild(tfile); return insert; }
public static ASTNode genSelectDIAST(RowResolver rr) { LinkedHashMap<String, LinkedHashMap<String, ColumnInfo>> map = rr.getRslvMap(); ASTNode selectDI = new ASTNode(SELECTDI_TOKEN); // Note: this will determine the order of columns in the result. For now, the columns for each // table will be together; the order of the tables, as well as the columns within each // table, is deterministic, but undefined - RR stores them in the order of addition. for (String tabAlias : map.keySet()) { for (Entry<String, ColumnInfo> entry : map.get(tabAlias).entrySet()) { selectDI.addChild(buildSelExprSubTree(tabAlias, entry.getKey())); } } return selectDI; } private static ASTNode buildSelExprSubTree(String tableAlias, String col) {
static ASTNode createTabRefAST(String tabAlias) { ASTNode tabAst = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_TABLE_OR_COL, "TOK_TABLE_OR_COL"); ASTNode tabName = (ASTNode) ParseDriver.adaptor.create(HiveParser.Identifier, tabAlias); tabAst.addChild(tabName); return tabAst; }
static ASTNode createTabRefAST(String tabAlias) { ASTNode tabAst = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_TABLE_OR_COL, "TOK_TABLE_OR_COL"); ASTNode tabName = (ASTNode) ParseDriver.adaptor.create(HiveParser.Identifier, tabAlias); tabAst.addChild(tabName); return tabAst; }
private static ASTNode buildSelExprSubTree(String tableAlias, String col) { tableAlias = StringInternUtils.internIfNotNull(tableAlias); col = StringInternUtils.internIfNotNull(col); ASTNode selexpr = new ASTNode(SELEXPR_TOKEN); ASTNode tableOrCol = new ASTNode(TABLEORCOL_TOKEN); ASTNode dot = new ASTNode(DOT_TOKEN); tableOrCol.addChild(new ASTNode(new CommonToken(HiveParser.Identifier, tableAlias))); dot.addChild(tableOrCol); dot.addChild(new ASTNode(new CommonToken(HiveParser.Identifier, col))); selexpr.addChild(dot); return selexpr; }
private ASTNode buildUDTFAST(String functionName, List<ASTNode> children) { ASTNode node = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_FUNCTION, "TOK_FUNCTION"); node.addChild((ASTNode) ParseDriver.adaptor.create(HiveParser.Identifier, functionName)); for (ASTNode c : children) { ParseDriver.adaptor.addChild(node, c); } return node; } private void convertOrderLimitToASTNode(HiveSortLimit order) {
static ASTNode constructEqualityCond(String lTbl, String lCol, String rTbl, String rCol) { ASTNode lRef = constructColRef(lTbl, lCol); ASTNode rRef = constructColRef(rTbl, rCol); ASTNode eq = (ASTNode) ParseDriver.adaptor.create(HiveParser.EQUAL, "="); eq.addChild(lRef); eq.addChild(rRef); return eq; }
private static ASTNode buildSelExprSubTree(String tableAlias, String col) { ASTNode selexpr = new ASTNode(new CommonToken(HiveParser.TOK_SELEXPR, "TOK_SELEXPR")); ASTNode tableOrCol = new ASTNode(new CommonToken(HiveParser.TOK_TABLE_OR_COL, "TOK_TABLE_OR_COL")); ASTNode dot = new ASTNode(new CommonToken(HiveParser.DOT, ".")); tableOrCol.addChild(new ASTNode(new CommonToken(HiveParser.Identifier, tableAlias))); dot.addChild(tableOrCol); dot.addChild(new ASTNode(new CommonToken(HiveParser.Identifier, col))); selexpr.addChild(dot); return selexpr; }
static ASTNode constructTabRef(String tblNm) { ASTNode table = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_TABLE_OR_COL, "TOK_TABLE_OR_COL"); ASTNode id = constructIdentifier(tblNm); table.addChild(id); return table; }