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

Provides read access to a set of named parameters. This class provides type-specific methods to retrieve values. More...

Inheritance diagram for Vertica::ParamReader:
Inheritance graph
Collaboration diagram for Vertica::ParamReader:
Collaboration graph

Public Member Functions

 ParamReader (size_t nparams)
 
void addParameter (std::string paramName, const char *arg, const VerticaType &dt)
 
bool containsParameter (std::string paramName) const
 Function to see if the ParamReader has a value for the parameter.
 
void copy (const VerticaBlock &other)
 
void copy (const ParamReader &other)
 Copy the other ParamReader. Discard any existing parameters TODO: create an alternate version that only copies if this ParamReader is empty, is a no-op if they are non-empty and the same, and error if they are non-empty and different.
 
const vboolgetBoolPtr (std::string paramName) const
 Get a pointer to a BOOLEAN value from the input row. More...
 
const vboolgetBoolRef (std::string paramName) 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 (std::string paramName) const
 Get a pointer to a DATE value from the input row. More...
 
const DateADTgetDateRef (std::string paramName) const
 Get a reference to a DATE value from the input row. More...
 
const vfloatgetFloatPtr (std::string paramName) const
 Get a pointer to a FLOAT value from the input row. More...
 
const vfloatgetFloatRef (std::string paramName) const
 Get a reference to a FLOAT value from the input row. More...
 
size_t getIndex (std::string paramName) const
 
const IntervalgetIntervalPtr (std::string paramName) const
 Get a pointer to an INTERVAL value from the input row. More...
 
const IntervalgetIntervalRef (std::string paramName) const
 Get a reference to an INTERVAL value from the input row. More...
 
const IntervalYMgetIntervalYMPtr (std::string paramName) const
 Get a pointer to a INTERVAL YEAR TO MONTH value from the input row. More...
 
const IntervalYMgetIntervalYMRef (std::string paramName) const
 Get a reference to an INTERVAL YEAR TO MONTH value from the input row. More...
 
const vintgetIntPtr (std::string paramName) const
 Get a pointer to an INTEGER value from the input row. More...
 
const vintgetIntRef (std::string paramName) const
 Get a reference to an INTEGER value from the input row. More...
 
size_t getNumCols () const
 
const VNumericgetNumericPtr (std::string paramName)
 Get a pointer to a VNumeric value from the input row. More...
 
const VNumericgetNumericRef (std::string paramName)
 Get a reference to a VNumeric value from the input row. More...
 
int getNumRows () const
 
std::vector< std::string > getParamNames () const
 Return the names of all parameters stored in this ParamReader.
 
const VStringgetStringPtr (std::string paramName)
 Get a pointer to a VString value from the input row. More...
 
const VStringgetStringRef (std::string paramName)
 Get a reference to an VString value from the input row. More...
 
const TimeADTgetTimePtr (std::string paramName) const
 Get a pointer to a TIME value from the input row. More...
 
const TimeADTgetTimeRef (std::string paramName) const
 Get a reference to a TIME value from the input row. More...
 
const TimestampgetTimestampPtr (std::string paramName) const
 Get a pointer to a TIMESTAMP value from the input row. More...
 
const TimestampgetTimestampRef (std::string paramName) const
 Get a reference to a TIMESTAMP value from the input row. More...
 
const TimestampTzgetTimestampTzPtr (std::string paramName) const
 Get a pointer to a TIMESTAMP WITH TIMEZONE value from the input row. More...
 
const TimestampTzgetTimestampTzRef (std::string paramName) const
 Get a reference to a TIMESTAMP WITH TIMEZONE value from the input row. More...
 
const TimeTzADTgetTimeTzPtr (std::string paramName) const
 Get a pointer to a TIME WITH TIMEZONE value from the input row. More...
 
const TimeTzADTgetTimeTzRef (std::string paramName) const
 Get a reference to a TIME WITH TIMEZONE value from the input row. More...
 
VerticaType getType (std::string paramName) const
 Return the type of the given parameter.
 
const SizedColumnTypesgetTypeMetaData () const
 
SizedColumnTypesgetTypeMetaData ()
 
VUuidgetUuidPtr (std::string paramName)
 Get a pointer to a VUuid value from the input row. More...
 
void * getVoidPtr ()
 
bool isEmpty () const
 Returns true if there are no parameters.
 
void setDataArea (size_t idx, void *dataarea)
 

Public Attributes

std::map< std::string, size_t > paramNameToIndex
 

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 VerticaBlockSerializer
 

Detailed Description

Provides read access to a set of named parameters. This class provides type-specific methods to retrieve values.

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::ParamReader::addParameter ( std::string  paramName,
const char *  arg,
const VerticaType dt 
)
inline

Add a parameter to the block and stores it name and corresponding index in the paramNameToIndex map

const vbool* Vertica::ParamReader::getBoolPtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a BOOLEAN.
const vbool& Vertica::ParamReader::getBoolRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, 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::ParamReader::getDatePtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a DATE.
const DateADT& Vertica::ParamReader::getDateRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as an DATE.
const vfloat* Vertica::ParamReader::getFloatPtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a FLOAT.
const vfloat& Vertica::ParamReader::getFloatRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A reference to the parameter value, cast as an FLOAT.
const Interval* Vertica::ParamReader::getIntervalPtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as an INTERVAL.
const Interval& Vertica::ParamReader::getIntervalRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as an INTERVAL.
const IntervalYM* Vertica::ParamReader::getIntervalYMPtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A point to the retrieved value cast as a INTERVAL YEAR TO MONTH.
const IntervalYM& Vertica::ParamReader::getIntervalYMRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as an INTERVAL YEAR TO MONTH.
const vint* Vertica::ParamReader::getIntPtr ( std::string  paramName) const
inline

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

Returns
a pointer to the idx'th argument, cast appropriately.
Parameters
paramNameThe name of the parameter to retrieve

Example:

vint *a = arg_reader->getIntPtr("max");
const vint& Vertica::ParamReader::getIntRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as an INTEGER.

Example:

vint a = arg_reader->getIntRef("max");
size_t Vertica::VerticaBlock::getNumCols ( ) const
inlineinherited
Returns
the number of columns held by this block.
const VNumeric* Vertica::ParamReader::getNumericPtr ( std::string  paramName)
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a Numeric.
const VNumeric& Vertica::ParamReader::getNumericRef ( std::string  paramName)
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as an VNumeric.
int Vertica::VerticaBlock::getNumRows ( ) const
inlineinherited
Returns
the number of rows held by this block.
const VString* Vertica::ParamReader::getStringPtr ( std::string  paramName)
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a VString.
const VString& Vertica::ParamReader::getStringRef ( std::string  paramName)
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as an VString.
const TimeADT* Vertica::ParamReader::getTimePtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a TIME.
const TimeADT& Vertica::ParamReader::getTimeRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as a TIME.
const Timestamp* Vertica::ParamReader::getTimestampPtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a TIMESTAMP.
const Timestamp& Vertica::ParamReader::getTimestampRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as a TIMESTAMP.
const TimestampTz* Vertica::ParamReader::getTimestampTzPtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a TIMESTAMP WITH TIMEZONE .
const TimestampTz& Vertica::ParamReader::getTimestampTzRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, cast as a TIMESTAMP WITH TIMEZONE.
const TimeTzADT* Vertica::ParamReader::getTimeTzPtr ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a TIME WITH TIMEZONE.
const TimeTzADT& Vertica::ParamReader::getTimeTzRef ( std::string  paramName) const
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
a reference to the parameter value, 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
VUuid* Vertica::ParamReader::getUuidPtr ( std::string  paramName)
inline

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

Parameters
paramNameThe name of the parameter to retrieve
Returns
A pointer to the retrieved value cast as a VUuid.

Member Data Documentation

std::map<std::string, size_t> Vertica::ParamReader::paramNameToIndex

Bookkeepinp to make a parameter and its position in the block

Referenced by copy().