Vertica::VerticaValueRange Class Reference
This class represents value ranges used in analyzing the output of UDSFs. A range is expressed as a minimum/maximum value (inclusive) pair.
Inheritance diagram for Vertica::VerticaValueRange:
Collaboration diagram for Vertica::VerticaValueRange:
| Classes | |
|---|---|
| struct | ValueRange |
| Public Types | |
|---|---|
| enum | BoundType { LO_BOUND, UP_BOUND } |
| Public Member Functions | |
|---|---|
| VerticaValueRange (size_t narg) | |
| bool | canHaveNulls (size_t idx) const |
| Indicates if there can be NULL values in the range. | |
| template | |
| const T * | getColPtr (size_t idx) const |
| template | |
| T * | getColPtrForWrite (size_t idx) |
| 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 |
| 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 | |
|---|---|
| struct | ::AnalyzeUDSFHandler |
| struct | ::UDxExecContext |
Detailed Description
This class represents value ranges used in analyzing the output of UDSFs. A range is expressed as a minimum/maximum value (inclusive) pair.
Instances of this class are used to allow UDSF developers to specify what the output range of of the function is. The UDSF developer is responsible to override ScalarFunction::getOutputRange() and set the function's output range using the knowledge of the input argument ranges passed as references to ScalarFunction::getOutputRange().
Member Function Documentation
◆addArg()
void Vertica::VerticaValueRange::addArg(char * loBound, char * upBound, const VerticaType & dt, EE::ValueSort sortedness, bool canHaveNulls)
inlineprotected
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
◆canHaveNulls()
bool Vertica::VerticaValueRange::canHaveNulls(size_t idx) const
inline 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.
Referenced by addArg().
◆getNumRanges()
size_t Vertica::VerticaValueRange::getNumRanges() const
inline Retrieve the number of range arguments.
Returns the number of range arguments held by this object.
◆getRangeType()
const VerticaType& Vertica::VerticaValueRange::getRangeType(size_t idx) const
inline 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.
◆setCanHaveNulls()
void Vertica::VerticaValueRange::setCanHaveNulls(size_t idx, bool u)
inlineprotected
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.