@Override protected boolean isComparisonFunction(FunctionIdentifier fi) { return BuiltinFunctions.isSimilarityFunction(fi); }
@Override public IFunctionInfo lookupFunction(FunctionIdentifier fid) { return BuiltinFunctions.lookupFunction(fid); }
public static IFunctionInfo getFunctionInfo(FunctionIdentifier fi) { return BuiltinFunctions.getAsterixFunctionInfo(fi); }
protected IFunctionDescriptor createCastFunction(boolean strictCast) throws AlgebricksException { IFunctionDescriptor castFuncDesc = metadataProvider.getFunctionManager() .lookupFunction(strictCast ? BuiltinFunctions.CAST_TYPE : BuiltinFunctions.CAST_TYPE_LAX); castFuncDesc.setSourceLocation(sourceLoc); castFuncDesc.setImmutableStates(enforcedItemType, itemType); return castFuncDesc; }
private IFunctionDescriptor resolveFunction(AbstractFunctionCallExpression expr, IVariableTypeEnvironment env, JobGenContext context) throws AlgebricksException { FunctionIdentifier fnId = expr.getFunctionIdentifier(); IFunctionDescriptor fd = functionManager.lookupFunction(fnId); fd.setSourceLocation(expr.getSourceLocation()); IFunctionTypeInferer fnTypeInfer = functionManager.lookupFunctionTypeInferer(fnId); if (fnTypeInfer != null) { CompilerProperties compilerProps = ((IApplicationContext) context.getAppContext()).getCompilerProperties(); fnTypeInfer.infer(expr, fd, env, compilerProps); } return fd; } }
@Override public IFunctionDescriptor createFunctionDescriptor() { return new ScalarStddevAggregateDescriptor(StddevAggregateDescriptor.FACTORY.createFunctionDescriptor()); } };
protected FunctionIdentifier getBuiltinFunctionIdentifier(String functionName, int arity) { FunctionIdentifier fi = new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, functionName, arity); FunctionInfo afi = BuiltinFunctions.lookupFunction(fi); FunctionIdentifier builtinAquafi = afi == null ? null : afi.getFunctionIdentifier(); if (builtinAquafi != null) { fi = builtinAquafi; } else { fi = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, functionName, arity); afi = BuiltinFunctions.lookupFunction(fi); if (afi == null) { return null; } } return fi; }
@Override public void infer(ILogicalExpression expr, IFunctionDescriptor fd, IVariableTypeEnvironment context, CompilerProperties compilerProps) throws AlgebricksException { AbstractFunctionCallExpression funCallExpr = (AbstractFunctionCallExpression) expr; Object[] samplingParameters = funCallExpr.getOpaqueParameters(); fd.setImmutableStates(samplingParameters[0]); } };
public static void addPrivateFunction(FunctionIdentifier fi, IResultTypeComputer typeComputer, boolean isFunctional) { IFunctionInfo functionInfo = new FunctionInfo(fi, isFunctional); builtinPrivateFunctionsSet.put(functionInfo, functionInfo); funTypeComputer.put(functionInfo, typeComputer); registeredFunctions.put(fi, functionInfo); }
@Override public boolean rewritePost(Mutable<ILogicalOperator> opRef, IOptimizationContext context) throws AlgebricksException { AbstractFunctionCallExpression f = getFunctionCall(opRef); if (f == null) { return false; } return BuiltinFunctions.getDatasourceTransformer(f.getFunctionIdentifier()).rewrite(opRef, context); }
public static IFunctionInfo getAsterixFunctionInfo(FunctionIdentifier fid) { return registeredFunctions.get(fid); }
public static void addFunction(FunctionIdentifier fi, IResultTypeComputer typeComputer, boolean isFunctional) { addFunctionWithDomain(fi, ATypeHierarchy.Domain.ANY, typeComputer, isFunctional); }
@Override public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(IScalarEvaluatorFactory[] args) throws AlgebricksException { throw new NotImplementedException("Not Implemented: " + getIdentifier()); } }
@Override public IUnnestingEvaluatorFactory createUnnestingFunctionFactory(UnnestingFunctionCallExpression expr, IVariableTypeEnvironment env, IOperatorSchema[] inputSchemas, JobGenContext context) throws AlgebricksException { IScalarEvaluatorFactory[] args = codegenArguments(expr, env, inputSchemas, context); return resolveFunction(expr, env, context).createUnnestingEvaluatorFactory(args); }
@Override public IFunctionDescriptor createFunctionDescriptor() { return new ScalarMinAggregateDescriptor(MinAggregateDescriptor.FACTORY.createFunctionDescriptor()); } };
public static void addFunctionWithDomain(FunctionIdentifier fi, ATypeHierarchy.Domain funcDomain, IResultTypeComputer typeComputer, boolean isFunctional) { IFunctionInfo functionInfo = new FunctionInfo(fi, isFunctional); builtinPublicFunctionsSet.put(functionInfo, functionInfo); funTypeComputer.put(functionInfo, typeComputer); registeredFunctions.put(fi, functionInfo); registeredFunctionsDomain.put(functionInfo, funcDomain); }
public static FunctionInfo lookupFunction(FunctionIdentifier fid) { return (FunctionInfo) registeredFunctions.get(fid); }
@Override public IFunctionDescriptor createFunctionDescriptor() { return new ScalarAvgAggregateDescriptor(AvgAggregateDescriptor.FACTORY.createFunctionDescriptor()); } };
@Override public IFunctionDescriptor createFunctionDescriptor() { return new ScalarSqlStddevAggregateDescriptor( SqlStddevAggregateDescriptor.FACTORY.createFunctionDescriptor()); } };
@Override public IFunctionDescriptor createFunctionDescriptor() { return new ScalarMaxAggregateDescriptor(MaxAggregateDescriptor.FACTORY.createFunctionDescriptor()); } };