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

Interface for User-Defined Analytic Function (UDAnF). A UDAnF operates on rows of data and returns rows of data, not necessarily 1:1. More...

Inheritance diagram for Vertica::AnalyticFunction:
Inheritance graph
Collaboration diagram for Vertica::AnalyticFunction:
Collaboration graph

Public Member Functions

void cancelUDX (ServerInterface &srvInterface)
 
virtual void destroy (ServerInterface &srvInterface, const SizedColumnTypes &argTypes)
 
virtual void destroy (ServerInterface &srvInterface, const SizedColumnTypes &argTypes, SessionParamWriterMap &udSessionParams)
 
bool isCanceled () const
 
virtual void processPartition (ServerInterface &srvInterface, AnalyticPartitionReader &input_reader, AnalyticPartitionWriter &output_writer)=0
 
virtual void setup (ServerInterface &srvInterface, const SizedColumnTypes &argTypes)
 

Protected Member Functions

virtual void cancel (ServerInterface &srvInterface)
 

Detailed Description

Interface for User-Defined Analytic Function (UDAnF). A UDAnF operates on rows of data and returns rows of data, not necessarily 1:1.

An AnalyticFunction must have an associated AnalyticFunctionFactory.

Member Function Documentation

◆ cancel()

virtual void Vertica::UDXObject::cancel ( ServerInterface srvInterface)
inlineprotectedvirtualinherited

Cancel callback to be overridden by the UDX. Called when the query running the UDX has been canceled.

Note
  • This method will be invoked at most once per UDX object. Once a UDX object has been canceled, it will never be un-canceled.
  • This method may be called from a separate thread, concurrently with other methods of this UDX object (but never the constructor or destructor). Implementations must be thread-safe with all methods of this UDX.
  • This method will be invoked for either an explicit user cancel, or in the event of an error during query execution.

Referenced by Vertica::UDXObject::cancelUDX().

◆ cancelUDX()

void Vertica::UDXObject::cancelUDX ( ServerInterface srvInterface)
inlineinherited

Cancel callback invoked when the query running the UDX has been canceled. See cancel().

◆ destroy() [1/2]

virtual void Vertica::UDXFunction::destroy ( ServerInterface srvInterface,
const SizedColumnTypes argTypes 
)
inlinevirtualinherited

Perform per instance destruction. This function may throw errors

Referenced by Vertica::UDXFunction::destroy().

◆ destroy() [2/2]

virtual void Vertica::UDXFunction::destroy ( ServerInterface srvInterface,
const SizedColumnTypes argTypes,
SessionParamWriterMap udSessionParams 
)
inlinevirtualinherited

Perform per instance destruction and write session parameters to be used by UDxs that are invoked after this one returns. This function may throw errors

◆ isCanceled()

bool Vertica::UDXObject::isCanceled ( ) const
inlineinherited
Returns
true iff this UDX has been canceled

◆ processPartition()

virtual void Vertica::AnalyticFunction::processPartition ( ServerInterface srvInterface,
AnalyticPartitionReader input_reader,
AnalyticPartitionWriter output_writer 
)
pure virtual

Invoke a user defined analytic on a set of rows. As the name suggests, a batch of rows are passed in for every invocation to amortize performance.

Parameters
srvInterfacea ServerInterface object used to communicate with Vertica
input_readerinput rows
output_writeroutput location

◆ setup()

virtual void Vertica::UDXFunction::setup ( ServerInterface srvInterface,
const SizedColumnTypes argTypes 
)
inlinevirtualinherited

Perform per instance initialization. This function may throw errors.