return true;
}
private boolean containsUDFs(LOForEach fo) throws LogicalToPhysicalTranslatorException {
LogicalPlan logExpPlan = fo.getInnerPlan();
UDFFinder udfFinder;
try {
udfFinder = new UDFFinder(logExpPlan);
udfFinder.visit();
// TODO (dvryaboy): in the future we could relax this rule by tracing what fields
// are being passed into the UDF, and only refusing if the UDF is working on the
// join key. Transforms of other fields should be ok.
if (udfFinder.getUDFList().size() != 0) {
return true;
}
} catch (FrontendException e) {
throw new LogicalToPhysicalTranslatorException(e);
}