C++ SDK Documentation  24.1.0
Vertica::TransformFunctionPhase Class Referenceabstract

Interface to provide compile-time information for a single phase of a multi-phase user-defined transform function. More...

Collaboration diagram for Vertica::TransformFunctionPhase:
Collaboration graph

Public Member Functions

virtual TransformFunctioncreateTransformFunction (ServerInterface &srvInterface)=0
 
virtual void getReturnType (ServerInterface &srvInterface, const SizedColumnTypes &argTypes, SizedColumnTypes &returnTypes)=0
 
bool isPrepass ()
 
void setPrepass ()
 Indicates that this phase is a pre-pass (i.e., runs before any data movement)
 

Detailed Description

Interface to provide compile-time information for a single phase of a multi-phase user-defined transform function.

Note that even though this class shares some methods with TransformFunctionFactory, it is explicitly not a subclass (because it is incorrect to implement a getPrototype() method for this class).

Member Function Documentation

◆ createTransformFunction()

virtual TransformFunction* Vertica::TransformFunctionPhase::createTransformFunction ( ServerInterface srvInterface)
pure virtual

Called when Vertica needs a new TransformFunction object to process this phase of a multi-phase UDT.

Returns
a TransformFunction object which implements the UDx API described by this metadata.
Parameters
srvInterfacea ServerInterface object used to communicate with Vertica
Note
More than one object may be instantiated per query.

◆ getReturnType()

virtual void Vertica::TransformFunctionPhase::getReturnType ( ServerInterface srvInterface,
const SizedColumnTypes argTypes,
SizedColumnTypes returnTypes 
)
pure virtual

Function to tell Vertica what the return types (and length/precision if necessary) and partition-by, order-by of this phase 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
argTypesProvides the data types of arguments that this phase was called with, along with partition and order information. This may be used to modify the return types accordingly.
returnTypesUser code must fill in the names and data types returned by this phase, along with the partition-by and order-by column information (if any).