@Override public ASTNode visitInputRef(RexInputRef inputRef) { ColumnInfo cI = schema.get(inputRef.getIndex()); if (cI.agg != null) { return (ASTNode) ParseDriver.adaptor.dupTree(cI.agg); } if (cI.table == null || cI.table.isEmpty()) return ASTBuilder.unqualifiedName(cI.column); else return ASTBuilder.qualifiedName(cI.table, cI.column); }
@Override public ASTNode visitInputRef(RexInputRef inputRef) { ColumnInfo cI = schema.get(inputRef.getIndex()); if (cI.agg != null) { return (ASTNode) ParseDriver.adaptor.dupTree(cI.agg); } if (cI.table == null || cI.table.isEmpty()) return ASTBuilder.unqualifiedName(cI.column); else return ASTBuilder.qualifiedName(cI.table, cI.column); }
static ASTNode buildNotInNullCheckQuery(ASTNode subQueryAST, String subQueryAlias, String cntAlias, List<ASTNode> corrExprs, RowResolver sqRR) { subQueryAST = (ASTNode) ParseDriver.adaptor.dupTree(subQueryAST); ASTNode qry = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_QUERY, "TOK_QUERY"); qry.addChild(buildNotInNullCheckFrom(subQueryAST, subQueryAlias)); ASTNode insertAST = buildNotInNullCheckInsert(); qry.addChild(insertAST); insertAST.addChild(buildNotInNullCheckSelect(cntAlias)); insertAST.addChild(buildNotInNullCheckWhere(subQueryAST, subQueryAlias, corrExprs, sqRR)); return qry; }
static ASTNode buildNotInNullCheckQuery(ASTNode subQueryAST, String subQueryAlias, String cntAlias, List<ASTNode> corrExprs, RowResolver sqRR) { subQueryAST = (ASTNode) ParseDriver.adaptor.dupTree(subQueryAST); ASTNode qry = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_QUERY, "TOK_QUERY"); qry.addChild(buildNotInNullCheckFrom(subQueryAST, subQueryAlias)); ASTNode insertAST = buildNotInNullCheckInsert(); qry.addChild(insertAST); insertAST.addChild(buildNotInNullCheckSelect(cntAlias)); insertAST.addChild(buildNotInNullCheckWhere(subQueryAST, subQueryAlias, corrExprs, sqRR)); return qry; }
astForMasking = (ASTNode) ParseDriver.adaptor.dupTree(ast); } else { astForMasking = ast;
from.addChild((ASTNode) ParseDriver.adaptor.dupTree(nodeOfInterest)); ASTNode destination = new ASTNode(DEST_TOKEN); ASTNode dir = new ASTNode(DIR_TOKEN); selectExpr.addChild((ASTNode) ParseDriver.adaptor.dupTree(node)); // Identifier String colAlias = "col" + num; selectExpr.addChild(new ASTNode(new CommonToken(HiveParser.Identifier, colAlias))); // Alias
static ASTNode buildNotInNullCheckWhere(ASTNode subQueryAST, String sqAlias, List<ASTNode> corrExprs, RowResolver sqRR) { ASTNode sqSelect = (ASTNode) subQueryAST.getChild(1).getChild(1); ASTNode selExpr = (ASTNode) sqSelect.getChild(0); String colAlias = null; if ( selExpr.getChildCount() == 2 ) { colAlias = selExpr.getChild(1).getText(); } else if (selExpr.getChild(0).getType() != HiveParser.TOK_ALLCOLREF) { colAlias = sqAlias + "_ninc_col0"; selExpr.addChild((ASTNode)ParseDriver.adaptor.create(HiveParser.Identifier, colAlias)); } else { List<ColumnInfo> signature = sqRR.getRowSchema().getSignature(); ColumnInfo joinColumn = signature.get(0); String[] joinColName = sqRR.reverseLookup(joinColumn.getInternalName()); colAlias = joinColName[1]; } ASTNode searchCond = isNull(createColRefAST(sqAlias, colAlias)); for(ASTNode e : corrExprs ) { ASTNode p = (ASTNode) ParseDriver.adaptor.dupTree(e); p = isNull(p); searchCond = orAST(searchCond, p); } ASTNode where = (ASTNode) ParseDriver.adaptor.create(HiveParser.TOK_WHERE, "TOK_WHERE"); where.addChild(searchCond); return where; }
ASTNode p = (ASTNode) ParseDriver.adaptor.dupTree(e); p = isNull(p); searchCond = orAST(searchCond, p);
from.addChild((ASTNode) ParseDriver.adaptor.dupTree(nodeOfInterest)); ASTNode destination = new ASTNode(new CommonToken(HiveParser.TOK_DESTINATION, "TOK_DESTINATION")); ASTNode dir = new ASTNode(new CommonToken(HiveParser.TOK_DIR, "TOK_DIR")); selectExpr.addChild((ASTNode) ParseDriver.adaptor.dupTree(node)); // Identifier String colAlias = "col" + num; selectExpr.addChild(new ASTNode(new CommonToken(HiveParser.Identifier, colAlias))); // Alias
ASTNode insertNode = (ASTNode) ParseDriver.adaptor.dupTree(updateNode); insertNode.setParent(updateParent); updateParent.addChild(insertNode); ParseDriver.adaptor.addChild(dotNodeInUpdate, rowIdNodeInUpdate); ParseDriver.adaptor.addChild(columnTokNodeInUpdate, tableNameNodeInUpdate); selectNodeInUpdate.insertChild(0, ParseDriver.adaptor.dupTree(selectExprNodeInUpdate)); ASTNode nullsOrderExprNode = (ASTNode) ParseDriver.adaptor.create( HiveParser.TOK_NULLS_FIRST, "TOK_NULLS_FIRST"); ASTNode dotNodeInSort = (ASTNode) ParseDriver.adaptor.dupTree(dotNodeInUpdate); ParseDriver.adaptor.addChild(updateNode, sortExprNode); ParseDriver.adaptor.addChild(sortExprNode, orderExprNode);
@Override protected Object dup(Object el) { return adaptor.dupTree(el); } }
@Override protected Object dup(Object el) { return adaptor.dupTree(el); } }
@Override protected Object dup(Object el) { return adaptor.dupTree(el); } }
@Override protected Object dup(Object el) { return adaptor.dupTree(el); } }
@Override public Object dupTree(Object tree) { Object t = adaptor.dupTree(tree); // walk the tree and emit create and add child events // to simulate what dupTree has done. dupTree does not call this debug // adapter so I must simulate. simulateTreeConstruction(t); return t; }
@Override public Object dupTree(Object tree) { Object t = adaptor.dupTree(tree); // walk the tree and emit create and add child events // to simulate what dupTree has done. dupTree does not call this debug // adapter so I must simulate. simulateTreeConstruction(t); return t; }
@Override public Object dupTree(Object tree) { Object t = adaptor.dupTree(tree); // walk the tree and emit create and add child events // to simulate what dupTree has done. dupTree does not call this debug // adapter so I must simulate. simulateTreeConstruction(t); return t; }
@Override public Object dupTree(Object tree) { Object t = adaptor.dupTree(tree); // walk the tree and emit create and add child events // to simulate what dupTree has done. dupTree does not call this debug // adapter so I must simulate. simulateTreeConstruction(t); return t; }
public Object dupTree(Object tree) { Object t = adaptor.dupTree(tree); // walk the tree and emit create and add child events // to simulate what dupTree has done. dupTree does not call this debug // adapter so I must simulate. simulateTreeConstruction(t); return t; }
@Override public ASTNode visitInputRef(RexInputRef inputRef) { ColumnInfo cI = schema.get(inputRef.getIndex()); if (cI.agg != null) { return (ASTNode) ParseDriver.adaptor.dupTree(cI.agg); } if (cI.table == null || cI.table.isEmpty()) return ASTBuilder.unqualifiedName(cI.column); else return ASTBuilder.qualifiedName(cI.table, cI.column); }