public void testBuiltInFunction() throws Exception { FunctionInfo functionInfo = FunctionRegistry.getFunctionInfo("ln"); assertTrue(functionInfo.isBuiltIn()); assertTrue(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)); }
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)); }
assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn()); functionInfo = FunctionRegistry.getFunctionInfo("default.perm_ln"); assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn()); GenericUDFConcat.class.getName(), true, emptyResources); functionInfo = FunctionRegistry.getFunctionInfo("default.perm_concat"); assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn()); GenericUDAFMax.class.getName(), true, emptyResources); functionInfo = FunctionRegistry.getFunctionInfo("default.perm_max"); assertTrue(functionInfo.isPersistent()); functionInfo = FunctionRegistry.getWindowFunctionInfo("default.perm_max"); assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn()); GenericUDTFExplode.class.getName(), true, emptyResources); functionInfo = FunctionRegistry.getFunctionInfo("default.perm_explode"); assertTrue(functionInfo.isPersistent()); assertTrue(functionInfo.isNative()); assertFalse(functionInfo.isBuiltIn());