private void checkNondeterministicFn(GenericUDF udf) { assertFalse(FunctionRegistry.isDeterministic(udf)); assertFalse(FunctionRegistry.isRuntimeConstant(udf)); assertFalse(FunctionRegistry.isConsistentWithinQuery(udf)); }
public void testIsPermanentFunction() throws Exception { // Setup exprNode GenericUDF udf = new GenericUDFCurrentTimestamp(); List<ExprNodeDesc> children = new ArrayList<ExprNodeDesc>(); ExprNodeGenericFuncDesc fnExpr = new ExprNodeGenericFuncDesc(TypeInfoFactory.timestampTypeInfo, udf, children); assertFalse("Function not added as permanent yet", FunctionRegistry.isPermanentFunction(fnExpr)); // Now register as permanent function FunctionResource[] emptyResources = new FunctionResource[] {}; FunctionRegistry.registerPermanentFunction("default.perm_current_timestamp", GenericUDFCurrentTimestamp.class.getName(), true, emptyResources); assertTrue("Function should now be recognized as permanent function", FunctionRegistry.isPermanentFunction(fnExpr)); }
public void testRegisterTemporaryFunctions() throws Exception { FunctionResource[] emptyResources = new FunctionResource[] {}; // UDF FunctionRegistry.registerTemporaryUDF("tmp_ln", UDFLn.class, emptyResources); FunctionInfo functionInfo = FunctionRegistry.getFunctionInfo("tmp_ln"); assertFalse(functionInfo.isNative()); // GenericUDF FunctionRegistry.registerTemporaryUDF("tmp_concat", GenericUDFConcat.class, emptyResources); functionInfo = FunctionRegistry.getFunctionInfo("tmp_concat"); assertFalse(functionInfo.isNative()); // GenericUDAF FunctionRegistry.registerTemporaryUDF("tmp_max",GenericUDAFMax.class, emptyResources); functionInfo = FunctionRegistry.getFunctionInfo("tmp_max"); assertFalse(functionInfo.isNative()); functionInfo = FunctionRegistry.getWindowFunctionInfo("tmp_max"); assertFalse(functionInfo.isNative()); // UDTF FunctionRegistry.registerTemporaryUDF("tmp_explode", GenericUDTFExplode.class, emptyResources); functionInfo = FunctionRegistry.getFunctionInfo("tmp_explode"); assertFalse(functionInfo.isNative()); }
private void checkRuntimeConstant(GenericUDF udf) { assertFalse(FunctionRegistry.isDeterministic(udf)); assertTrue(FunctionRegistry.isRuntimeConstant(udf)); assertTrue(FunctionRegistry.isConsistentWithinQuery(udf)); }
private void checkDeterministicFn(GenericUDF udf) { assertTrue(FunctionRegistry.isDeterministic(udf)); assertFalse(FunctionRegistry.isRuntimeConstant(udf)); assertTrue(FunctionRegistry.isConsistentWithinQuery(udf)); }
assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn()); functionInfo = FunctionRegistry.getFunctionInfo("default.perm_ln"); assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn()); assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn()); assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn()); assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn());