OmniSciDB
a5dc49c757
|
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) |
bool | is_distinct_supported (SQLAgg const agg_kind) |
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) |
SqlWindowFrameBoundType | determine_frame_bound_type (const RexWindowFunctionOperator::RexWindowBound &bound) |
bool | is_negative_framing_bound (const SQLTypes t, const Datum &d, bool is_time_unit=false) |
using anonymous_namespace{RelAlgTranslator.cpp}::Handler = typedef std::shared_ptr<Analyzer::Expr> (RelAlgTranslator::*)(RexScalar const*) const |
Definition at line 184 of file RelAlgTranslator.cpp.
using anonymous_namespace{RelAlgTranslator.cpp}::IndexedHandler = typedef std::pair<std::type_index, Handler> |
Definition at line 185 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 47 of file RelAlgTranslator.cpp.
References SQLTypeInfo::is_decimal(), SQLTypeInfo::set_precision(), and SQLTypeInfo::set_scale().
Referenced by RelAlgTranslator::translateLiteral().
|
noexcept |
Definition at line 84 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().
SqlWindowFrameBoundType anonymous_namespace{RelAlgTranslator.cpp}::determine_frame_bound_type | ( | const RexWindowFunctionOperator::RexWindowBound & | bound | ) |
Definition at line 2170 of file RelAlgTranslator.cpp.
References RexWindowFunctionOperator::RexWindowBound::bound_expr, CHECK, CURRENT_ROW, EXPR_FOLLOWING, EXPR_PRECEDING, RexWindowFunctionOperator::RexWindowBound::following, RexWindowFunctionOperator::RexWindowBound::is_current_row, RexWindowFunctionOperator::RexWindowBound::preceding, RexWindowFunctionOperator::RexWindowBound::unbounded, UNBOUNDED_FOLLOWING, UNBOUNDED_PRECEDING, and UNKNOWN.
Referenced by RelAlgTranslator::translateWindowFunction().
ExtractField anonymous_namespace{RelAlgTranslator.cpp}::determineTimeUnit | ( | const SQLTypes & | window_frame_bound_type, |
const Analyzer::Constant * | const_expr | ||
) |
Definition at line 2145 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 2129 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 804 of file RelAlgTranslator.cpp.
References CHECK, g_enable_watchdog, g_watchdog_in_clause_max_num_elem_bitmap, 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 877 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, g_enable_watchdog, g_watchdog_in_clause_max_num_elem_bitmap, 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 844 of file RelAlgTranslator.cpp.
References CHECK, g_enable_watchdog, g_watchdog_in_clause_max_num_elem_bitmap, and UNLIKELY.
Referenced by RelAlgTranslator::getInIntegerSetExpr().
std::string anonymous_namespace{RelAlgTranslator.cpp}::get_datetimeplus_rewrite_funcname | ( | const SQLOps & | op | ) |
Definition at line 1366 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 645 of file RelAlgTranslator.cpp.
References threading_serial::async(), result_set::can_use_parallel_algorithms(), cpu_threads(), datum_from_scalar_tv(), g_enable_watchdog, g_watchdog_in_clause_max_num_input_rows, 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 269 of file RelAlgTranslator.cpp.
References SQLTypeInfo::is_boolean(), SQLTypeInfo::is_number(), SQLTypeInfo::is_string(), SQLTypeInfo::is_time(), and kMODE.
Referenced by RelAlgTranslator::translateAggregateRex().
bool anonymous_namespace{RelAlgTranslator.cpp}::is_distinct_supported | ( | SQLAgg const | agg_kind | ) |
Definition at line 275 of file RelAlgTranslator.cpp.
Referenced by RelAlgTranslator::translateAggregateRex().
bool anonymous_namespace{RelAlgTranslator.cpp}::is_negative_framing_bound | ( | const SQLTypes | t, |
const Datum & | d, | ||
bool | is_time_unit = false |
||
) |
Definition at line 2195 of file RelAlgTranslator.cpp.
References Datum::bigintval, CHECK, Datum::doubleval, Datum::intval, kBIGINT, kDECIMAL, kDOUBLE, kINT, kNUMERIC, kSMALLINT, kTINYINT, Datum::smallintval, and Datum::tinyintval.
Referenced by RelAlgTranslator::translateFrameBoundExpr(), and RelAlgTranslator::translateWindowFunction().
std::array<IndexedHandler, sizeof...(Ts)> anonymous_namespace{RelAlgTranslator.cpp}::makeHandlers | ( | ) |
Definition at line 188 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 1298 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 2117 of file RelAlgTranslator.cpp.
References Descending, and First.
Referenced by RelAlgTranslator::translateWindowFunction().
|
inline |
Definition at line 1272 of file RelAlgTranslator.cpp.
Referenced by RelAlgTranslator::translateDateadd(), RelAlgTranslator::translateDatediff(), RelAlgTranslator::translateDatepart(), and RelAlgTranslator::translateExtract().