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 dataupBound: Base location to find the upper bound datasortedness: Sortedness of values in the rangedt: 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().