Vertica::ValueRangeWriter Class Reference

This class represents the output value range of a UDSF.

Inheritance diagram for Vertica::ValueRangeWriter:

Collaboration diagram for Vertica::ValueRangeWriter:

Public Types
enum BoundType { LO_BOUND, UP_BOUND }
Public Member Functions
ValueRangeWriter (char *outLoBound, char *outUpBound, const VerticaType &dt, EE::ValueSort sortedness, bool canHaveNulls)
bool canHaveNulls (size_t idx) const
Indicates if there can be NULL values in the range.
bool canHaveNulls () const
template
const T * getColPtr (size_t idx) const
template
T * getColPtrForWrite (size_t idx)
VNumeric & getNumericRefLo ()
Gets a VNumeric object reference to set the range lower bound.
VNumeric & getNumericRefUp ()
Gets a VNumeric object reference to set the range upper bound.
size_t getNumRanges () const
Retrieve the number of range arguments.
const VerticaType & getRangeType (size_t idx) const
Returns the data type of the values in a range.
EE::ValueSort getSortedness (size_t idx) const
EE::ValueSort getSortedness () const
VString & getStringRefLo ()
Gets a VString object reference to set the range lower bound.
VString & getStringRefUp ()
Gets a VString object reference to set the range upper bound.
VUuid & getUuidRefLo ()
Gets a VUuid object reference to set the range lower bound.
VUuid & getUuidRefUp ()
Gets a VUuid object reference to set the range upper bound.
bool hasBounds () const
void setBoolLo (vbool r)
Sets a range bound as a BOOLEAN value.
void setBoolUp (vbool r)
void setCanHaveNulls (bool u)
void setDateLo (DateADT r)
Sets a range bound as a DATE value.
void setDateUp (DateADT r)
void setFloatLo (vfloat r)
Sets a range bound as a FLOAT value to the output row.
void setFloatUp (vfloat r)
void setHasBounds ()
Lets Vertica know that this output range has user-defined bounds.
void setIntervalLo (Interval r)
Sets a range bound as an INTERVAL value.
void setIntervalUp (Interval r)
void setIntervalYMLo (IntervalYM r)
Sets a range bound as an INTERVAL YEAR TO MONTH value.
void setIntervalYMUp (IntervalYM r)
void setIntLo (vint r)
Sets a range bound as an INTEGER value.
void setIntUp (vint r)
void setNull ()
Sets to NULL all values in this range.
void setSortedness (EE::ValueSort s)
void setTimeLo (TimeADT r)
Sets a range bound as a TIMESTAMP value.
void setTimestampLo (Timestamp r)
Sets a range bound as a TIMESTAMP value.
void setTimestampTzLo (TimestampTz r)
Sets a range bound as a TIMESTAMP WITH TIMEZONE value.
void setTimestampTzUp (TimestampTz r)
void setTimestampUp (Timestamp r)
void setTimeTzLo (TimeTzADT r)
Sets a range bound as a TIMESTAMP WITH TIMEZONE value.
void setTimeTzUp (TimeTzADT r)
void setTimeUp (TimeADT r)
Protected Member Functions
void addArg (char *loBound, char *upBound, const VerticaType &dt, EE::ValueSort sortedness, bool canHaveNulls)
void setCanHaveNulls (size_t idx, bool u)
Set a flag to indicate that some values in this range can be NULL.
void setSortedness (size_t idx, EE::ValueSort s)
Protected Attributes
size_t narg
std::vector ranges
std::vector svWrappersLo
std::vector svWrappersUp
std::vector uuWrappersLo
std::vector uuWrappersUp
std::vector vnWrappersLo
std::vector vnWrappersUp
Friends
class EE::VEval

Detailed Description

This class represents the output value range of a UDSF.

Instances of this class are used to allow UDSF developers specify the output range of UDSFs via the optional ScalarFunction::getOutputRange() function.

Member Function Documentation

void Vertica::VerticaValueRange::addArg(char * loBound, char * upBound, const VerticaType & dt, EE::ValueSort sortedness, bool canHaveNulls)

inlineprotectedinherited

Add a value range of a particular function argument

Parameters

  • loBound: Base location to find the lower bound data
  • upBound: Base location to find the upper bound data
  • sortedness: Sortedness of values in the range
  • dt: The data type of range bounds
bool Vertica::VerticaValueRange::canHaveNulls(size_t idx) const

inline inherited Indicates if there can be NULL values in the range.

Parameters

  • idx: the range argument number.

Returns TRUE if some range values can be NULL, else FALSE.

VNumeric& Vertica::ValueRangeWriter::getNumericRefLo()

inline Gets a VNumeric object reference to set the range lower bound.

Returns A VNumeric object reference.

Referenced by setNull().

VNumeric& Vertica::ValueRangeWriter::getNumericRefUp()

inline Gets a VNumeric object reference to set the range upper bound.

Returns A VNumeric object reference.

Referenced by setNull().

size_t Vertica::VerticaValueRange::getNumRanges() const

inline inherited Retrieve the number of range arguments.

Returns the number of range arguments held by this object.

const VerticaType& Vertica::VerticaValueRange::getRangeType(size_t idx) const

inline inherited Returns the data type of the values in a range.

Parameters

  • idx: The index of the range

Returns a VerticaType object describing the data type of the range values.

VString& Vertica::ValueRangeWriter::getStringRefLo()

inline Gets a VString object reference to set the range lower bound.

Returns A VString object reference.

Referenced by setNull().

VString& Vertica::ValueRangeWriter::getStringRefUp()

inline Gets a VString object reference to set the range upper bound.

Returns A VString object reference.

Referenced by setNull().

VUuid& Vertica::ValueRangeWriter::getUuidRefLo()

inline Gets a VUuid object reference to set the range lower bound.

Returns A VUuid object reference.

Referenced by setNull().

VUuid& Vertica::ValueRangeWriter::getUuidRefUp()

inline Gets a VUuid object reference to set the range upper bound.

Returns A VUuid object reference.

Referenced by setNull().

void Vertica::ValueRangeWriter::setBoolLo(vbool r)

inline Sets a range bound as a BOOLEAN value.

Parameters

  • r: The BOOLEAN value to set the range bound.

Referenced by setNull().

void Vertica::VerticaValueRange::setCanHaveNulls(size_t idx, bool u)

inlineprotectedinherited

Set a flag to indicate that some values in this range can be NULL.

Parameters

  • idx: The argument range number.
  • u: true if there can be NULL values in the range, else false.
void Vertica::ValueRangeWriter::setDateLo(DateADT r)

inline Sets a range bound as a DATE value.

Parameters

  • r: The DATE value to set the range bound.

Referenced by setNull().

void Vertica::ValueRangeWriter::setFloatLo(vfloat r)

inline Sets a range bound as a FLOAT value to the output row.

Parameters

  • r: The FLOAT value to set the range bound.

Referenced by setNull().

void Vertica::ValueRangeWriter::setIntervalLo(Interval r)

inline Sets a range bound as an INTERVAL value.

Parameters

  • r: The INTERVAL value to set the range bound.

Referenced by setNull().

void Vertica::ValueRangeWriter::setIntervalYMLo(IntervalYM r)

inline Sets a range bound as an INTERVAL YEAR TO MONTH value.

Parameters

  • r: The INTERVAL YEAR TO MONTH value to set the range bound.
void Vertica::ValueRangeWriter::setIntLo(vint r)

inline Sets a range bound as an INTEGER value.

Parameters

  • r: The INTEGER value to set the range bound.

Referenced by setNull().

void Vertica::ValueRangeWriter::setNull()

inline Sets to NULL all values in this range.

Note As side effect of this method, this range will be marked as having NULL values and its sortedness set to EE::SORT_CONSTANT.

void Vertica::ValueRangeWriter::setTimeLo(TimeADT r)

inline Sets a range bound as a TIMESTAMP value.

Parameters

  • r: The TIMESTAMP value to set the range bound.

Referenced by setNull().

void Vertica::ValueRangeWriter::setTimestampLo(Timestamp r)

inline Sets a range bound as a TIMESTAMP value.

Parameters

  • r: The TIMESTAMP value to set the range bound.

Referenced by setNull().

void Vertica::ValueRangeWriter::setTimestampTzLo(TimestampTz r)

inline Sets a range bound as a TIMESTAMP WITH TIMEZONE value.

Parameters

  • r: The TIMESTAMP WITH TIMEZONE value to set the range bound.

Referenced by setNull().

void Vertica::ValueRangeWriter::setTimeTzLo(TimeTzADT r)

inline Sets a range bound as a TIMESTAMP WITH TIMEZONE value.

Parameters

  • r: The TIMESTAMP WITH TIMEZONE value to set the range bound.

Referenced by setNull().