![]() |
C++ SDK Documentation
24.2.0
|
Interface for declaring parameters and return types for, and instantiating, an associated multi-phase transform function. This class is similar to, but not a subclass of, TransformFunctionFactory. More...
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 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 | getPhases (ServerInterface &srvInterface, std::vector< TransformFunctionPhase *> &phases)=0 |
virtual void | getPrototype (ServerInterface &srvInterface, ColumnTypes &argTypes, ColumnTypes &returnType) __override__ |
virtual void | getReturnType (ServerInterface &srvInterface, const SizedColumnTypes &argTypes, SizedColumnTypes &returnType) __override__ |
Protected Member Functions | |
virtual UDXType | getUDXFactoryType () __override__ |
Protected Attributes | |
Oid | libOid |
std::string | sqlName |
Interface for declaring parameters and return types for, and instantiating, an associated multi-phase transform function. This class is similar to, but not a subclass of, TransformFunctionFactory.
A multi-phase transform function is made up of TransformFunctionPhase instances. For each phase of your transform, extend this class (not TransformFunction). In getPhases(), return a vector of instances of those classes. Semantically, getPhases() replaces TransformFunctionFactory.createTransformFunction().
|
inherited |
The type of UDX instance this factory produces
|
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.
|
inlinevirtualinherited |
Set the resource required for each instance of the UDX Object subclass. Users should override only one of the following methods.
srvInterface | a ServerInterface object used to communicate with Vertica |
res | a VResources object used to tell Vertica what resources are needed by the UDX |
Reimplemented in Vertica::UDLFactory.
Referenced by Vertica::UDXFactory::getPerInstanceResources().
|
inlinevirtualinherited |
Set the resource required for each instance of the UDX Object subclass. Users should override only one of the following methods.
srvInterface | a ServerInterface object used to communicate with Vertica |
res | a VResources object used to tell Vertica what resources are needed by the UDX |
argTypes | Provides the data types of arguments that this UDT was called with |
Reimplemented in Vertica::UDLFactory.
|
pure virtual |
Called when Vertica needs a new TransformFunctionPhase pipeline to process a multi-phase UDTF function call. Vertica invokes the phases in order; collectively they behave like a TransformFunction.
srvInterface | a ServerInterface object used to communicate with Ver tica |
phases | output TransformFunctionPhase objects @note More than one object may be instantiated per query. |
Referenced by getReturnType().
|
inlinevirtual |
Provides the argument and return types of the UDX
Implements Vertica::FunctionFactory.
|
inlinevirtual |
Function to tell Vertica what the return types (and length/precision if necessary) of this UDX are.
For CHAR/VARCHAR types, specify the max length,
For NUMERIC types, specify the precision and scale.
For Time/Timestamp types (with or without time zone), specify the precision, -1 means unspecified/don't care
For IntervalYM/IntervalDS types, specify the precision and range
For all other types, no length/precision specification needed
argTypes | Provides the data types of arguments that this UDT was called with. This may be used to modify the return types accordingly. |
returnType | User code must fill in the names and data types returned by the UDT. |
Implements Vertica::FunctionFactory.
|
inlineprotectedvirtual |
Implements Vertica::UDXFactory.