OmniSciDB
f17484ade4
|
Classes | |
struct | ByTypeIndex |
Typedefs | |
using | Handler = std::shared_ptr< Analyzer::Expr >(RelAlgTranslator::*)(RexScalar const *) const |
using | IndexedHandler = std::pair< std::type_index, Handler > |
Functions | |
SQLTypeInfo | build_type_info (const SQLTypes sql_type, const int scale, const int precision) |
std::pair< Datum, bool > | datum_from_scalar_tv (const ScalarTargetValue *scalar_tv, const SQLTypeInfo &ti) noexcept |
template<typename... Ts> | |
std::array< IndexedHandler, sizeof...(Ts)> | makeHandlers () |
bool | is_agg_supported_for_type (const SQLAgg &agg_kind, const SQLTypeInfo &arg_ti) |
std::shared_ptr< Analyzer::Expr > | get_in_values_expr (std::shared_ptr< Analyzer::Expr > arg, const ResultSet &val_set) |
void | fill_dictionary_encoded_in_vals (std::vector< int64_t > &in_vals, std::atomic< size_t > &total_in_vals_count, const ResultSet *values_rowset, const std::pair< int64_t, int64_t > values_rowset_slice, const StringDictionaryProxy *source_dict, const StringDictionaryProxy *dest_dict, const int64_t needle_null_val) |
void | fill_integer_in_vals (std::vector< int64_t > &in_vals, std::atomic< size_t > &total_in_vals_count, const ResultSet *values_rowset, const std::pair< int64_t, int64_t > values_rowset_slice) |
void | fill_dictionary_encoded_in_vals (std::vector< int64_t > &in_vals, std::atomic< size_t > &total_in_vals_count, const ResultSet *values_rowset, const std::pair< int64_t, int64_t > values_rowset_slice, const std::vector< LeafHostInfo > &leaf_hosts, const DictRef source_dict_ref, const DictRef dest_dict_ref, const int32_t dest_generation, const int64_t needle_null_val) |
void | validate_datetime_datepart_argument (const std::shared_ptr< Analyzer::Constant > literal_expr) |
std::shared_ptr < Analyzer::Constant > | makeNumericConstant (const SQLTypeInfo &ti, const long val) |
std::string | get_datetimeplus_rewrite_funcname (const SQLOps &op) |
std::vector< Analyzer::OrderEntry > | translate_collation (const std::vector< SortField > &sort_fields) |
size_t | determineTimeValMultiplierForTimeType (const SQLTypes &window_frame_bound_type, const Analyzer::Constant *const_expr) |
ExtractField | determineTimeUnit (const SQLTypes &window_frame_bound_type, const Analyzer::Constant *const_expr) |
Variables | |
const size_t | g_max_integer_set_size {1 << 25} |
using anonymous_namespace{RelAlgTranslator.cpp}::Handler = typedef std::shared_ptr<Analyzer::Expr> (RelAlgTranslator::*)(RexScalar const*) const |
Definition at line 181 of file RelAlgTranslator.cpp.
using anonymous_namespace{RelAlgTranslator.cpp}::IndexedHandler = typedef std::pair<std::type_index, Handler> |
Definition at line 182 of file RelAlgTranslator.cpp.
SQLTypeInfo anonymous_namespace{RelAlgTranslator.cpp}::build_type_info | ( | const SQLTypes | sql_type, |
const int | scale, | ||
const int | precision | ||
) |
Definition at line 44 of file RelAlgTranslator.cpp.
References SQLTypeInfo::is_decimal(), SQLTypeInfo::set_precision(), and SQLTypeInfo::set_scale().
Referenced by RelAlgTranslator::translateLiteral().
|
noexcept |
Definition at line 81 of file RelAlgTranslator.cpp.
References CHECK, inline_fp_null_val(), inline_int_null_val(), kBIGINT, kBOOLEAN, kCHAR, kDATE, kDECIMAL, kDOUBLE, kFLOAT, kINT, kNUMERIC, kSMALLINT, kTEXT, kTIME, kTIMESTAMP, kTINYINT, and kVARCHAR.
Referenced by get_in_values_expr(), RelAlgTranslator::translateInOper(), and RelAlgTranslator::translateScalarSubquery().
ExtractField anonymous_namespace{RelAlgTranslator.cpp}::determineTimeUnit | ( | const SQLTypes & | window_frame_bound_type, |
const Analyzer::Constant * | const_expr | ||
) |
Definition at line 2064 of file RelAlgTranslator.cpp.
References Datum::bigintval, CHECK, Analyzer::Constant::get_constval(), kDAY, kHOUR, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kMilliSecsPerDay, kMilliSecsPerHour, kMilliSecsPerMin, kMilliSecsPerSec, kMINUTE, kMONTH, kSECOND, kUNKNOWN_FIELD, and kYEAR.
Referenced by RelAlgTranslator::translateIntervalExprForWindowFraming().
size_t anonymous_namespace{RelAlgTranslator.cpp}::determineTimeValMultiplierForTimeType | ( | const SQLTypes & | window_frame_bound_type, |
const Analyzer::Constant * | const_expr | ||
) |
Definition at line 2048 of file RelAlgTranslator.cpp.
References Datum::bigintval, CHECK, Analyzer::Constant::get_constval(), kINTERVAL_DAY_TIME, kMilliSecsPerHour, kMilliSecsPerMin, kMilliSecsPerSec, kSecsPerHour, kSecsPerMin, and kUNKNOWN_FIELD.
Referenced by RelAlgTranslator::translateIntervalExprForWindowFraming().
void anonymous_namespace{RelAlgTranslator.cpp}::fill_dictionary_encoded_in_vals | ( | std::vector< int64_t > & | in_vals, |
std::atomic< size_t > & | total_in_vals_count, | ||
const ResultSet * | values_rowset, | ||
const std::pair< int64_t, int64_t > | values_rowset_slice, | ||
const StringDictionaryProxy * | source_dict, | ||
const StringDictionaryProxy * | dest_dict, | ||
const int64_t | needle_null_val | ||
) |
Definition at line 772 of file RelAlgTranslator.cpp.
References CHECK, g_enable_watchdog, g_max_integer_set_size, StringDictionaryProxy::getIdOfString(), StringDictionaryProxy::getString(), StringDictionary::INVALID_STR_ID, and UNLIKELY.
Referenced by RelAlgTranslator::getInIntegerSetExpr().
void anonymous_namespace{RelAlgTranslator.cpp}::fill_dictionary_encoded_in_vals | ( | std::vector< int64_t > & | in_vals, |
std::atomic< size_t > & | total_in_vals_count, | ||
const ResultSet * | values_rowset, | ||
const std::pair< int64_t, int64_t > | values_rowset_slice, | ||
const std::vector< LeafHostInfo > & | leaf_hosts, | ||
const DictRef | source_dict_ref, | ||
const DictRef | dest_dict_ref, | ||
const int32_t | dest_generation, | ||
const int64_t | needle_null_val | ||
) |
Definition at line 833 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, g_enable_watchdog, g_max_integer_set_size, StringDictionary::INVALID_STR_ID, translate_string_ids(), and UNLIKELY.
void anonymous_namespace{RelAlgTranslator.cpp}::fill_integer_in_vals | ( | std::vector< int64_t > & | in_vals, |
std::atomic< size_t > & | total_in_vals_count, | ||
const ResultSet * | values_rowset, | ||
const std::pair< int64_t, int64_t > | values_rowset_slice | ||
) |
Definition at line 807 of file RelAlgTranslator.cpp.
References CHECK, g_enable_watchdog, g_max_integer_set_size, and UNLIKELY.
Referenced by RelAlgTranslator::getInIntegerSetExpr().
std::string anonymous_namespace{RelAlgTranslator.cpp}::get_datetimeplus_rewrite_funcname | ( | const SQLOps & | op | ) |
Definition at line 1308 of file RelAlgTranslator.cpp.
Referenced by RelAlgTranslator::translateDatePlusMinus().
std::shared_ptr<Analyzer::Expr> anonymous_namespace{RelAlgTranslator.cpp}::get_in_values_expr | ( | std::shared_ptr< Analyzer::Expr > | arg, |
const ResultSet & | val_set | ||
) |
Definition at line 627 of file RelAlgTranslator.cpp.
References threading_serial::async(), result_set::can_use_parallel_algorithms(), cpu_threads(), datum_from_scalar_tv(), g_enable_watchdog, kCAST, and kENCODING_NONE.
Referenced by RelAlgTranslator::translateInOper().
bool anonymous_namespace{RelAlgTranslator.cpp}::is_agg_supported_for_type | ( | const SQLAgg & | agg_kind, |
const SQLTypeInfo & | arg_ti | ||
) |
Definition at line 266 of file RelAlgTranslator.cpp.
References SQLTypeInfo::is_boolean(), SQLTypeInfo::is_number(), SQLTypeInfo::is_string(), SQLTypeInfo::is_time(), and kMODE.
Referenced by RelAlgTranslator::translateAggregateRex().
std::array<IndexedHandler, sizeof...(Ts)> anonymous_namespace{RelAlgTranslator.cpp}::makeHandlers | ( | ) |
Definition at line 185 of file RelAlgTranslator.cpp.
Referenced by RelAlgTranslator::translateScalarRex().
std::shared_ptr<Analyzer::Constant> anonymous_namespace{RelAlgTranslator.cpp}::makeNumericConstant | ( | const SQLTypeInfo & | ti, |
const long | val | ||
) |
Definition at line 1240 of file RelAlgTranslator.cpp.
References CHECK, exp_to_scale(), SQLTypeInfo::get_scale(), SQLTypeInfo::get_type(), SQLTypeInfo::is_number(), kBIGINT, kDECIMAL, kDOUBLE, kFLOAT, kINT, kNUMERIC, kSMALLINT, and kTINYINT.
Referenced by RelAlgTranslator::translateAbs(), RelAlgTranslator::translateCardinality(), RelAlgTranslator::translateDatePlusMinus(), and RelAlgTranslator::translateSign().
std::vector<Analyzer::OrderEntry> anonymous_namespace{RelAlgTranslator.cpp}::translate_collation | ( | const std::vector< SortField > & | sort_fields | ) |
Definition at line 2036 of file RelAlgTranslator.cpp.
References Descending, and First.
Referenced by RelAlgTranslator::translateWindowFunction().
|
inline |
Definition at line 1214 of file RelAlgTranslator.cpp.
Referenced by RelAlgTranslator::translateDateadd(), RelAlgTranslator::translateDatediff(), RelAlgTranslator::translateDatepart(), and RelAlgTranslator::translateExtract().
const size_t anonymous_namespace{RelAlgTranslator.cpp}::g_max_integer_set_size {1 << 25} |
Definition at line 770 of file RelAlgTranslator.cpp.
Referenced by fill_dictionary_encoded_in_vals(), and fill_integer_in_vals().