@Override public List<String> getReferencedColumns() throws SemanticException { MatchPath matchPath = (MatchPath) evaluator; List<String> columns = new ArrayList<>(); for (ExprNodeDesc exprNode : matchPath.resultExprInfo.resultExprNodes) { Utilities.mergeUniqElems(columns, exprNode.getCols()); } for (ExprNodeDesc exprNode : matchPath.symInfo.symbolExprsDecs) { Utilities.mergeUniqElems(columns, exprNode.getCols()); } return columns; }
@Override public List<String> getCols() { List<String> colList = new ArrayList<String>(); if (desc != null) { colList = Utilities.mergeUniqElems(colList, desc.getCols()); } return colList; }
@Override public List<String> getCols() { List<String> colList = new ArrayList<String>(); if (desc != null) { colList = Utilities.mergeUniqElems(colList, desc.getCols()); } return colList; }
@Override public List<String> getReferencedColumns() throws SemanticException { MatchPath matchPath = (MatchPath) evaluator; List<String> columns = new ArrayList<>(); for (ExprNodeDesc exprNode : matchPath.resultExprInfo.resultExprNodes) { Utilities.mergeUniqElems(columns, exprNode.getCols()); } for (ExprNodeDesc exprNode : matchPath.symInfo.symbolExprsDecs) { Utilities.mergeUniqElems(columns, exprNode.getCols()); } return columns; }
@Override public List<String> getCols() { List<String> colList = new ArrayList<String>(); if (chidren != null) { int pos = 0; while (pos < chidren.size()) { List<String> colCh = chidren.get(pos).getCols(); colList = Utilities.mergeUniqElems(colList, colCh); pos++; } } return colList; }
@Override public List<String> getCols() { List<String> colList = new ArrayList<String>(); if (chidren != null) { int pos = 0; while (pos < chidren.size()) { List<String> colCh = chidren.get(pos).getCols(); colList = Utilities.mergeUniqElems(colList, colCh); pos++; } } return colList; }
private static boolean[] getPruneReduceSinkOpRetainFlags( List<String> retainedParentOpOutputCols, ReduceSinkOperator reduce) { ReduceSinkDesc reduceConf = reduce.getConf(); java.util.ArrayList<ExprNodeDesc> originalValueEval = reduceConf .getValueCols(); boolean[] flags = new boolean[originalValueEval.size()]; for (int i = 0; i < originalValueEval.size(); i++) { flags[i] = false; List<String> current = originalValueEval.get(i).getCols(); if (current == null || current.size() == 0) { flags[i] = true; } else { for (int j = 0; j < current.size(); j++) { if (retainedParentOpOutputCols.contains(current.get(j))) { flags[i] = true; break; } } } } return flags; }
private static boolean[] getPruneReduceSinkOpRetainFlags( List<String> retainedParentOpOutputCols, ReduceSinkOperator reduce) { ReduceSinkDesc reduceConf = reduce.getConf(); java.util.ArrayList<ExprNodeDesc> originalValueEval = reduceConf .getValueCols(); boolean[] flags = new boolean[originalValueEval.size()]; for (int i = 0; i < originalValueEval.size(); i++) { flags[i] = false; List<String> current = originalValueEval.get(i).getCols(); if (current == null || current.size() == 0) { flags[i] = true; } else { for (int j = 0; j < current.size(); j++) { if (retainedParentOpOutputCols.contains(current.get(j))) { flags[i] = true; break; } } } } return flags; }
public List<String> genColLists( HashMap<Operator<? extends OperatorDesc>, OpParseContext> opParseCtx) { List<String> colLists = new ArrayList<String>(); ArrayList<ExprNodeDesc> keys = conf.getKeys(); for (ExprNodeDesc key : keys) { colLists = Utilities.mergeUniqElems(colLists, key.getCols()); } ArrayList<AggregationDesc> aggrs = conf.getAggregators(); for (AggregationDesc aggr : aggrs) { ArrayList<ExprNodeDesc> params = aggr.getParameters(); for (ExprNodeDesc param : params) { colLists = Utilities.mergeUniqElems(colLists, param.getCols()); } } return colLists; }
public List<String> genColLists( HashMap<Operator<? extends OperatorDesc>, OpParseContext> opParseCtx) { List<String> colLists = new ArrayList<String>(); ArrayList<ExprNodeDesc> keys = conf.getKeys(); for (ExprNodeDesc key : keys) { colLists = Utilities.mergeUniqElems(colLists, key.getCols()); } ArrayList<AggregationDesc> aggrs = conf.getAggregators(); for (AggregationDesc aggr : aggrs) { ArrayList<ExprNodeDesc> params = aggr.getParameters(); for (ExprNodeDesc param : params) { colLists = Utilities.mergeUniqElems(colLists, param.getCols()); } } return colLists; }
@Override public List<String> getReferencedColumns() throws SemanticException { MatchPath matchPath = (MatchPath) evaluator; List<String> columns = new ArrayList<>(); for (ExprNodeDesc exprNode : matchPath.resultExprInfo.resultExprNodes) { Utilities.mergeUniqElems(columns, exprNode.getCols()); } for (ExprNodeDesc exprNode : matchPath.symInfo.symbolExprsDecs) { Utilities.mergeUniqElems(columns, exprNode.getCols()); } return columns; }
@Override public List<String> getCols() { List<String> colList = new ArrayList<String>(); if (desc != null) { colList = Utilities.mergeUniqElems(colList, desc.getCols()); } return colList; }
@Override public List<String> getCols() { List<String> colList = new ArrayList<String>(); if (chidren != null) { int pos = 0; while (pos < chidren.size()) { List<String> colCh = chidren.get(pos).getCols(); colList = Utilities.mergeUniqElems(colList, colCh); pos++; } } return colList; }
@Override public List<String> getCols() { List<String> colList = new ArrayList<String>(); if (childExprs != null) { int pos = 0; while (pos < childExprs.size()) { List<String> colCh = childExprs.get(pos).getCols(); colList = Utilities.mergeUniqElems(colList, colCh); pos++; } } return colList; }
@Override public List<String> getCols() { List<String> colList = new ArrayList<String>(); if (desc != null) { colList = Utilities.mergeUniqElems(colList, desc.getCols()); } return colList; }
void dumpFilterExpr(ExprNodeDesc expr){ if(expr == null) return; System.err.println("cols=" + expr.getCols() + ", expr=" + expr.getExprString()); List<ExprNodeDesc> children = expr.getChildren(); if(children != null && children.size() > 0){ System.err.println("children="); for(ExprNodeDesc e : children){ dumpFilterExpr(e); } } } }
public List<String> genColLists( HashMap<Operator<? extends OperatorDesc>, OpParseContext> opParseCtx) { List<String> colLists = new ArrayList<String>(); ArrayList<ExprNodeDesc> keys = conf.getKeys(); for (ExprNodeDesc key : keys) { colLists = Utilities.mergeUniqElems(colLists, key.getCols()); } ArrayList<AggregationDesc> aggrs = conf.getAggregators(); for (AggregationDesc aggr : aggrs) { ArrayList<ExprNodeDesc> params = aggr.getParameters(); for (ExprNodeDesc param : params) { colLists = Utilities.mergeUniqElems(colLists, param.getCols()); } } return colLists; }
public List<String> genColLists( HashMap<Operator<? extends Serializable>, OpParseContext> opParseCtx) { List<String> colLists = new ArrayList<String>(); ArrayList<ExprNodeDesc> keys = conf.getKeys(); for (ExprNodeDesc key : keys) { colLists = Utilities.mergeUniqElems(colLists, key.getCols()); } ArrayList<AggregationDesc> aggrs = conf.getAggregators(); for (AggregationDesc aggr : aggrs) { ArrayList<ExprNodeDesc> params = aggr.getParameters(); for (ExprNodeDesc param : params) { colLists = Utilities.mergeUniqElems(colLists, param.getCols()); } } return colLists; }
/** * Creates the list of internal column names from select expressions in a * select operator. This function is used for the select operator instead of * the genColLists function (which is used by the rest of the operators). * * @param op * The select operator. * @return List<String> of the internal column names. */ public List<String> getColsFromSelectExpr(SelectOperator op) { List<String> cols = new ArrayList<String>(); SelectDesc conf = op.getConf(); ArrayList<ExprNodeDesc> exprList = conf.getColList(); for (ExprNodeDesc expr : exprList) { cols = Utilities.mergeUniqElems(cols, expr.getCols()); } return cols; }
public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx ctx, Object... nodeOutputs) throws SemanticException { FilterOperator op = (FilterOperator) nd; ColumnPrunerProcCtx cppCtx = (ColumnPrunerProcCtx) ctx; ExprNodeDesc condn = op.getConf().getPredicate(); // get list of columns used in the filter List<String> cl = condn.getCols(); // merge it with the downstream col list cppCtx.getPrunedColLists().put(op, Utilities.mergeUniqElems(cppCtx.genColLists(op), cl)); pruneOperator(cppCtx, op, cppCtx.getPrunedColLists().get(op)); return null; } }