C++ SDK Documentation  9.0
Vertica::AnalyticPartitionWriter Class Reference

Partition writer for all input data in a single partition. It automatically makes space as needed. More...

Inheritance diagram for Vertica::AnalyticPartitionWriter:
Inheritance graph
Collaboration diagram for Vertica::AnalyticPartitionWriter:
Collaboration graph

Public Member Functions

 AnalyticPartitionWriter (size_t narg, EE::UserDefinedProcess *udx_object)
 
void copy (const VerticaBlock &other)
 
void copyFromInput (size_t dstIdx, PartitionReader &input_reader, size_t srcIdx)
 
template<class T >
const T * getColPtr (size_t idx) const
 
template<class T >
T * getColPtrForWrite (size_t idx)
 
template<class T >
const T & getColRef (size_t idx)
 
template<class T >
T & getColRefForWrite (size_t idx)
 
int getColStride (size_t idx) const
 
PartitionWriterColumns getColumns ()
 
const EE::DataAreagetDataArea (size_t idx)
 
size_t getNumCols () const
 
VNumericgetNumericRef (size_t idx)
 
int getNumRows () const
 
VStringgetStringRef (size_t idx)
 
VStringgetStringRefNoClear (size_t idx)
 
const SizedColumnTypesgetTypeMetaData () const
 
SizedColumnTypesgetTypeMetaData ()
 
VUuidgetUuidRef (size_t idx)
 
void * getVoidPtr ()
 
void * getVoidPtr (size_t idx)
 
virtual bool getWriteableBlock ()
 
bool next ()
 
void setBool (size_t idx, vbool r)
 
void setDataArea (size_t idx, void *dataarea)
 
void setDate (size_t idx, DateADT r)
 
void setFloat (size_t idx, vfloat r)
 
void setInt (size_t idx, vint r)
 
void setInterval (size_t idx, Interval r)
 
void setNull (size_t idx)
 Set the idx'th argument to null. More...
 
void setTime (size_t idx, TimeADT r)
 
void setTimestamp (size_t idx, Timestamp r)
 
void setTimestampTz (size_t idx, TimestampTz r)
 
void setTimeTz (size_t idx, TimeTzADT r)
 
void throwInCorrectUsageError (size_t idx)
 
void validateColumn (size_t idx)
 

Protected Member Functions

void addCol (char *arg, int colstride, const VerticaType &dt, const std::string fieldName="")
 
void addCol (const char *arg, int colstride, const VerticaType &dt, const std::string fieldName="")
 
bool checkStringUserBlockInfo (size_t idx) const
 
bool checkTimeUserBlockInfo (size_t idx) const
 
bool commitPrefilledRows (int nRows)
 
void reset ()
 
void resetIndex ()
 
void setRowCount (int rowCount)
 
void validateStringColumn (size_t idx, const VString &s, size_t colLength) const
 

Protected Attributes

union {
   EE::UserDefinedAnalytic *   udan
 
   EE::UserDefinedTransform *   udt
 
   EE::UserDefinedProcess *   udx_object
 
}; 
 
std::vector< char * > cols
 
std::vector< int > colstrides
 
int count
 
int index
 
const int * indices
 
size_t ncols
 
int nrows
 
std::vector< BaseDataOID > processBlockUserInfoVector
 
int pstart
 
std::vector< VStringsvWrappers
 
SizedColumnTypes typeMetaData
 
std::vector< VUuiduuWrappers
 
std::vector< VNumericvnWrappers
 

Detailed Description

Partition writer for all input data in a single partition. It automatically makes space as needed.

Member Function Documentation

void Vertica::VerticaBlock::addCol ( char *  arg,
int  colstride,
const VerticaType dt,
const std::string  fieldName = "" 
)
inlineprotectedinherited

Add the location for reading a particular argument.

Parameters
argThe base location to find data.
colstrideThe stride between data instances.
dtThe type of input.
fieldnamethe name of the field
void Vertica::PartitionWriter::copyFromInput ( size_t  dstIdx,
PartitionReader input_reader,
size_t  srcIdx 
)
inlineinherited

Copies a column from the input reader to the output writer. The data types and sizes of the source and destination columns must match exactly.

Parameters
dstIdxThe destination column index (in the output writer)
input_readerThe input reader from which to copy a column
srcIdxThe source column index (in the input reader)
template<class T >
const T* Vertica::VerticaBlock::getColPtr ( size_t  idx) const
inlineinherited
Returns
a pointer to the idx'th argument, cast appropriately.

Example:

const vint *a = arg_reader->getColPtr<vint>(0);

Referenced by Vertica::PartitionWriter::copyFromInput().

template<class T >
const T& Vertica::VerticaBlock::getColRef ( size_t  idx)
inlineinherited
Returns
a pointer to the idx'th argument, cast appropriately.

Example: const vint a = arg_reader->getColRef<vint>(0);

size_t Vertica::VerticaBlock::getNumCols ( ) const
inlineinherited
Returns
the number of columns held by this block.
int Vertica::VerticaBlock::getNumRows ( ) const
inlineinherited
Returns
the number of rows held by this block.
const SizedColumnTypes& Vertica::VerticaBlock::getTypeMetaData ( ) const
inlineinherited
Returns
information about the types and numbers of arguments

Referenced by Vertica::PartitionWriter::copyFromInput().

SizedColumnTypes& Vertica::VerticaBlock::getTypeMetaData ( )
inlineinherited
Returns
information about the types and numbers of arguments
virtual bool Vertica::AnalyticPartitionWriter::getWriteableBlock ( )
virtual

Gets a writeable block of data and positions cursor at the beginning.

Reimplemented from Vertica::PartitionWriter.

void Vertica::PartitionWriter::setInt ( size_t  idx,
vint  r 
)
inlineinherited

Setter methods

void Vertica::PartitionWriter::setNull ( size_t  idx)
inlineinherited

Set the idx'th argument to null.

Parameters
idxThe column number in the row to set to null