Vertica::ScalarFunctionFactory Class Reference
Interface for declaring parameters and return types for, and instantiating, an associated ScalarFunction.
Inheritance diagram for Vertica::ScalarFunctionFactory:
Collaboration diagram for Vertica::ScalarFunctionFactory:
| Public Types | |
|---|---|
| enum | UDXType { SCALAR = 1, TRANSFORM = 2, ANALYTIC = 3, MULTI_TRANSFORM = 4, AGGREGATE = 5, LOAD_SOURCE = 6, LOAD_FILTER = 7, LOAD_PARSER = 8, FILESYSTEM = 9, TYPE = 10, CURSOR_TRANSFORM = 11, KEYMANAGER = 12 } |
| Public Member Functions | |
|---|---|
| virtual ScalarFunction * | createScalarFunction (ServerInterface &srvInterface)=0 |
| virtual void | getParameterType (ServerInterface &srvInterface, SizedColumnTypes meterTypes) |
| virtual void | getPerInstanceResources (ServerInterface &srvInterface, VResources &res) |
| virtual void | getPerInstanceResources (ServerInterface &srvInterface, VResources &res, const SizedColumnTypes &inputTypes) |
| virtual void | getPrototype (ServerInterface &srvInterface, ColumnTypes &argTypes, ColumnTypes &returnType)=0 |
| virtual void | getReturnType (ServerInterface &srvInterface, const SizedColumnTypes &argTypes, SizedColumnTypes &returnType) override |
| Public Attributes | |
|---|---|
| strictness | strict |
| volatility | vol |
| Protected Member Functions | |
|---|---|
| virtual UDXType | getUDXFactoryType () override |
| Protected Attributes | |
|---|---|
| Oid | libOid |
| std::string | sqlName |
Detailed Description
Interface for declaring parameters and return types for, and instantiating, an associated ScalarFunction.
Member Enumeration Documentation
◆UDXType
| enum Vertica::UDXFactory::UDXType |
|---|
inherited The type of UDX instance this factory produces
Member Function Documentation
◆createScalarFunction()
virtual ScalarFunction* Vertica::ScalarFunctionFactory::createScalarFunction(ServerInterface & srvInterface)
pure virtual Returns an ScalarFunction object which implements the UDx API described by this metadata.
Parameters
srvInterface: a ServerInterface object used to communicate with Vertica
Note More than one object may be instantiated per query.
◆getParameterType()
virtual void Vertica::UDXFactory::getParameterType(ServerInterface & srvInterface, SizedColumnTypes & parameterTypes)
inlinevirtualinherited
Function to tell Vertica the name and types of parameters that this function uses. Vertica will use this to warn function callers that certain parameters they provide are not affecting anything, or that certain parameters that are not being set are reverting to default values.
Reimplemented in Vertica::ParserFactory.
◆getPerInstanceResources() [1/2]
virtual void Vertica::UDXFactory::getPerInstanceResources(ServerInterface & srvInterface, VResources & res)
inlinevirtualinherited
Set the resource required for each instance of the UDX Object subclass. Users should override only one of the following methods.
Parameters
srvInterface: a ServerInterface object used to communicate with Verticares: a VResources object used to tell Vertica what resources are needed by the UDX
Reimplemented in Vertica::UDLFactory.
Referenced by Vertica::UDXFactory::getPerInstanceResources().
◆getPerInstanceResources() [2/2]
virtual void Vertica::UDXFactory::getPerInstanceResources(ServerInterface & srvInterface, VResources & res, const SizedColumnTypes & inputTypes)
inlinevirtualinherited
Set the resource required for each instance of the UDX Object subclass. Users should override only one of the following methods.
Parameters
srvInterface: a ServerInterface object used to communicate with Verticares: a VResources object used to tell Vertica what resources are needed by the UDXargTypes: Provides the data types of arguments that this UDT was called with
Reimplemented in Vertica::UDLFactory.
◆getPrototype()
virtual void Vertica::FunctionFactory::getPrototype(ServerInterface & srvInterface, ColumnTypes & argTypes, ColumnTypes & returnType)
pure virtual inherited Provides the argument and return types of the UDX
Implemented in Vertica::MultiPhaseTransformFunctionFactory.
Referenced by getReturnType().
◆getReturnType()
virtual void Vertica::ScalarFunctionFactory::getReturnType(ServerInterface & srvInterface, const SizedColumnTypes & argTypes, SizedColumnTypes & returnType)
inlinevirtual
For scalar functions, this function needs to be overridden only if the return type needs length/precision specification.
Parameters
srvInterface: a ServerInterface object used to communicate with VerticaargTypes: The data type of the return value defined by processBlock()returnType: The size of the data returned by processBlock()
Implements Vertica::FunctionFactory.
◆getUDXFactoryType()
virtual UDXType Vertica::ScalarFunctionFactory::getUDXFactoryType()
inlineprotectedvirtual
Returns the object type internally used by Vertica
Implements Vertica::UDXFactory.
Member Data Documentation
◆vol
| volatility Vertica::ScalarFunctionFactory::vol |
|---|
Strictness and Volatility settings that the UDSF programmer can set Defaults are VOLATILE and CALLED_ON_NULL_INPUT