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

Iterator interface for reading rows in a Vertica block. More...

Inheritance diagram for Vertica::BlockReader:
Inheritance graph
Collaboration diagram for Vertica::BlockReader:
Collaboration graph

Public Member Functions

 BlockReader (size_t narg, int rowcount, const int *indices)
 
void copy (const VerticaBlock &other)
 
const vboolgetBoolPtr (size_t idx) const
 Get a pointer to a BOOLEAN value from the input row. More...
 
const vboolgetBoolRef (size_t idx) const
 Get a reference to a BOOLEAN value from the input row. More...
 
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
 
const EE::DataAreagetDataArea (size_t idx)
 
const DateADTgetDatePtr (size_t idx) const
 Get a pointer to a DATE value from the input row. More...
 
const DateADTgetDateRef (size_t idx) const
 Get a reference to a DATE value from the input row. More...
 
const vfloatgetFloatPtr (size_t idx) const
 Get a pointer to a FLOAT value from the input row. More...
 
const vfloatgetFloatRef (size_t idx) const
 Get a reference to a FLOAT value from the input row. More...
 
const IntervalgetIntervalPtr (size_t idx) const
 Get a pointer to an INTERVAL value from the input row. More...
 
const IntervalgetIntervalRef (size_t idx) const
 Get a reference to an INTERVAL value from the input row. More...
 
const IntervalYMgetIntervalYMPtr (size_t idx) const
 Get a pointer to a INTERVAL YEAR TO MONTH value from the input row. More...
 
const IntervalYMgetIntervalYMRef (size_t idx) const
 Get a reference to an INTERVAL YEAR TO MONTH value from the input row. More...
 
const vintgetIntPtr (size_t idx) const
 Get a pointer to an INTEGER value from the input row. More...
 
const vintgetIntRef (size_t idx) const
 Get a reference to an INTEGER value from the input row. More...
 
size_t getNumCols () const
 
const VNumericgetNumericPtr (size_t idx)
 Get a pointer to a VNumeric value from the input row. More...
 
const VNumericgetNumericRef (size_t idx)
 Get a reference to a VNumeric value from the input row. More...
 
int getNumRows () const
 
const VStringgetStringPtr (size_t idx)
 Get a pointer to a VString value from the input row. More...
 
const VStringgetStringRef (size_t idx)
 Get a reference to an VString value from the input row. More...
 
const TimeADTgetTimePtr (size_t idx) const
 Get a pointer to a TIME value from the input row. More...
 
const TimeADTgetTimeRef (size_t idx) const
 Get a reference to a TIME value from the input row. More...
 
const TimestampgetTimestampPtr (size_t idx) const
 Get a pointer to a TIMESTAMP value from the input row. More...
 
const TimestampgetTimestampRef (size_t idx) const
 Get a reference to a TIMESTAMP value from the input row. More...
 
const TimestampTzgetTimestampTzPtr (size_t idx) const
 Get a pointer to a TIMESTAMP WITH TIMEZONE value from the input row. More...
 
const TimestampTzgetTimestampTzRef (size_t idx) const
 Get a reference to a TIMESTAMP WITH TIMEZONE value from the input row. More...
 
const TimeTzADTgetTimeTzPtr (size_t idx) const
 Get a pointer to a TIME WITH TIMEZONE value from the input row. More...
 
const TimeTzADTgetTimeTzRef (size_t idx) const
 Get a reference to a TIME WITH TIMEZONE value from the input row. More...
 
const SizedColumnTypesgetTypeMetaData () const
 
SizedColumnTypesgetTypeMetaData ()
 
const VUuidgetUuidPtr (size_t idx)
 Get a pointer to a VUuid value from the input row. More...
 
const VUuidgetUuidRef (size_t idx)
 Get a reference to a VUuid value from the input row. More...
 
void * getVoidPtr ()
 
bool isNull (int col)
 Check if the idx'th argument is null. More...
 
bool next ()
 
void setDataArea (size_t idx, void *dataarea)
 

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
 
void reset ()
 
void resetIndex ()
 
void setRowCount (int rowCount)
 
void validateStringColumn (size_t idx, const VString &s, size_t colLength) const
 

Protected Attributes

std::vector< char * > cols
 
std::vector< int > colstrides
 
int count
 
int index
 
const int * indices
 
size_t ncols
 
int nrows
 
std::vector< BaseDataOID > processBlockUserInfoVector
 
std::vector< VStringsvWrappers
 
SizedColumnTypes typeMetaData
 
std::vector< VUuiduuWrappers
 
std::vector< VNumericvnWrappers
 

Friends

class EE::VEval
 
class VerticaRInterface
 

Detailed Description

Iterator interface for reading rows in a Vertica block.

This class provides the input to the ScalarFunction.processBlock() function. You extract values from the input row using data type specific functions to extract each column value. You can also determine the number of columns and their data types, if your processBlock function does not have hard-coded input expectations.

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
const vbool* Vertica::BlockReader::getBoolPtr ( size_t  idx) const
inline

Get a pointer to a BOOLEAN value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A pointer to the retrieved value cast as a BOOLEAN.
const vbool& Vertica::BlockReader::getBoolRef ( size_t  idx) const
inline

Get a reference to a BOOLEAN value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as an BOOLEAN.
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);

const DateADT* Vertica::BlockReader::getDatePtr ( size_t  idx) const
inline

Get a pointer to a DATE value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A pointer to the retrieved value cast as a DATE.
const DateADT& Vertica::BlockReader::getDateRef ( size_t  idx) const
inline

Get a reference to a DATE value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as an DATE.
const vfloat* Vertica::BlockReader::getFloatPtr ( size_t  idx) const
inline

Get a pointer to a FLOAT value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A pointer to the retrieved value cast as a FLOAT.
const vfloat& Vertica::BlockReader::getFloatRef ( size_t  idx) const
inline

Get a reference to a FLOAT value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
A reference to the idx'th argument, cast as an FLOAT.
const Interval* Vertica::BlockReader::getIntervalPtr ( size_t  idx) const
inline

Get a pointer to an INTERVAL value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A pointer to the retrieved value cast as an INTERVAL.
const Interval& Vertica::BlockReader::getIntervalRef ( size_t  idx) const
inline

Get a reference to an INTERVAL value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as an INTERVAL.
const IntervalYM* Vertica::BlockReader::getIntervalYMPtr ( size_t  idx) const
inline

Get a pointer to a INTERVAL YEAR TO MONTH value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A point to the retrieved value cast as a INTERVAL YEAR TO MONTH.
const IntervalYM& Vertica::BlockReader::getIntervalYMRef ( size_t  idx) const
inline

Get a reference to an INTERVAL YEAR TO MONTH value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as an INTERVAL YEAR TO MONTH.
const vint* Vertica::BlockReader::getIntPtr ( size_t  idx) const
inline

Get a pointer to an INTEGER value from the input row.

Returns
a pointer to the idx'th argument, cast appropriately.
Parameters
idxThe column number to retrieve from the input row.

Example:

const vint *a = arg_reader->getIntPtr(0);
const vint& Vertica::BlockReader::getIntRef ( size_t  idx) const
inline

Get a reference to an INTEGER value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as an INTEGER.

Example:

const vint a = arg_reader->getIntRef(0);
size_t Vertica::VerticaBlock::getNumCols ( ) const
inlineinherited
Returns
the number of columns held by this block.
const VNumeric* Vertica::BlockReader::getNumericPtr ( size_t  idx)
inline

Get a pointer to a VNumeric value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
A pointer to the retrieved value cast as a Numeric.
const VNumeric& Vertica::BlockReader::getNumericRef ( size_t  idx)
inline

Get a reference to a VNumeric value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as an VNumeric.
int Vertica::VerticaBlock::getNumRows ( ) const
inlineinherited
Returns
the number of rows held by this block.
const VString* Vertica::BlockReader::getStringPtr ( size_t  idx)
inline

Get a pointer to a VString value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
A pointer to the retrieved value cast as a VString.

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

const VString& Vertica::BlockReader::getStringRef ( size_t  idx)
inline

Get a reference to an VString value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as an VString.
const TimeADT* Vertica::BlockReader::getTimePtr ( size_t  idx) const
inline

Get a pointer to a TIME value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A pointer to the retrieved value cast as a TIME.
const TimeADT& Vertica::BlockReader::getTimeRef ( size_t  idx) const
inline

Get a reference to a TIME value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as a TIME.
const Timestamp* Vertica::BlockReader::getTimestampPtr ( size_t  idx) const
inline

Get a pointer to a TIMESTAMP value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A pointer to the retrieved value cast as a TIMESTAMP.
const Timestamp& Vertica::BlockReader::getTimestampRef ( size_t  idx) const
inline

Get a reference to a TIMESTAMP value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as a TIMESTAMP.
const TimestampTz* Vertica::BlockReader::getTimestampTzPtr ( size_t  idx) const
inline

Get a pointer to a TIMESTAMP WITH TIMEZONE value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A pointer to the retrieved value cast as a TIMESTAMP WITH TIMEZONE .
const TimestampTz& Vertica::BlockReader::getTimestampTzRef ( size_t  idx) const
inline

Get a reference to a TIMESTAMP WITH TIMEZONE value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as a TIMESTAMP WITH TIMEZONE.
const TimeTzADT* Vertica::BlockReader::getTimeTzPtr ( size_t  idx) const
inline

Get a pointer to a TIME WITH TIMEZONE value from the input row.

Parameters
idxThe column number in the input row to retrieve.
Returns
A pointer to the retrieved value cast as a TIME WITH TIMEZONE.
const TimeTzADT& Vertica::BlockReader::getTimeTzRef ( size_t  idx) const
inline

Get a reference to a TIME WITH TIMEZONE value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as a TIME WITH TIMEZONE.
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
const VUuid* Vertica::BlockReader::getUuidPtr ( size_t  idx)
inline

Get a pointer to a VUuid value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
A pointer to the retrieved value cast as a VUuid.
const VUuid& Vertica::BlockReader::getUuidRef ( size_t  idx)
inline

Get a reference to a VUuid value from the input row.

Parameters
idxThe column number to retrieve from the input row.
Returns
a reference to the idx'th argument, cast as an VUuid.
bool Vertica::BlockReader::isNull ( int  col)
inline

Check if the idx'th argument is null.

Parameters
colThe column number in the row to check for null
Returns
true is the col value is null false otherwise
bool Vertica::BlockReader::next ( )
inline

Advance to the next record.

Returns
true if there are more rows to read, false otherwise.