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

Files
file Accessors.h

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 grey 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 labeled 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 labeled with the template parameters of the instance.

5 - include Directory Reference

Directories
directory Arrays
Files
file BasicsSupport.h
file BasicsUDxShared.h
file BigInt.cpp
file BigInt.h
file BigIntSubs.h
file BuildAssertions.h
file BuildInfo.h
file DateTimeParsing.h
file EEUDxShared.h
file IntervalUDx.h
file Logging.h
file Oids.h
file PGUDxShared.h
file ServerFunctions.h
file TimestampUDxShared.h
file UdfException.h
file VArchive.h
file VAssert.h
file Vertica.cpp
file Vertica.h
Contains the classes needed to write User-Defined things in Vertica.
file VerticaDFS.h
file VerticaErrorCodes.h
file VerticaErrorMacros.h
file VerticaModel.h
file VerticaSymbols.h
file VerticaUDFS.h
file VerticaUDFSImpl.h
file VerticaUDl.h
file VerticaUDx.h
file VerticaUDxDebug.h
file VerticaUDxInternal.h
file VValgrind.h

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

#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:102
Vertica::uint8unsigned char uint8unsigned 8-bit integer Definition: BasicsUDxShared.h:72

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.

#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:3042

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);