void add(String name, PTFExpressionDef arg) { symbolExprsNames.add(name); symbolExprsEvaluators.add(arg.getExprEvaluator()); symbolExprsOIs.add(arg.getOI()); symbolExprsDecs.add(arg.getExprNode()); } }
void add(String name, PTFExpressionDef arg) { symbolExprsNames.add(name); symbolExprsEvaluators.add(arg.getExprEvaluator()); symbolExprsOIs.add(arg.getOI()); symbolExprsDecs.add(arg.getExprNode()); } }
static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException { List<PTFExpressionDef> args = def.getArgs(); List<ObjectInspector> argOIs = new ArrayList<ObjectInspector>(); ObjectInspector[] funcArgOIs = null; if (args != null) { for (PTFExpressionDef arg : args) { argOIs.add(arg.getOI()); } funcArgOIs = new ObjectInspector[args.size()]; funcArgOIs = argOIs.toArray(funcArgOIs); } GenericUDAFEvaluator wFnEval = def.getWFnEval(); ObjectInspector OI = wFnEval.init(GenericUDAFEvaluator.Mode.COMPLETE, funcArgOIs); def.setWFnEval(wFnEval); def.setOI(OI); }
public PTFExpressionDef(PTFExpressionDef e) { expressionTreeString = e.getExpressionTreeString(); exprNode = e.getExprNode(); exprEvaluator = e.getExprEvaluator(); OI = e.getOI(); }
static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException { List<PTFExpressionDef> args = def.getArgs(); List<ObjectInspector> argOIs = new ArrayList<ObjectInspector>(); ObjectInspector[] funcArgOIs = null; if (args != null) { for (PTFExpressionDef arg : args) { argOIs.add(arg.getOI()); } funcArgOIs = new ObjectInspector[args.size()]; funcArgOIs = argOIs.toArray(funcArgOIs); } GenericUDAFEvaluator wFnEval = def.getWFnEval(); ObjectInspector OI = wFnEval.init(GenericUDAFEvaluator.Mode.COMPLETE, funcArgOIs); def.setWFnEval(wFnEval); def.setOI(OI); }
private void validateAndSetupPatternStr(MatchPath evaluator, List<PTFExpressionDef> args) throws SemanticException { PTFExpressionDef symboPatternArg = args.get(0); ObjectInspector symbolPatternArgOI = symboPatternArg.getOI(); if ( !ObjectInspectorUtils.isConstantObjectInspector(symbolPatternArgOI) || (symbolPatternArgOI.getCategory() != ObjectInspector.Category.PRIMITIVE) || ((PrimitiveObjectInspector)symbolPatternArgOI).getPrimitiveCategory() != PrimitiveObjectInspector.PrimitiveCategory.STRING ) { throwErrorWithSignature("Currently the symbol Pattern must be a Constant String."); } evaluator.patternStr = ((ConstantObjectInspector)symbolPatternArgOI). getWritableConstantValue().toString(); }
public PTFExpressionDef(PTFExpressionDef e) { expressionTreeString = e.getExpressionTreeString(); exprNode = e.getExprNode(); exprEvaluator = e.getExprEvaluator(); OI = e.getOI(); }
private void validateAndSetupResultExprStr(MatchPath evaluator, List<PTFExpressionDef> args, int argsNum) throws SemanticException { PTFExpressionDef resultExprArg = args.get(argsNum - 1); ObjectInspector resultExprArgOI = resultExprArg.getOI(); if ( !ObjectInspectorUtils.isConstantObjectInspector(resultExprArgOI) || (resultExprArgOI.getCategory() != ObjectInspector.Category.PRIMITIVE) || ((PrimitiveObjectInspector)resultExprArgOI).getPrimitiveCategory() != PrimitiveObjectInspector.PrimitiveCategory.STRING ) { throwErrorWithSignature("Currently the result Expr parameter must be a Constant String."); } evaluator.resultExprStr = ((ConstantObjectInspector)resultExprArgOI). getWritableConstantValue().toString(); }
private void validateAndSetupPatternStr(MatchPath evaluator, List<PTFExpressionDef> args) throws SemanticException { PTFExpressionDef symboPatternArg = args.get(0); ObjectInspector symbolPatternArgOI = symboPatternArg.getOI(); if ( !ObjectInspectorUtils.isConstantObjectInspector(symbolPatternArgOI) || (symbolPatternArgOI.getCategory() != ObjectInspector.Category.PRIMITIVE) || ((PrimitiveObjectInspector)symbolPatternArgOI).getPrimitiveCategory() != PrimitiveObjectInspector.PrimitiveCategory.STRING ) { throwErrorWithSignature("Currently the symbol Pattern must be a Constant String."); } evaluator.patternStr = ((ConstantObjectInspector)symbolPatternArgOI). getWritableConstantValue().toString(); }
private void validateAndSetupResultExprStr(MatchPath evaluator, List<PTFExpressionDef> args, int argsNum) throws SemanticException { PTFExpressionDef resultExprArg = args.get(argsNum - 1); ObjectInspector resultExprArgOI = resultExprArg.getOI(); if ( !ObjectInspectorUtils.isConstantObjectInspector(resultExprArgOI) || (resultExprArgOI.getCategory() != ObjectInspector.Category.PRIMITIVE) || ((PrimitiveObjectInspector)resultExprArgOI).getPrimitiveCategory() != PrimitiveObjectInspector.PrimitiveCategory.STRING ) { throwErrorWithSignature("Currently the result Expr parameter must be a Constant String."); } evaluator.resultExprStr = ((ConstantObjectInspector)resultExprArgOI). getWritableConstantValue().toString(); }
static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException { List<PTFExpressionDef> args = def.getArgs(); List<ObjectInspector> argOIs = new ArrayList<ObjectInspector>(); ObjectInspector[] funcArgOIs = null; if (args != null) { for (PTFExpressionDef arg : args) { argOIs.add(arg.getOI()); } funcArgOIs = new ObjectInspector[args.size()]; funcArgOIs = argOIs.toArray(funcArgOIs); } GenericUDAFEvaluator wFnEval = FunctionRegistry.getGenericWindowingEvaluator(def.getName(), argOIs, def.isDistinct(), def.isStar()); ObjectInspector OI = wFnEval.init(GenericUDAFEvaluator.Mode.COMPLETE, funcArgOIs); def.setWFnEval(wFnEval); def.setOI(OI); }
private PTFExpressionDef translate(ShapeDetails inpShape, PartitionExpression pExpr) throws SemanticException { PTFExpressionDef expDef = null; try { expDef = buildExpressionDef(inpShape, pExpr.getExpression()); } catch (HiveException he) { throw new SemanticException(he); } PTFTranslator.validateComparable(expDef.getOI(), String.format("Partition Expression %s is not a comparable expression", pExpr .getExpression().toStringTree())); return expDef; }
static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException { List<PTFExpressionDef> args = def.getArgs(); List<ObjectInspector> argOIs = new ArrayList<ObjectInspector>(); ObjectInspector[] funcArgOIs = null; if (args != null) { for (PTFExpressionDef arg : args) { argOIs.add(arg.getOI()); } funcArgOIs = new ObjectInspector[args.size()]; funcArgOIs = argOIs.toArray(funcArgOIs); } GenericUDAFEvaluator wFnEval = FunctionRegistry.getGenericWindowingEvaluator(def.getName(), argOIs, def.isDistinct(), def.isStar()); ObjectInspector OI = wFnEval.init(GenericUDAFEvaluator.Mode.COMPLETE, funcArgOIs); def.setWFnEval(wFnEval); def.setOI(OI); }
private PTFExpressionDef translate(ShapeDetails inpShape, PartitionExpression pExpr) throws SemanticException { PTFExpressionDef expDef = null; try { expDef = buildExpressionDef(inpShape, pExpr.getExpression()); } catch (HiveException he) { throw new SemanticException(he); } PTFTranslator.validateComparable(expDef.getOI(), String.format("Partition Expression %s is not a comparable expression", pExpr .getExpression().toStringTree())); return expDef; }
private OrderExpressionDef translate(ShapeDetails inpShape, OrderExpression oExpr) throws SemanticException { OrderExpressionDef oexpDef = new OrderExpressionDef(); oexpDef.setOrder(oExpr.getOrder()); oexpDef.setNullOrder(oExpr.getNullOrder()); try { PTFExpressionDef expDef = buildExpressionDef(inpShape, oExpr.getExpression()); oexpDef.setExpressionTreeString(expDef.getExpressionTreeString()); oexpDef.setExprEvaluator(expDef.getExprEvaluator()); oexpDef.setExprNode(expDef.getExprNode()); oexpDef.setOI(expDef.getOI()); } catch (HiveException he) { throw new SemanticException(he); } PTFTranslator.validateComparable(oexpDef.getOI(), String.format("Partition Expression %s is not a comparable expression", oExpr.getExpression().toStringTree())); return oexpDef; }
/** * Collect order expressions for RANGE based windowing * @throws SemanticException */ private OrderDef buildOrderExpressions(ShapeDetails inpShape, List<OrderExpression> orderExpressions) throws SemanticException { OrderDef orderDef = new OrderDef(); for (OrderExpression oe : orderExpressions) { PTFTranslator.validateNoLeadLagInValueBoundarySpec(oe.getExpression()); PTFExpressionDef exprDef = null; try { exprDef = buildExpressionDef(inpShape, oe.getExpression()); } catch (HiveException he) { throw new SemanticException(he); } PTFTranslator.validateValueBoundaryExprType(exprDef.getOI()); OrderExpressionDef orderExprDef = new OrderExpressionDef(exprDef); orderExprDef.setOrder(oe.getOrder()); orderExprDef.setNullOrder(oe.getNullOrder()); orderDef.addExpression(orderExprDef); } return orderDef; }
private OrderExpressionDef translate(ShapeDetails inpShape, OrderExpression oExpr) throws SemanticException { OrderExpressionDef oexpDef = new OrderExpressionDef(); oexpDef.setOrder(oExpr.getOrder()); oexpDef.setNullOrder(oExpr.getNullOrder()); try { PTFExpressionDef expDef = buildExpressionDef(inpShape, oExpr.getExpression()); oexpDef.setExpressionTreeString(expDef.getExpressionTreeString()); oexpDef.setExprEvaluator(expDef.getExprEvaluator()); oexpDef.setExprNode(expDef.getExprNode()); oexpDef.setOI(expDef.getOI()); } catch (HiveException he) { throw new SemanticException(he); } PTFTranslator.validateComparable(oexpDef.getOI(), String.format("Partition Expression %s is not a comparable expression", oExpr.getExpression().toStringTree())); return oexpDef; }
/** * Collect order expressions for RANGE based windowing * @throws SemanticException */ private OrderDef buildOrderExpressions(ShapeDetails inpShape, List<OrderExpression> orderExpressions) throws SemanticException { OrderDef orderDef = new OrderDef(); for (OrderExpression oe : orderExpressions) { PTFTranslator.validateNoLeadLagInValueBoundarySpec(oe.getExpression()); PTFExpressionDef exprDef = null; try { exprDef = buildExpressionDef(inpShape, oe.getExpression()); } catch (HiveException he) { throw new SemanticException(he); } PTFTranslator.validateValueBoundaryExprType(exprDef.getOI()); OrderExpressionDef orderExprDef = new OrderExpressionDef(exprDef); orderExprDef.setOrder(oe.getOrder()); orderExprDef.setNullOrder(oe.getNullOrder()); orderDef.addExpression(orderExprDef); } return orderDef; }