Vertica::FunctionFactory Class Reference
Inheritance diagram for Vertica::FunctionFactory:
Collaboration diagram for Vertica::FunctionFactory:
| 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 | getPrototype (ServerInterface &srvInterface, ColumnTypes &argTypes, ColumnTypes &returnType)=0 |
| virtual void | getReturnType (ServerInterface &srvInterface, const SizedColumnTypes &argTypes, SizedColumnTypes &returnType)=0 |
| virtual UDXType | getUDXFactoryType ()=0 |
| Protected Attributes | |
|---|---|
| Oid | libOid |
| std::string | sqlName |
Member Enumeration Documentation
| enum Vertica::UDXFactory::UDXType |
|---|
inherited The type of UDX instance this factory produces
Member Function Documentation
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.
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().
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.
virtual void Vertica::FunctionFactory::getPrototype(ServerInterface & srvInterface, ColumnTypes & argTypes, ColumnTypes & returnType)
pure virtual Provides the argument and return types of the UDX
Implemented in Vertica::MultiPhaseTransformFunctionFactory.
Referenced by Vertica::ScalarFunctionFactory::getReturnType().
virtual void Vertica::FunctionFactory::getReturnType(ServerInterface & srvInterface, const SizedColumnTypes & argTypes, SizedColumnTypes & returnType)
pure virtual 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
Parameters
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.
Implemented in Vertica::MultiPhaseTransformFunctionFactory, and Vertica::ScalarFunctionFactory.
virtual UDXType Vertica::UDXFactory::getUDXFactoryType()
pure virtual inherited Returns the type of UDX Object instance this factory returns.
Note User subclasses should use the appropriate subclass of UDXFactory and not override this method on their own.
Implemented in Vertica::UDKeyManagerFactory, Vertica::MultiPhaseTransformFunctionFactory, Vertica::AggregateFunctionFactory, Vertica::AnalyticFunctionFactory, Vertica::TransformFunctionFactory, Vertica::ScalarFunctionFactory, Vertica::ParserFactory, Vertica::FilterFactory, Vertica::IterativeSourceFactory, and Vertica::UDFileSystemFactory.