@Override public String toString() { return getNamespace() + ":" + name; }
@Override public boolean equals(Object o) { if (super.equals(o)) { return true; } if (o instanceof FunctionIdentifier) { FunctionIdentifier ofi = (FunctionIdentifier) o; return ofi.getNamespace().equals(getNamespace()) && ofi.name.equals(name); } return false; }
public StorageComponentsDatasource(INodeDomain domain, int datasetId) throws AlgebricksException { super(new DataSourceId(StorageComponentsRewriter.STORAGE_COMPONENTS.getNamespace(), StorageComponentsRewriter.STORAGE_COMPONENTS.getName()), domain); this.datasetId = datasetId; }
@Override public String toString() { return this.functionIdentifier.getNamespace() + ":" + this.functionIdentifier.getName() + "@" + this.functionIdentifier.getArity(); }
public DatasetResourcesDatasource(INodeDomain domain, int datasetId) throws AlgebricksException { super(new DataSourceId(DatasetResourcesRewriter.DATASET_RESOURCES.getNamespace(), DatasetResourcesRewriter.DATASET_RESOURCES.getName()), domain); this.datasetId = datasetId; }
public FunctionSignature(FunctionIdentifier fi) { this(fi.getNamespace(), fi.getName(), fi.getArity()); }
public IFunctionInfo get(FunctionIdentifier fid) { return get(fid.getNamespace(), fid.getName(), fid.getArity()); }
public ExternalFunction(IExternalFunctionInfo finfo, IScalarEvaluatorFactory args[], IHyracksTaskContext context, IApplicationContext appCtx) throws HyracksDataException { this.finfo = finfo; this.evaluatorFactories = args; argumentEvaluators = new IScalarEvaluator[args.length]; for (int i = 0; i < args.length; i++) { argumentEvaluators[i] = args[i].createScalarEvaluator(context); } ILibraryManager libraryManager = appCtx.getLibraryManager(); String[] fnameComponents = finfo.getFunctionIdentifier().getName().split("#"); String functionLibary = fnameComponents[0]; String dataverse = finfo.getFunctionIdentifier().getNamespace(); functionHelper = new JavaFunctionHelper(finfo, resultBuffer, libraryManager.getFunctionParameters(dataverse, finfo.getFunctionIdentifier().getName())); ClassLoader libraryClassLoader = libraryManager.getLibraryClassLoader(dataverse, functionLibary); String classname = finfo.getFunctionBody().trim(); Class<?> clazz; try { clazz = Class.forName(classname, true, libraryClassLoader); externalFunctionFactory = (IFunctionFactory) clazz.newInstance(); externalFunction = externalFunctionFactory.getExternalFunction(); } catch (Exception e) { throw new RuntimeDataException(ErrorCode.LIBRARY_EXTERNAL_FUNCTION_UNABLE_TO_LOAD_CLASS, e, classname); } }
private static IFunctionInfo getScalarFunctionInfo(MetadataTransactionContext txnCtx, Function function) throws AlgebricksException { FunctionIdentifier fid = new FunctionIdentifier(function.getDataverseName(), function.getName(), function.getArity()); IResultTypeComputer typeComputer = getResultTypeComputer(txnCtx, function); List<IAType> arguments = new ArrayList<>(); IAType returnType; List<String> argumentTypes = function.getArguments(); for (String argumentType : argumentTypes) { arguments.add(getTypeInfo(argumentType, txnCtx, function)); } returnType = getTypeInfo(function.getReturnType(), txnCtx, function); return new ExternalScalarFunctionInfo(fid.getNamespace(), fid.getName(), fid.getArity(), returnType, function.getFunctionBody(), function.getLanguage(), arguments, typeComputer); }
if (args.size() != functionId.getArity()) { throw new CompilationException(ErrorCode.COMPILATION_ERROR, f.getSourceLocation(), "Function " + functionId.getNamespace() + "." + functionId.getName() + " expects " + functionId.getArity() + " arguments"); if (argExpr.getExpressionTag() != LogicalExpressionTag.CONSTANT) { throw new CompilationException(ErrorCode.COMPILATION_ERROR, argExpr.getSourceLocation(), "Function " + functionId.getNamespace() + "." + functionId.getName() + " expects constant arguments while arg[" + i + "] is of type " + argExpr.getExpressionTag());