Vertica::AnalyticFunction Class Reference
Interface for User-Defined Analytic Function (UDAnF). A UDAnF operates on rows of data and returns rows of data, not necessarily 1:1.
Inheritance diagram for Vertica::AnalyticFunction:
Collaboration diagram for Vertica::AnalyticFunction:
| 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
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().
void Vertica::UDXObject::cancelUDX(ServerInterface & srvInterface)
inline inherited Cancel callback invoked when the query running the UDX has been canceled. See cancel().
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().
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
bool Vertica::UDXObject::isCanceled() const
inline inherited Returns true iff this UDX has been canceled
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
srvInterface: a ServerInterface object used to communicate with Verticainput_reader: input rowsoutput_writer: output location
virtual void Vertica::UDXFunction::setup(ServerInterface & srvInterface, const SizedColumnTypes & argTypes)
inlinevirtualinherited
Perform per instance initialization. This function may throw errors.