This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

File List

Here is a list of all documented files with brief descriptions:

Vertica.h Contains the classes needed to write User-Defined things in Vertica

1 - Arrays Directory Reference

2 - globals

Here is a list of all documented file members with links to the documentation:

3 - globals defs

4 - Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */class Invisible { };/*! Truncated class, inheritance relation is hidden */class Truncated : public Invisible { };/* Class not documented with doxygen comments */class Undocumented { };/*! Class that is inherited using public inheritance */class PublicBase : public Truncated { };/*! A template class */template class Templ { };/*! Class that is inherited using protected inheritance */class ProtectedBase { };/*! Class that is inherited using private inheritance */class PrivateBase { };/*! Class that is used by the Inherited class */class Used { };/*! Super class that inherits a number of other classes */class Inherited : public PublicBase, protected ProtectedBase, private PrivateBase, public Undocumented, public Templ{ private: Used *m_usedClass;};

This will result in the following graph:

image

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.

  • A box with a black border denotes a documented struct or class.

  • A box with a gray border denotes an undocumented struct or class.

  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.

  • A dark green arrow is used for protected inheritance.

  • A dark red arrow is used for private inheritance.

  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.

  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.

5 - include Directory Reference

Directories
Files
file Vertica.h
Contains the classes needed to write User-Defined things in Vertica.

6 - Vertica.h File Reference

Contains the classes needed to write User-Defined things in Vertica.

Include dependency graph for Vertica.h:

image

Classes
struct Vertica::LibraryRegistrar
struct Vertica::UDxRegistrar
Namespaces
Vertica
Macros
#define InlineAggregate()
#define RegisterFactory(clazz)
#define RegisterLibrary(author, library_build_tag, library_version, library_sdk_version, source_url, description, licenses_required, signature) Vertica::LibraryRegistrar registrar(author, library_build_tag, library_version, library_sdk_version, source_url, description, licenses_required, signature)

Detailed Description

Contains the classes needed to write User-Defined things in Vertica.

Macro Definition Documentation

β—†InlineAggregate

#define InlineAggregate()

Value:

virtual void aggregateArrs(ServerInterface &srvInterface, void **dstTuples,\ int doff, const void *arr, int stride, const void *rcounts,\ int rcstride, int count, IntermediateAggs &intAggs,\ std::vector &intOffsets, BlockReader &arg_reader) override {\ char *arg = const_cast(static_cast(arr));\ const uint8 *rowCountPtr = static_cast(rcounts);\ for (int i=0; i(rowCountPtr);\ char *aggPtr = static_cast(dstTuples[i]) + doff;\ updateCols(arg_reader, arg, rowCount, intAggs, aggPtr, intOffsets);\ aggregate(srvInterface, arg_reader, intAggs);\ arg += rowCount * stride;\ rowCountPtr += rcstride;\ }\ }\Vertica::vposunsigned long long vpos64-bit vertica position Definition: BasicsUDxShared.h:112
Vertica::uint8unsigned char uint8unsigned 8-bit integer Definition: BasicsUDxShared.h:82

InlineAggregate() is used to implement the virtual function "aggregateArrs()" for AggregateFunctions. This allows aggregate functions to work on blocks at a time. This macro should be called from inside an AggregateFunction - for a reference, check the examples in the example folder.

β—†RegisterFactory

#define RegisterFactory(clazz)

Value:

clazz clazz##_instance; \ extern "C" Vertica::UDXFactory *get##clazz() { return &clazz##_instance; } \ Vertica::UDxRegistrar clazz##_registrar(#clazz)Vertica::UDXFactoryParent class for UDx factories; not intended for direct use by applications. Definition: VerticaUDx.h:3177

Parameters

  • class: The name of the class to register as a UDx factory. Helper macro for registering UDx's with Vertica

To use: Extend a subclass of UDXFactory (e.g. ScalarFunctionFactory) and then call RegisterFactory with that class name.

For example:

... class MyFactory : public ScalarFunctionFactory ...

RegisterFactory(MyFactory);