mirror of https://gitee.com/bigwinds/arangodb
72 lines
2.7 KiB
C++
72 lines
2.7 KiB
C++
#ifndef ARANGOD_VOCBASE_METHODS_AQL_USER_FUNCTIONS_HANDLER_H
|
|
#define ARANGOD_VOCBASE_METHODS_AQL_USER_FUNCTIONS_HANDLER_H 1
|
|
|
|
#include "Basics/Result.h"
|
|
|
|
struct TRI_vocbase_t;
|
|
|
|
namespace arangodb {
|
|
|
|
namespace velocypack {
|
|
|
|
class Builder;
|
|
class Slice;
|
|
|
|
}
|
|
|
|
// @brief locates functionName in the current databases _aqlFunctions and deletes it.
|
|
// Reloads the global AQL function context on success.
|
|
// @param vocbase current database to work with
|
|
// @param functionName the case insensitive name of the function to delete
|
|
// @return success only on exact match
|
|
Result unregisterUserFunction(
|
|
TRI_vocbase_t& vocbase,
|
|
std::string const& functionName
|
|
);
|
|
|
|
// @brief locates a group of user functions matching functionFilterPrefix and
|
|
// removes them from _aqlFunctions
|
|
// @param vocbase current database to work with
|
|
// @param functionFilterPrefix the case insensitive name of the function to delete
|
|
// @param deleteCount return the number of deleted functions, 0 is ok.
|
|
// @return succeeds if >= 0 functions were successfully deleted.
|
|
Result unregisterUserFunctionsGroup(
|
|
TRI_vocbase_t& vocbase,
|
|
std::string const& functionFilterPrefix,
|
|
int& deleteCount
|
|
);
|
|
|
|
// @brief registers an aql function with the current database
|
|
// will pull v8 context from TLS, or allocate one from the context dealer.
|
|
// needs the V8 context to test the function to eventually throw errors.
|
|
// @param vocbase current database to work with
|
|
// @param userFunction an Object with the following attributes:
|
|
// name: the case insensitive name of the user function.
|
|
// code: the javascript code of the function body
|
|
// isDeterministic: whether the function will return the same result on same params
|
|
// @param replaceExisting set to true if the function replaced a previously existing one
|
|
// @return result object
|
|
Result registerUserFunction(
|
|
TRI_vocbase_t& vocbase,
|
|
velocypack::Slice userFunction,
|
|
bool& replacedExisting
|
|
);
|
|
|
|
// @brief fetches [all functions | functions matching the functionFilterPrefix]
|
|
// @param vocbase current database to work with
|
|
// @param functionFilterPrefix if non-empty, only return functions matching this prefix
|
|
// @param result result payload:
|
|
// creates a list containing objects with these attributes:
|
|
// name: the case insensitive name of the user function.
|
|
// code: the javascript code of the function body
|
|
// isDeterministic: whether the function will return the same result on same params
|
|
// @return result object
|
|
Result toArrayUserFunctions(
|
|
TRI_vocbase_t& vocbase,
|
|
std::string const& functionFilterPrefix,
|
|
velocypack::Builder& result
|
|
);
|
|
|
|
}
|
|
|
|
#endif |