boolean ret = ((ExprNodeColumnDesc)en).getIsPartitionColOrVirtualCol(); exprNodeToPartOrVirtualColOrConstExpr.put(en, ret); return ret;
@Override public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { ExprNodeColumnDesc cd = (ExprNodeColumnDesc) nd; PcrExprProcCtx epc = (PcrExprProcCtx) procCtx; if (cd.getTabAlias().equalsIgnoreCase(epc.getTabAlias()) && cd.getIsPartitionColOrVirtualCol() && !VirtualColumn.VIRTUAL_COLUMN_NAMES.contains(cd.getColumn().toUpperCase())) { return new NodeInfoWrapper(WalkState.PART_COL, null, cd); } else { return new NodeInfoWrapper(WalkState.UNKNOWN, null, cd); } } }
boolean ret = ((ExprNodeColumnDesc)en).getIsPartitionColOrVirtualCol(); exprNodeToPartOrVirtualColOrConstExpr.put(en, ret); return ret;
@Override public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { ExprNodeColumnDesc cd = (ExprNodeColumnDesc) nd; PcrExprProcCtx epc = (PcrExprProcCtx) procCtx; if (cd.getTabAlias().equalsIgnoreCase(epc.getTabAlias()) && cd.getIsPartitionColOrVirtualCol()) { return new NodeInfoWrapper(WalkState.PART_COL, null, cd); } else { return new NodeInfoWrapper(WalkState.UNKNOWN, null, cd); } } }
@Override protected ExprNodeDesc processColumnDesc(NodeProcessorCtx procCtx, ExprNodeColumnDesc cd) { ExprNodeDesc newcd; ExprProcCtx epc = (ExprProcCtx) procCtx; if (cd.getTabAlias().equalsIgnoreCase(epc.getTabAlias()) && cd.getIsPartitionColOrVirtualCol()) { newcd = cd.clone(); } else { newcd = new ExprNodeConstantDesc(cd.getTypeInfo(), null); } return newcd; } }
@Override protected ExprNodeDesc processColumnDesc(NodeProcessorCtx procCtx, ExprNodeColumnDesc cd) { ExprNodeDesc newcd; ExprProcCtx epc = (ExprProcCtx) procCtx; if (cd.getTabAlias().equalsIgnoreCase(epc.getTabAlias()) && cd.getIsPartitionColOrVirtualCol()) { newcd = cd.clone(); } else { newcd = new ExprNodeConstantDesc(cd.getTypeInfo(), null); } return newcd; } }
for (int i = 0; i < joinKeys.length; i++) { if (nullSafes.get(i) || (joinKeys[i] instanceof ExprNodeColumnDesc && ((ExprNodeColumnDesc)joinKeys[i]).getIsPartitionColOrVirtualCol())) {
for (int i = 0; i < joinKeys.length; i++) { if (nullSafes.get(i) || (joinKeys[i] instanceof ExprNodeColumnDesc && ((ExprNodeColumnDesc)joinKeys[i]).getIsPartitionColOrVirtualCol())) {
colName = encd.getColumn(); if (encd.getIsPartitionColOrVirtualCol()) {
colName = encd.getColumn(); if (encd.getIsPartitionColOrVirtualCol()) {
@Override public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { ExprNodeColumnDesc cd = (ExprNodeColumnDesc) nd; PcrExprProcCtx epc = (PcrExprProcCtx) procCtx; if (cd.getTabAlias().equalsIgnoreCase(epc.getTabAlias()) && cd.getIsPartitionColOrVirtualCol()) { return new NodeInfoWrapper(WalkState.PART_COL, null, cd); } else { return new NodeInfoWrapper(WalkState.UNKNOWN, null, cd); } } }
@Override public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { ExprNodeColumnDesc cd = (ExprNodeColumnDesc) nd; PcrExprProcCtx epc = (PcrExprProcCtx) procCtx; if (cd.getTabAlias().equalsIgnoreCase(epc.getTabAlias()) && cd.getIsPartitionColOrVirtualCol()) { return new NodeInfoWrapper(WalkState.PART_COL, null, cd); } else { return new NodeInfoWrapper(WalkState.UNKNOWN, null, cd); } } }
@Override protected ExprNodeDesc processColumnDesc(NodeProcessorCtx procCtx, ExprNodeColumnDesc cd) { ExprNodeDesc newcd; ExprProcCtx epc = (ExprProcCtx) procCtx; if (cd.getTabAlias().equalsIgnoreCase(epc.getTabAlias()) && cd.getIsPartitionColOrVirtualCol()) { newcd = cd.clone(); } else { newcd = new ExprNodeConstantDesc(cd.getTypeInfo(), null); } return newcd; } }
@Override public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { ExprNodeDesc newcd = null; ExprNodeColumnDesc cd = (ExprNodeColumnDesc) nd; ExprProcCtx epc = (ExprProcCtx) procCtx; if (cd.getTabAlias().equalsIgnoreCase(epc.getTabAlias()) && cd.getIsPartitionColOrVirtualCol()) { newcd = cd.clone(); } else { newcd = new ExprNodeConstantDesc(cd.getTypeInfo(), null); epc.setHasNonPartCols(true); } return newcd; }
private static void removeChildSelIfApplicable(Operator<?> child, SelectOperator sel, ParseContext context, AbstractCorrelationProcCtx procCtx) throws SemanticException { if (!(child instanceof SelectOperator)) { return; } if (child.getColumnExprMap() != null) { return; } SelectOperator selOp = (SelectOperator) child; for (ExprNodeDesc desc : selOp.getConf().getColList()) { if (!(desc instanceof ExprNodeColumnDesc)) { return; } ExprNodeColumnDesc col = (ExprNodeColumnDesc) desc; if(!col.getColumn().startsWith(ReduceField.VALUE.toString()+".") || col.getTabAlias() != null || col.getIsPartitionColOrVirtualCol()){ return; } } removeOperator(child, getSingleChild(child), sel, context); procCtx.addRemovedOperator(child); }
for (int i = 0; i < joinKeys.length; i++) { if (nullSafes.get(i) || (joinKeys[i] instanceof ExprNodeColumnDesc && ((ExprNodeColumnDesc)joinKeys[i]).getIsPartitionColOrVirtualCol())) {
colName = encd.getColumn(); if (encd.getIsPartitionColOrVirtualCol()) {