/** * ExpressionTypes. * */ public static enum ExpressionTypes { FIELD, JEXL }; public static final String LLAP_OUTPUT_FORMAT_KEY = "Llap";
/** * ExpressionTypes. * */ public static enum ExpressionTypes { FIELD, JEXL }; public static final String LLAP_OUTPUT_FORMAT_KEY = "Llap";
/** * Add pruning predicate. * * @param opToPrunner * @param top * @param new_pruner_pred * @throws UDFArgumentException */ protected void addPruningPred(Map<TableScanOperator, ExprNodeDesc> opToPrunner, TableScanOperator top, ExprNodeDesc new_pruner_pred) throws UDFArgumentException { ExprNodeDesc old_pruner_pred = opToPrunner.get(top); ExprNodeDesc pruner_pred = null; if (old_pruner_pred != null) { // or the old_pruner_pred and the new_ppr_pred pruner_pred = TypeCheckProcFactory.DefaultExprProcessor.getFuncExprNodeDesc("OR", old_pruner_pred, new_pruner_pred); } else { pruner_pred = new_pruner_pred; } // Put the mapping from table scan operator to pruner_pred opToPrunner.put(top, pruner_pred); return; }
LOG.info("Need sample filter"); ExprNodeDesc randFunc = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("rand", new ExprNodeConstantDesc(Integer .valueOf(460476415))); ExprNodeDesc samplePred = genSamplePredicate(tsSample, null, false,
LOG.info("Need sample filter"); ExprNodeDesc randFunc = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("rand", new ExprNodeConstantDesc(Integer .valueOf(460476415))); ExprNodeDesc samplePred = genSamplePredicate(tsSample, null, false,
LOG.info("hashfnExpr = " + hashfnExpr); ExprNodeDesc andExpr = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("&", hashfnExpr, intMaxExpr); assert (andExpr != null); LOG.info("andExpr = " + andExpr); ExprNodeDesc modExpr = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("%", andExpr, denominatorExpr); assert (modExpr != null); LOG.info("modExpr = " + modExpr); LOG.info("numeratorExpr = " + numeratorExpr); equalsExpr = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("==", modExpr, numeratorExpr); LOG.info("equalsExpr = " + equalsExpr); assert (equalsExpr != null);
int basetimes = 100000; measureSpeed("1 + 2", basetimes * 100, ExprNodeEvaluatorFactory .get(TypeCheckProcFactory.DefaultExprProcessor.getFuncExprNodeDesc( "+", new ExprNodeConstantDesc(1), new ExprNodeConstantDesc(2))), r, Integer.valueOf(1 + 2)); measureSpeed("1 + 2 - 3", basetimes * 100, ExprNodeEvaluatorFactory .get(TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("-", TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("+", new ExprNodeConstantDesc(1), new ExprNodeConstantDesc(2)), new ExprNodeConstantDesc(3))), r, Integer.valueOf(1 + 2 - 3)); measureSpeed("1 + 2 - 3 + 4", basetimes * 100, ExprNodeEvaluatorFactory .get(TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("+", TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("-", TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("+", new ExprNodeConstantDesc(1), new ExprNodeConstantDesc(2)), ExprNodeEvaluatorFactory .get(TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("concat", new ExprNodeConstantDesc("1"), new ExprNodeConstantDesc("2"))), r, "12"); measureSpeed("concat(concat(\"1\", \"2\"), \"3\")", basetimes * 100, ExprNodeEvaluatorFactory .get(TypeCheckProcFactory.DefaultExprProcessor
LOG.info("hashfnExpr = " + hashfnExpr); ExprNodeDesc andExpr = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("&", hashfnExpr, intMaxExpr); LOG.info("andExpr = " + andExpr); ExprNodeDesc modExpr = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("%", andExpr, denominatorExpr); LOG.info("modExpr = " + modExpr); LOG.info("numeratorExpr = " + numeratorExpr); equalsExpr = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("==", modExpr, numeratorExpr); LOG.info("equalsExpr = " + equalsExpr);
TypeInfoFactory.stringTypeInfo, F2, "", false); ExprNodeDesc filterExpr = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("==", expr1, expr2);
getFuncExprNodeDesc("isnotfalse", checkExpr); if(checkAndExprs == null) { checkAndExprs = notFalseCheckExpr; getFuncExprNodeDesc("and", checkAndExprs, notFalseCheckExpr);
ExprNodeDesc expr2 = new ExprNodeConstantDesc("1"); ExprNodeDesc exprDesc2 = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("concat", expr1, expr2);
if (old_pruner_pred != null) { pruner_pred = TypeCheckProcFactory.DefaultExprProcessor.getFuncExprNodeDesc("OR", old_pruner_pred, new_pruner_pred); } else {
assert (input.getParentOperators().size() == 1); combinedConstraintExpr = TypeCheckProcFactory.DefaultExprProcessor. getFuncExprNodeDesc("and", nullConstraintExpr, checkConstraintExpr); getFuncExprNodeDesc("enforce_constraint", combinedConstraintExpr); Operator newConstraintFilter = putOpInsertMap(OperatorFactory.getAndMakeChild( new FilterDesc(constraintUDF, false), new RowSchema(
ExprNodeDesc currExpr = TypeCheckProcFactory.toExprNodeDesc(colInfos.get(colExprIdx)); ExprNodeDesc isNotNullUDF = TypeCheckProcFactory.DefaultExprProcessor. getFuncExprNodeDesc("isnotnull", currExpr); if (currUDF != null) { currUDF = TypeCheckProcFactory.DefaultExprProcessor. getFuncExprNodeDesc("and", currUDF, isNotNullUDF); } else { currUDF = isNotNullUDF;
if (old_pruner_pred != null) { pruner_pred = TypeCheckProcFactory.DefaultExprProcessor.getFuncExprNodeDesc("OR", old_pruner_pred, new_pruner_pred); } else {
/** * Add pruning predicate. * * @param opToPrunner * @param top * @param new_pruner_pred * @throws UDFArgumentException */ protected void addPruningPred(Map<TableScanOperator, ExprNodeDesc> opToPrunner, TableScanOperator top, ExprNodeDesc new_pruner_pred) throws UDFArgumentException { ExprNodeDesc old_pruner_pred = opToPrunner.get(top); ExprNodeDesc pruner_pred = null; if (old_pruner_pred != null) { // or the old_pruner_pred and the new_ppr_pred pruner_pred = TypeCheckProcFactory.DefaultExprProcessor.getFuncExprNodeDesc("OR", old_pruner_pred, new_pruner_pred); } else { pruner_pred = new_pruner_pred; } // Put the mapping from table scan operator to pruner_pred opToPrunner.put(top, pruner_pred); return; }
public void testExprNodeFuncEvaluator() throws Throwable { try { // get a evaluator for a string concatenation expression ExprNodeDesc col1desc = new ExprNodeColumnDesc(col1Type, "col1", "", false); ExprNodeDesc coladesc = new ExprNodeColumnDesc(colaType, "cola", "", false); ExprNodeDesc col11desc = getListIndexNode(col1desc, 1); ExprNodeDesc cola0desc = getListIndexNode(coladesc, 0); ExprNodeDesc func1 = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("concat", col11desc, cola0desc); ExprNodeEvaluator eval = ExprNodeEvaluatorFactory.get(func1); // evaluate on row ObjectInspector resultOI = eval.initialize(r.oi); Object resultO = eval.evaluate(r.o); assertEquals("1a", ObjectInspectorUtils.copyToStandardObject(resultO, resultOI, ObjectInspectorCopyOption.JAVA)); System.out.println("ExprNodeFuncEvaluator ok"); } catch (Throwable e) { e.printStackTrace(); throw e; } }
public void testExprNodeConversionEvaluator() throws Throwable { try { // get a evaluator for a string concatenation expression ExprNodeDesc col1desc = new ExprNodeColumnDesc(col1Type, "col1", "", false); ExprNodeDesc col11desc = getListIndexNode(col1desc, 1); ExprNodeDesc func1 = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc(serdeConstants.DOUBLE_TYPE_NAME, col11desc); ExprNodeEvaluator eval = ExprNodeEvaluatorFactory.get(func1); // evaluate on row ObjectInspector resultOI = eval.initialize(r.oi); Object resultO = eval.evaluate(r.o); assertEquals(Double.valueOf("1"), ObjectInspectorUtils .copyToStandardObject(resultO, resultOI, ObjectInspectorCopyOption.JAVA)); System.out.println("testExprNodeConversionEvaluator ok"); } catch (Throwable e) { e.printStackTrace(); throw e; } }
@Override public List<ExprNodeDesc> getExpressionList() throws UDFArgumentException { List<ExprNodeDesc> exprs = new ArrayList<ExprNodeDesc>(cols.length); for (int i = 0; i < cols.length; i++) { exprs.add(OperatorTestUtils.getStringColumn(cols[i])); } ExprNodeDesc[] scales = { new ExprNodeConstantDesc(TypeInfoFactory.intTypeInfo, -2), new ExprNodeConstantDesc(TypeInfoFactory.byteTypeInfo, (byte)0), new ExprNodeConstantDesc(TypeInfoFactory.shortTypeInfo, (short)3), new ExprNodeConstantDesc(TypeInfoFactory.intTypeInfo, 0), new ExprNodeConstantDesc(TypeInfoFactory.longTypeInfo, -2L), new ExprNodeConstantDesc(TypeInfoFactory.intTypeInfo, 0), new ExprNodeConstantDesc(TypeInfoFactory.intTypeInfo, -2), new ExprNodeConstantDesc(TypeInfoFactory.intTypeInfo, 3) }; List<ExprNodeDesc> earr = new ArrayList<ExprNodeDesc>(); for (int j = 0; j < cols.length; j++) { ExprNodeDesc r = TypeCheckProcFactory.DefaultExprProcessor.getFuncExprNodeDesc("round", exprs.get(j), scales[j]); earr.add(r); } return earr; }
@Override public List<ExprNodeDesc> getExpressionList() throws UDFArgumentException { ExprNodeDesc expr1 = OperatorTestUtils.getStringColumn("a"); ExprNodeDesc expr2 = OperatorTestUtils.getStringColumn("b"); ExprNodeDesc exprDesc2 = TypeCheckProcFactory.DefaultExprProcessor.getFuncExprNodeDesc("concat", expr1, expr2); List<ExprNodeDesc> earr = new ArrayList<ExprNodeDesc>(); earr.add(expr1); earr.add(exprDesc2); return earr; }