Source:
private ScriptEvalInterface getEvalScript( @Nonnull final List<Expression> expressions, @Nonnull final ExpressionOperatorParameter param, final PythonFunctionRegistrar pyFuncReg) throws DbException { StringBuilder compute = new StringBuilder(); StringBuilder output = new StringBuilder(); for (int varCount = 0; varCount < expressions.size(); ++varCount) { Expression expr = expressions.get(varCount); if (!expr.isRegisteredUDF()) { Type type = expr.getOutputType(param); compute .append(type.toJavaType().getName()) .append(" val") .append(varCount) .append(" = ") .append(expr.getJavaExpression(param)) .append(";\n"); output .append(Expression.RESULT) .append(".put") .append(type.toJavaObjectType().getSimpleName()) .append("(") .append(varCount) .append(", val") .append(varCount) .append(");\n"); } else { PythonUDFEvaluator evaluator = new PythonUDFEvaluator(expr, param, pyFuncReg); pyUpdateEvaluators.add(evaluator); } } String script = compute.append(output).toString(); LOGGER.info("Compiling UDA {}", script); IScriptEvaluator se; try { se = CompilerFactoryFactory.getDefaultCompilerFactory().newScriptEvaluator(); } catch (Exception e) { LOGGER.error("Could not create scriptevaluator", e); throw new DbException("Could not create scriptevaluator", e); } se.setDefaultImports(MyriaConstants.DEFAULT_JANINO_IMPORTS); try { if (script.length() > 1) { return (ScriptEvalInterface) se.createFastEvaluator( script, ScriptEvalInterface.class, new String[] {Expression.TB, Expression.ROW, Expression.RESULT, Expression.STATE}); } else { return null; } } catch (CompileException e) { LOGGER.error("Error when compiling expression {}: {}", script, e); throw new DbException("Error when compiling expression: " + script, e); } }

Target:
private ScriptEvalInterface getEvalScript( @Nonnull final List<Expression> expressions, @Nonnull final ExpressionOperatorParameter param, final PythonFunctionRegistrar pyFuncReg) throws DbException { StringBuilder compute = new StringBuilder(); StringBuilder output = new StringBuilder(); for (int varCount = 0; varCount < expressions.size(); ++varCount) { Expression expr = expressions.get(varCount); if (!expr.isRegisteredUDF()) { Type type = expr.getOutputType(param); compute .append(type.toJavaType().getName()) .append(" val") .append(varCount) .append(" = ") .append(expr.getJavaExpression(param)) .append(";\n"); output .append(Expression.RESULT) .append(".put") .append((type != Type.BLOB_TYPE) ? type.toJavaObjectType().getSimpleName() : "Blob") .append("(") .append(varCount) .append(", val") .append(varCount) .append(");\n"); } else { bHasPyEval = true; PythonUDFEvaluator evaluator = new PythonUDFEvaluator(expr, param, pyFuncReg); pyUpdateEvaluators.add(evaluator); } } String script = compute.append(output).toString(); LOGGER.debug("Compiling UDA {}", script); IScriptEvaluator se; try { se = CompilerFactoryFactory.getDefaultCompilerFactory().newScriptEvaluator(); } catch (Exception e) { LOGGER.debug("Could not create scriptevaluator", e); throw new DbException("Could not create scriptevaluator", e); } se.setDefaultImports(MyriaConstants.DEFAULT_JANINO_IMPORTS); try { if (script.length() > 1) { return (ScriptEvalInterface) se.createFastEvaluator( script, ScriptEvalInterface.class, new String[] {Expression.TB, Expression.ROW, Expression.RESULT, Expression.STATE}); } else { return null; } } catch (CompileException e) { LOGGER.debug("Error when compiling expression {}: {}", script, e); throw new DbException("Error when compiling expression: " + script, e); } }