OmniSciDB
a5dc49c757
|
#include <ExpressionRange.h>
Public Member Functions | |
int64_t | getIntMin () const |
int64_t | getIntMax () const |
double | getFpMin () const |
double | getFpMax () const |
void | setIntMin (const int64_t int_min) |
void | setIntMax (const int64_t int_max) |
void | setIntInvalidRange () |
void | setFpMin (const double fp_min) |
void | setFpMax (const double fp_max) |
ExpressionRangeType | getType () const |
int64_t | getBucket () const |
bool | hasNulls () const |
void | setHasNulls () |
void | setNulls (bool n) |
ExpressionRange | operator+ (const ExpressionRange &other) const |
ExpressionRange | operator- (const ExpressionRange &other) const |
ExpressionRange | operator* (const ExpressionRange &other) const |
ExpressionRange | operator/ (const ExpressionRange &other) const |
ExpressionRange | operator|| (const ExpressionRange &other) const |
bool | operator== (const ExpressionRange &other) const |
std::string | toString () const |
Static Public Member Functions | |
static ExpressionRange | makeIntRange (const int64_t int_min, const int64_t int_max, const int64_t bucket, const bool has_nulls) |
static ExpressionRange | makeDoubleRange (const double fp_min, const double fp_max, const bool has_nulls) |
static ExpressionRange | makeFloatRange (const float fp_min, const float fp_max, const bool has_nulls) |
static ExpressionRange | makeNullRange () |
static ExpressionRange | makeInvalidRange () |
static bool | typeSupportsRange (const SQLTypeInfo &ti) |
Private Member Functions | |
ExpressionRange (const int64_t int_min_in, const int64_t int_max_in, const int64_t bucket, const bool has_nulls_in) | |
ExpressionRange (const ExpressionRangeType type, const double fp_min_in, const double fp_max_in, const bool has_nulls_in) | |
ExpressionRange () | |
ExpressionRange (const ExpressionRangeType type) | |
template<class T , class BinOp > | |
ExpressionRange | binOp (const ExpressionRange &other, const BinOp &bin_op) const |
Private Attributes | |
ExpressionRangeType | type_ |
bool | has_nulls_ |
union { | |
int64_t int_min_ | |
double fp_min_ | |
}; | |
union { | |
int64_t int_max_ | |
double fp_max_ | |
}; | |
int64_t | bucket_ |
Definition at line 57 of file ExpressionRange.h.
|
inlineprivate |
Definition at line 177 of file ExpressionRange.h.
|
inlineprivate |
|
inlineprivate |
Definition at line 199 of file ExpressionRange.h.
Referenced by makeDoubleRange(), makeFloatRange(), makeIntRange(), makeInvalidRange(), and makeNullRange().
|
inlineexplicitprivate |
|
inlineprivate |
Definition at line 208 of file ExpressionRange.h.
References CHECK, Double, Float, fp_max_, fp_min_, has_nulls_, int_max_, int_min_, Integer, makeInvalidRange(), run_benchmark_import::result, and type_.
|
inline |
Definition at line 132 of file ExpressionRange.h.
References bucket_, CHECK, Invalid, and type_.
Referenced by anonymous_namespace{PerfectJoinHashTable.cpp}::get_bucketized_hash_entry_info().
|
inline |
Definition at line 99 of file ExpressionRange.h.
References CHECK, Double, Float, fp_max_, and type_.
Referenced by getExpressionRange().
|
inline |
Definition at line 94 of file ExpressionRange.h.
References CHECK, Double, Float, fp_min_, and type_.
Referenced by getExpressionRange().
|
inline |
Definition at line 89 of file ExpressionRange.h.
References CHECK, int_max_, Integer, and type_.
Referenced by apply_int_qual(), anonymous_namespace{ExpressionRange.cpp}::fpRangeFromDecimal(), anonymous_namespace{PerfectJoinHashTable.cpp}::get_bucketized_hash_entry_info(), anonymous_namespace{PerfectJoinHashTable.cpp}::get_hash_entry_count(), anonymous_namespace{ExpressionRange.cpp}::getDateTimePrecisionCastRange(), PerfectJoinHashTable::getHashJoinArgs(), PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu(), PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu(), anonymous_namespace{QueryMemoryDescriptor.cpp}::is_valid_int32_range(), QueryRewriter::rewriteConstrainedByInImpl(), and HashJoin::translateInnerToOuterStrDictProxies().
|
inline |
Definition at line 84 of file ExpressionRange.h.
References CHECK, int_min_, Integer, and type_.
Referenced by apply_int_qual(), anonymous_namespace{ExpressionRange.cpp}::fpRangeFromDecimal(), anonymous_namespace{PerfectJoinHashTable.cpp}::get_bucketized_hash_entry_info(), anonymous_namespace{PerfectJoinHashTable.cpp}::get_hash_entry_count(), anonymous_namespace{ExpressionRange.cpp}::getDateTimePrecisionCastRange(), PerfectJoinHashTable::getHashJoinArgs(), PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu(), PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu(), anonymous_namespace{QueryMemoryDescriptor.cpp}::is_valid_int32_range(), and HashJoin::translateInnerToOuterStrDictProxies().
|
inline |
Definition at line 130 of file ExpressionRange.h.
References type_.
Referenced by apply_simple_quals(), getExpressionRange(), and anonymous_namespace{QueryMemoryDescriptor.cpp}::pick_baseline_key_component_width().
|
inline |
Definition at line 137 of file ExpressionRange.h.
References CHECK, has_nulls_, Invalid, and type_.
Referenced by anonymous_namespace{ExpressionRange.cpp}::fpRangeFromDecimal(), anonymous_namespace{ExpressionRange.cpp}::getDateTimePrecisionCastRange(), getExpressionRange(), PerfectJoinHashTable::isOneToOneHashPossible(), anonymous_namespace{QueryMemoryDescriptor.cpp}::pick_baseline_key_component_width(), and HashJoin::translateInnerToOuterStrDictProxies().
|
inlinestatic |
Definition at line 66 of file ExpressionRange.h.
References Double, and ExpressionRange().
Referenced by ThriftSerializers::column_ranges_from_thrift(), anonymous_namespace{ExpressionRange.cpp}::fpRangeFromDecimal(), getExpressionRange(), and getLeafColumnRange().
|
inlinestatic |
Definition at line 72 of file ExpressionRange.h.
References ExpressionRange(), and Float.
Referenced by ThriftSerializers::column_ranges_from_thrift(), anonymous_namespace{ExpressionRange.cpp}::fpRangeFromDecimal(), getExpressionRange(), and getLeafColumnRange().
|
inlinestatic |
Definition at line 59 of file ExpressionRange.h.
References ExpressionRange().
Referenced by ThriftSerializers::column_ranges_from_thrift(), anonymous_namespace{ExpressionRange.cpp}::getDateTimePrecisionCastRange(), getExpressionRange(), PerfectJoinHashTable::getInstance(), getLeafColumnRange(), and HashJoin::translateInnerToOuterStrDictProxies().
|
inlinestatic |
Definition at line 82 of file ExpressionRange.h.
References ExpressionRange().
Referenced by binOp(), CodeGenerator::checkExpressionRanges(), ThriftSerializers::column_ranges_from_thrift(), getExpressionRange(), getLeafColumnRange(), operator/(), and operator||().
|
inlinestatic |
Definition at line 78 of file ExpressionRange.h.
References ExpressionRange(), and Null.
Referenced by getExpressionRange().
ExpressionRange ExpressionRange::operator* | ( | const ExpressionRange & | other | ) | const |
ExpressionRange ExpressionRange::operator+ | ( | const ExpressionRange & | other | ) | const |
ExpressionRange ExpressionRange::operator- | ( | const ExpressionRange & | other | ) | const |
ExpressionRange ExpressionRange::operator/ | ( | const ExpressionRange & | other | ) | const |
Definition at line 206 of file ExpressionRange.cpp.
References g_null_div_by_zero, int_max_, int_min_, Integer, makeInvalidRange(), and type_.
bool ExpressionRange::operator== | ( | const ExpressionRange & | other | ) | const |
ExpressionRange ExpressionRange::operator|| | ( | const ExpressionRange & | other | ) | const |
Definition at line 226 of file ExpressionRange.cpp.
References bucket_, CHECK, Double, Float, fp_max_, fp_min_, has_nulls_, int_max_, int_min_, Integer, Invalid, makeInvalidRange(), run_benchmark_import::result, and type_.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 109 of file ExpressionRange.h.
References CHECK, int_max_, Integer, and type_.
Referenced by apply_int_qual().
|
inline |
Definition at line 104 of file ExpressionRange.h.
References CHECK, int_min_, Integer, and type_.
Referenced by apply_int_qual().
|
inline |
Definition at line 144 of file ExpressionRange.h.
References has_nulls_, and anonymous_namespace{Utm.h}::n.
|
inline |
Definition at line 156 of file ExpressionRange.h.
References bucket_, Double, Float, fp_max_, fp_min_, has_nulls_, int_max_, int_min_, Integer, to_string(), and type_.
Referenced by PerfectJoinHashTable::getAlternativeCacheKey().
|
static |
Definition at line 278 of file ExpressionRange.cpp.
References SQLTypeInfo::get_compression(), SQLTypeInfo::get_elem_type(), SQLTypeInfo::is_array(), SQLTypeInfo::is_boolean(), SQLTypeInfo::is_number(), SQLTypeInfo::is_string(), SQLTypeInfo::is_time(), and kENCODING_DICT.
Referenced by Executor::computeColRangesCache(), and getExpressionRange().
union { ... } |
union { ... } |
|
private |
Definition at line 249 of file ExpressionRange.h.
Referenced by getBucket(), operator||(), and toString().
double ExpressionRange::fp_max_ |
Definition at line 247 of file ExpressionRange.h.
Referenced by binOp(), getFpMax(), operator==(), operator||(), setFpMax(), and toString().
double ExpressionRange::fp_min_ |
Definition at line 243 of file ExpressionRange.h.
Referenced by binOp(), getFpMin(), operator==(), operator||(), setFpMin(), and toString().
|
private |
Definition at line 240 of file ExpressionRange.h.
Referenced by binOp(), hasNulls(), operator==(), operator||(), setHasNulls(), setNulls(), and toString().
int64_t ExpressionRange::int_max_ |
Definition at line 246 of file ExpressionRange.h.
Referenced by binOp(), getIntMax(), operator/(), operator==(), operator||(), setIntInvalidRange(), setIntMax(), and toString().
int64_t ExpressionRange::int_min_ |
Definition at line 242 of file ExpressionRange.h.
Referenced by binOp(), getIntMin(), operator/(), operator==(), operator||(), setIntInvalidRange(), setIntMin(), and toString().
|
private |
Definition at line 239 of file ExpressionRange.h.
Referenced by binOp(), ExpressionRange(), getBucket(), getFpMax(), getFpMin(), getIntMax(), getIntMin(), getType(), hasNulls(), operator/(), operator==(), operator||(), setFpMax(), setFpMin(), setIntInvalidRange(), setIntMax(), setIntMin(), and toString().