C++ SDK Documentation  24.2.0
Vertica::ParamWriter Class Reference

Provides write access to a set of named parameters. This class extends ParamReader to add type-specific methods to write values. More...

Inheritance diagram for Vertica::ParamWriter:
Inheritance graph
Collaboration diagram for Vertica::ParamWriter:
Collaboration graph

Public Member Functions

 ParamWriter (VTAllocator *allocator=NULL)
 
void addParameter (std::string paramName, const char *arg, const VerticaType &dt)
 
void clearParameter (std::string fieldName)
 
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<>
const VStringgetColPtr (size_t idx) const
 
template<>
const VNumericgetColPtr (size_t idx) const
 
template<>
const VUuidgetColPtr (size_t idx) const
 
template<>
const BlockReadergetColPtr (size_t idx) const
 
template<class T >
T * getColPtrForWrite (size_t idx)
 
template<>
VStringgetColPtrForWrite (size_t idx)
 
template<>
VNumericgetColPtrForWrite (size_t idx)
 
template<>
VUuidgetColPtrForWrite (size_t idx)
 
template<>
BlockWritergetColPtrForWrite (size_t idx)
 
template<class T >
const T & getColRef (size_t idx) const
 
template<class T >
T & getColRefForWrite (size_t idx)
 
int getColStride (size_t idx) const
 
const EE::DataAreagetDataArea (size_t idx) const
 
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...
 
VStringgetLongStringRef (std::string fieldName)
 Allocates a new VString object to use as output. Sets it to be a 32mb LONG type by default. More...
 
size_t getNumCols () const
 
const VNumericgetNumericPtr (std::string paramName) const
 Get a pointer to a VNumeric value from the input row. More...
 
const VNumericgetNumericRef (std::string paramName) const
 Get a reference to a VNumeric value from the input row. More...
 
VNumericgetNumericRef (std::string fieldName)
 Allocate a new VNumeric object to use as output. 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) const
 Get a pointer to a VString value from the input row. More...
 
const VStringgetStringRef (std::string paramName) const
 Get a reference to an VString value from the input row. More...
 
VStringgetStringRef (std::string fieldName)
 Allocates a new VString object to use as output. 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) const
 Get a pointer to a VUuid value from the input row. More...
 
const VUuidgetUuidRef (std::string paramName) const
 
VUuidgetUuidRef (std::string fieldName)
 Allocate a new VUuid object to use as output. More...
 
void * getVoidPtr (size_t idx=0)
 
const void * getVoidPtr (size_t idx=0) const
 
bool isEmpty () const
 Returns true if there are no parameters.
 
bool remaining () const
 
virtual void resetForDataAreaFlush ()
 
void setAllocator (VTAllocator *allocator)
 Sets the allocator to be used to allocate variable size param values such as VString. Given allocator live longer than this ParamWriter. More...
 
void setBool (std::string fieldName, vbool r)
 Adds a BOOLEAN value to the output row. More...
 
void setDataArea (size_t idx, void *dataarea)
 
void setDate (std::string fieldName, DateADT r)
 Adds a BOOLEAN value to the output row. More...
 
void setFloat (std::string fieldName, vfloat r)
 Adds a FLOAT value to the output row. More...
 
void setInt (std::string fieldName, vint r)
 Adds an INTEGER value to the output row. More...
 
void setInterval (std::string fieldName, Interval r, int32 precision, int32 range)
 Adds an INTERVAL value to the output row. More...
 
void setIntervalYM (std::string fieldName, IntervalYM r, int32 range)
 Adds an INTERVAL YEAR TO MONTH value to the output row. More...
 
void setTime (std::string fieldName, TimeADT r, int32 precision)
 Adds a TIME value to the output row. More...
 
void setTimestamp (std::string fieldName, Timestamp r, int32 precision)
 Adds a TIMESTAMP value to the output row. More...
 
void setTimestampTz (std::string fieldName, TimestampTz r, int32 precision)
 Adds a TIMESTAMP WITH TIMEZONE value to the output row. More...
 
void setTimeTz (std::string fieldName, TimeTzADT r, int32 precision)
 Adds a TIME WITH TIMEZONE value to the output row. More...
 

Public Attributes

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

Protected Member Functions

void addCol (char *arg, int colstride, const Field &field)
 
void addCol (const char *arg, int colstride, const Field &field)
 
bool checkStringUserBlockInfo (size_t idx) const
 
bool checkTimeUserBlockInfo (size_t idx) const
 
EE::DataArea ** getArrayIntermediateDataArea (size_t c)
 
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
 
std::vector< NestedBlockPtrctWrappers
 
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 write access to a set of named parameters. This class extends ParamReader to add type-specific methods to write values.

Member Function Documentation

◆ addCol()

void Vertica::VerticaBlock::addCol ( char *  arg,
int  colstride,
const Field field 
)
protectedinherited

Add the location for reading a particular argument.

Parameters
argThe base location to find data.
colstrideThe stride between data instances.
fieldmetadata for the added column
dtThe type of input.
fieldnamethe name of the field

Referenced by Vertica::ParamReader::addParameter().

◆ addParameter()

void Vertica::ParamReader::addParameter ( std::string  paramName,
const char *  arg,
const VerticaType dt 
)
inlineinherited

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

◆ getArrayIntermediateDataArea()

EE::DataArea** Vertica::VerticaBlock::getArrayIntermediateDataArea ( size_t  c)
inlineprotectedinherited
Returns
a pointer to a DataArea for accumulating an intermediate result

◆ getBoolPtr()

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

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.

Referenced by Vertica::ParamReader::getBoolRef().

◆ getBoolRef()

const vbool& Vertica::ParamReader::getBoolRef ( std::string  paramName) const
inlineinherited

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.

◆ getColPtr()

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

◆ getColRef()

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

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

◆ getDatePtr()

const DateADT* Vertica::ParamReader::getDatePtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getDateRef().

◆ getDateRef()

const DateADT& Vertica::ParamReader::getDateRef ( std::string  paramName) const
inlineinherited

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.

◆ getFloatPtr()

const vfloat* Vertica::ParamReader::getFloatPtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getFloatRef().

◆ getFloatRef()

const vfloat& Vertica::ParamReader::getFloatRef ( std::string  paramName) const
inlineinherited

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.

◆ getIntervalPtr()

const Interval* Vertica::ParamReader::getIntervalPtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getIntervalRef().

◆ getIntervalRef()

const Interval& Vertica::ParamReader::getIntervalRef ( std::string  paramName) const
inlineinherited

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.

◆ getIntervalYMPtr()

const IntervalYM* Vertica::ParamReader::getIntervalYMPtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getIntervalYMRef().

◆ getIntervalYMRef()

const IntervalYM& Vertica::ParamReader::getIntervalYMRef ( std::string  paramName) const
inlineinherited

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.

◆ getIntPtr()

const vint* Vertica::ParamReader::getIntPtr ( std::string  paramName) const
inlineinherited

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

Referenced by Vertica::ParamReader::getIntRef().

◆ getIntRef()

const vint& Vertica::ParamReader::getIntRef ( std::string  paramName) const
inlineinherited

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

◆ getLongStringRef()

VString& Vertica::ParamWriter::getLongStringRef ( std::string  fieldName)
inline

Allocates a new VString object to use as output. Sets it to be a 32mb LONG type by default.

Returns
A new VString object to hold output. This object automatically added to the output row.

◆ getNumCols()

size_t Vertica::VerticaBlock::getNumCols ( ) const
inlineinherited
Returns
the number of columns held by this block.

Referenced by Vertica::BlockWriter::copyFromInput(), Vertica::BlockReader::isNull(), and Vertica::BlockWriter::setNull().

◆ getNumericPtr()

const VNumeric* Vertica::ParamReader::getNumericPtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getNumericRef().

◆ getNumericRef() [1/2]

const VNumeric& Vertica::ParamReader::getNumericRef ( std::string  paramName) const
inlineinherited

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.

◆ getNumericRef() [2/2]

VNumeric& Vertica::ParamWriter::getNumericRef ( std::string  fieldName)
inline

Allocate a new VNumeric object to use as output.

Returns
A new VNumeric object to hold output. This object automatically added to the output row.

◆ getNumRows()

int Vertica::VerticaBlock::getNumRows ( ) const
inlineinherited
Returns
the number of rows held by this block.

◆ getStringPtr()

const VString* Vertica::ParamReader::getStringPtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getStringRef().

◆ getStringRef() [1/2]

const VString& Vertica::ParamReader::getStringRef ( std::string  paramName) const
inlineinherited

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.

◆ getStringRef() [2/2]

VString& Vertica::ParamWriter::getStringRef ( std::string  fieldName)
inline

Allocates a new VString object to use as output.

Returns
A new VString object to hold output. This object automatically added to the output row.

◆ getTimePtr()

const TimeADT* Vertica::ParamReader::getTimePtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getTimeRef().

◆ getTimeRef()

const TimeADT& Vertica::ParamReader::getTimeRef ( std::string  paramName) const
inlineinherited

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.

◆ getTimestampPtr()

const Timestamp* Vertica::ParamReader::getTimestampPtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getTimestampRef().

◆ getTimestampRef()

const Timestamp& Vertica::ParamReader::getTimestampRef ( std::string  paramName) const
inlineinherited

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.

◆ getTimestampTzPtr()

const TimestampTz* Vertica::ParamReader::getTimestampTzPtr ( std::string  paramName) const
inlineinherited

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 .

Referenced by Vertica::ParamReader::getTimestampTzRef().

◆ getTimestampTzRef()

const TimestampTz& Vertica::ParamReader::getTimestampTzRef ( std::string  paramName) const
inlineinherited

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.

◆ getTimeTzPtr()

const TimeTzADT* Vertica::ParamReader::getTimeTzPtr ( std::string  paramName) const
inlineinherited

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.

Referenced by Vertica::ParamReader::getTimeTzRef().

◆ getTimeTzRef()

const TimeTzADT& Vertica::ParamReader::getTimeTzRef ( std::string  paramName) const
inlineinherited

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.

◆ getTypeMetaData() [1/2]

const SizedColumnTypes& Vertica::VerticaBlock::getTypeMetaData ( ) const
inlineinherited
Returns
information about the types and numbers of arguments

Referenced by Vertica::ParamReader::getType(), Vertica::BlockReader::isNull(), and Vertica::BlockWriter::setNull().

◆ getTypeMetaData() [2/2]

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

◆ getUuidPtr()

VUuid* Vertica::ParamReader::getUuidPtr ( std::string  paramName) const
inlineinherited

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.

◆ getUuidRef()

VUuid& Vertica::ParamWriter::getUuidRef ( std::string  fieldName)
inline

Allocate a new VUuid object to use as output.

Returns
A new VUuid object to hold output. This object automatically added to the output row.

◆ remaining()

bool Vertica::VerticaBlock::remaining ( ) const
inlineinherited
Returns
the number of entries remaining in the block

◆ resetForDataAreaFlush()

virtual void Vertica::VerticaBlock::resetForDataAreaFlush ( )
inlinevirtualinherited

Virtual method to be called when the Data Area fills up in a load. Should be called from the StreamWriter class.

Reimplemented in Vertica::StreamWriter.

◆ setAllocator()

void Vertica::ParamWriter::setAllocator ( VTAllocator allocator)
inline

Sets the allocator to be used to allocate variable size param values such as VString. Given allocator live longer than this ParamWriter.

Parameters
allocatorUsed to allocate param values.

◆ setBool()

void Vertica::ParamWriter::setBool ( std::string  fieldName,
vbool  r 
)
inline

Adds a BOOLEAN value to the output row.

Parameters
rThe BOOLEAN value to insert into the output row.

◆ setDate()

void Vertica::ParamWriter::setDate ( std::string  fieldName,
DateADT  r 
)
inline

Adds a BOOLEAN value to the output row.

Parameters
rThe BOOLEAN value to insert into the output row.

◆ setFloat()

void Vertica::ParamWriter::setFloat ( std::string  fieldName,
vfloat  r 
)
inline

Adds a FLOAT value to the output row.

Parameters
rThe FLOAT value to insert into the output row.

◆ setInt()

void Vertica::ParamWriter::setInt ( std::string  fieldName,
vint  r 
)
inline

Adds an INTEGER value to the output row.

Setter methods

Parameters
rThe INTEGER value to insert into the output row.

◆ setInterval()

void Vertica::ParamWriter::setInterval ( std::string  fieldName,
Interval  r,
int32  precision,
int32  range 
)
inline

Adds an INTERVAL value to the output row.

Parameters
rThe INTERVAL value to insert into the output row.

◆ setIntervalYM()

void Vertica::ParamWriter::setIntervalYM ( std::string  fieldName,
IntervalYM  r,
int32  range 
)
inline

Adds an INTERVAL YEAR TO MONTH value to the output row.

Parameters
rThe INTERVAL YEAR TO MONTH value to insert into the output row.

◆ setTime()

void Vertica::ParamWriter::setTime ( std::string  fieldName,
TimeADT  r,
int32  precision 
)
inline

Adds a TIME value to the output row.

Parameters
rThe TIME value to insert into the output row.

◆ setTimestamp()

void Vertica::ParamWriter::setTimestamp ( std::string  fieldName,
Timestamp  r,
int32  precision 
)
inline

Adds a TIMESTAMP value to the output row.

Parameters
rThe TIMESTAMP value to insert into the output row.

◆ setTimestampTz()

void Vertica::ParamWriter::setTimestampTz ( std::string  fieldName,
TimestampTz  r,
int32  precision 
)
inline

Adds a TIMESTAMP WITH TIMEZONE value to the output row.

Parameters
rThe TIMESTAMP WITH TIMEZONE value to insert into the output row.

◆ setTimeTz()

void Vertica::ParamWriter::setTimeTz ( std::string  fieldName,
TimeTzADT  r,
int32  precision 
)
inline

Adds a TIME WITH TIMEZONE value to the output row.

Parameters
rThe TIME WITH TIMEZONE value to insert into the output row.

Member Data Documentation

◆ paramNameToIndex

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