public ExprNodeGenericFuncEvaluator(ExprNodeGenericFuncDesc expr) { this.expr = expr; children = new ExprNodeEvaluator[expr.getChildExprs().size()]; for (int i = 0; i < children.length; i++) { children[i] = ExprNodeEvaluatorFactory.get(expr.getChildExprs().get(i)); } deferredChildren = new DeferredExprObject[expr.getChildExprs().size()]; for (int i = 0; i < deferredChildren.length; i++) { deferredChildren[i] = new DeferredExprObject(children[i]); } }
return false; joinKeys.addAll(0, udfNode.getChildExprs()); } else { return false;
@Override public boolean isSame(Object o) { if (!(o instanceof ExprNodeGenericFuncDesc)) { return false; } ExprNodeGenericFuncDesc dest = (ExprNodeGenericFuncDesc) o; if (!typeInfo.equals(dest.getTypeInfo()) || !genericUDF.getClass().equals(dest.getGenericUDF().getClass())) { return false; } if (genericUDF instanceof GenericUDFBridge) { GenericUDFBridge bridge = (GenericUDFBridge) genericUDF; GenericUDFBridge bridge2 = (GenericUDFBridge) dest.getGenericUDF(); if (!bridge.getUdfClass().equals(bridge2.getUdfClass()) || !bridge.getUdfName().equals(bridge2.getUdfName()) || bridge.isOperator() != bridge2.isOperator()) { return false; } } if (childExprs.size() != dest.getChildExprs().size()) { return false; } for (int pos = 0; pos < childExprs.size(); pos++) { if (!childExprs.get(pos).isSame(dest.getChildExprs().get(pos))) { return false; } } return true; }
for (ExprNodeDesc childDesc : funcDesc.getChildExprs()) { if (!(childDesc instanceof ExprNodeColumnDesc)) { continue;
ExprNodeDesc newCh = ctx.getConvertedNode(ch); if (newCh != null) { expr.getChildExprs().set(i, newCh); ch = newCh;
return false; joinKeys.addAll(0, udfNode.getChildExprs());
return; groupByKeys.addAll(0, udfNode.getChildExprs()); } else { return;