OmniSciDB
72c90bc290
|
#include <RelAlgTranslator.h>
Public Member Functions | |
RelAlgTranslator (std::shared_ptr< const query_state::QueryState > q_s, const Executor *executor, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level, const std::vector< JoinType > &join_types, const time_t now, const bool just_explain) | |
std::shared_ptr< Analyzer::Expr > | translate (const RexScalar *rex) const |
bool | generated_geos_ops () |
template<typename T > | |
std::shared_ptr< Analyzer::Expr > | translateRexScalar (RexScalar const *) const |
template<> | |
std::shared_ptr< Analyzer::Expr > | translateRexScalar (RexScalar const *rex) const |
template<> | |
std::shared_ptr< Analyzer::Expr > | translateRexScalar (RexScalar const *rex) const |
template<> | |
std::shared_ptr< Analyzer::Expr > | translateRexScalar (RexScalar const *rex) const |
template<> | |
std::shared_ptr< Analyzer::Expr > | translateRexScalar (RexScalar const *rex) const |
template<> | |
std::shared_ptr< Analyzer::Expr > | translateRexScalar (RexScalar const *rex) const |
template<> | |
std::shared_ptr< Analyzer::Expr > | translateRexScalar (RexScalar const *rex) const |
template<> | |
std::shared_ptr< Analyzer::Expr > | translateRexScalar (RexScalar const *rex) const |
Static Public Member Functions | |
static std::shared_ptr < Analyzer::Expr > | translateAggregateRex (const RexAgg *rex, const std::vector< std::shared_ptr< Analyzer::Expr >> &scalar_sources) |
static std::shared_ptr < Analyzer::Expr > | translateLiteral (const RexLiteral *) |
Private Attributes | |
std::shared_ptr< const query_state::QueryState > | query_state_ |
const Executor * | executor_ |
const std::unordered_map < const RelAlgNode *, int > | input_to_nest_level_ |
const std::vector< JoinType > | join_types_ |
time_t | now_ |
bool | generated_geos_ops_ |
const bool | just_explain_ |
robin_hood::unordered_map < RexScalar const *, std::shared_ptr < Analyzer::Expr > > | cache_ |
Definition at line 49 of file RelAlgTranslator.h.
|
inline |
Definition at line 51 of file RelAlgTranslator.h.
|
inline |
|
private |
Definition at line 923 of file RelAlgTranslator.cpp.
References threading_serial::async(), result_set::can_use_parallel_algorithms(), CHECK, CHECK_EQ, CHECK_GE, cpu_threads(), executor_, anonymous_namespace{RelAlgTranslator.cpp}::fill_dictionary_encoded_in_vals(), anonymous_namespace{RelAlgTranslator.cpp}::fill_integer_in_vals(), g_cluster, Catalog_Namespace::SysCatalog::getCatalog(), inline_int_null_val(), Catalog_Namespace::SysCatalog::instance(), and kENCODING_DICT.
Referenced by translateInOper().
|
private |
Definition at line 58 of file RelAlgTranslator.cpp.
References CHECK_EQ, RexFunctionOperator::getName(), kALL, kANY, kCAST, kONE, and translateScalarRex().
Referenced by translateOper().
std::shared_ptr< Analyzer::Expr > RelAlgTranslator::translate | ( | const RexScalar * | rex | ) | const |
Definition at line 259 of file RelAlgTranslator.cpp.
References cache_, and translateScalarRex().
Referenced by anonymous_namespace{RelAlgExecutor.cpp}::get_inputs_meta(), RelAlgExecutor::makeJoinQuals(), anonymous_namespace{RelAlgExecutor.cpp}::translate_quals(), anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources(), anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources_for_update(), and anonymous_namespace{RelAlgExecutor.cpp}::translate_targets().
|
private |
Definition at line 1608 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, RexOperator::getOperand(), kBOOLEAN, kLT, kONE, kUMINUS, anonymous_namespace{RelAlgTranslator.cpp}::makeNumericConstant(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
static |
Definition at line 278 of file RelAlgTranslator.cpp.
References CHECK_LE, CHECK_LT, Datum::doubleval, g_cluster, get_agg_type(), RexAgg::getKind(), RexAgg::getOperand(), anonymous_namespace{RelAlgTranslator.cpp}::is_agg_supported_for_type(), anonymous_namespace{RelAlgOptimizer.cpp}::is_distinct(), anonymous_namespace{RelAlgTranslator.cpp}::is_distinct_supported(), RexAgg::isDistinct(), kAPPROX_COUNT_DISTINCT, kAPPROX_QUANTILE, kBOOLEAN, kCOUNT_IF, kDOUBLE, kINT, kMODE, kSUM_IF, RexAgg::size(), ThriftSerializers::takes_arg(), and toString().
Referenced by anonymous_namespace{RelAlgExecutor.cpp}::translate_targets().
|
private |
Definition at line 1650 of file RelAlgTranslator.cpp.
References CHECK, get_nullable_logical_type_info(), SQLTypeInfo::get_subtype(), RexOperator::getType(), kARRAY, kBOOLEAN, kENCODING_DICT, kNULLT, kTEXT, shared::StringDictKey::kTransientDictKey, to_string(), TRANSIENT_DICT_ID, and translateFunctionArgs().
Referenced by translateFunction().
|
private |
Definition at line 948 of file RelAlgTranslatorGeo.cpp.
References func_resolve, SQLTypeInfo::get_input_srid(), SQLTypeInfo::get_output_srid(), RexFunctionOperator::getName(), RexOperator::getOperand(), Geospatial::GeoBase::kBUFFER, Geospatial::GeoBase::kCONCAVEHULL, Geospatial::GeoBase::kDIFFERENCE, kDOUBLE, kENCODING_NONE, kGEOMETRY, Geospatial::GeoBase::kINTERSECTION, kMULTIPOLYGON, Geospatial::GeoBase::kUNION, SQLTypeInfo::set_comp_param(), SQLTypeInfo::set_compression(), SQLTypeInfo::set_input_srid(), SQLTypeInfo::set_output_srid(), SQLTypeInfo::set_subtype(), SQLTypeInfo::set_type(), translateGeoFunctionArg(), and translateScalarRex().
Referenced by translateFunction(), and translateGeoFunctionArg().
|
private |
Definition at line 1345 of file RelAlgTranslatorGeo.cpp.
References run_benchmark_import::args, CHECK, CHECK_EQ, CHECK_GT, Datum::doubleval, fold_expr(), func_resolve, g_enable_geo_ops_on_uncompressed_coords, SQLTypeInfo::get_comp_param(), SQLTypeInfo::get_compression(), Geospatial::get_compression_scheme(), SQLTypeInfo::get_input_srid(), SQLTypeInfo::get_output_srid(), SQLTypeInfo::get_subtype(), SQLTypeInfo::get_type(), RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::getType(), Datum::intval, kBOOLEAN, kDOUBLE, kENCODING_GEOINT, kENCODING_NONE, kGEOGRAPHY, kINT, kLE, kLINESTRING, kMULTILINESTRING, kMULTIPOLYGON, kNOT, kNULLT, kONE, kPOINT, kPOLYGON, run_benchmark_import::result, RexOperator::size(), spatial_type::suffix(), TOLERANCE_GEOINT32, translateGeoColumn(), translateGeoFunctionArg(), and translateScalarRex().
Referenced by translateFunction(), and translateTernaryGeoFunction().
|
private |
Definition at line 1059 of file RelAlgTranslatorGeo.cpp.
References RexFunctionOperator::getName(), RexOperator::getOperand(), kBOOLEAN, Geospatial::GeoBase::kEQUALS, and translateGeoFunctionArg().
Referenced by translateFunction(), and translateGeoFunctionArg().
|
private |
Definition at line 1068 of file RelAlgTranslator.cpp.
References CHECK, RexOperator::getOperand(), RexOperator::getOperator(), kBBOX_INTERSECT, translateGeoBoundingBoxIntersectOper(), and translateScalarRex().
Referenced by translateOper().
|
private |
Definition at line 1538 of file RelAlgTranslator.cpp.
References RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::getType(), kARRAY, anonymous_namespace{RelAlgTranslator.cpp}::makeNumericConstant(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1084 of file RelAlgTranslator.cpp.
References RexCase::branchCount(), executor_, RexCase::getElse(), RexCase::getThen(), RexCase::getWhen(), Parser::CaseExpr::normalize(), and translateScalarRex().
|
private |
Definition at line 1574 of file RelAlgTranslator.cpp.
References Datum::bigintval, is_null(), kDATE, and now_.
Referenced by translateFunction().
|
private |
Definition at line 1581 of file RelAlgTranslator.cpp.
References Datum::bigintval, is_null(), kTIME, and now_.
Referenced by translateFunction().
|
private |
Definition at line 1588 of file RelAlgTranslator.cpp.
References Parser::TimestampLiteral::get(), and now_.
Referenced by translateDatetime(), and translateFunction().
|
private |
Definition at line 1464 of file RelAlgTranslator.cpp.
References Parser::UserLiteral::get(), and query_state_.
Referenced by translateFunction().
|
private |
Definition at line 1287 of file RelAlgTranslator.cpp.
References CHECK_EQ, field(), RexOperator::getOperand(), kBIGINT, kTIME, kTIMESTAMP, RexOperator::size(), to_dateadd_field(), translateScalarRex(), and anonymous_namespace{RelAlgTranslator.cpp}::validate_datetime_datepart_argument().
Referenced by translateFunction().
|
private |
Definition at line 1402 of file RelAlgTranslator.cpp.
References CHECK_EQ, field(), RexOperator::getOperand(), kBIGINT, RexOperator::size(), to_datediff_field(), translateScalarRex(), and anonymous_namespace{RelAlgTranslator.cpp}::validate_datetime_datepart_argument().
Referenced by translateFunction().
|
private |
Definition at line 1414 of file RelAlgTranslator.cpp.
References CHECK_EQ, ExtractExpr::generate(), RexOperator::getOperand(), RexOperator::size(), to_datepart_field(), translateScalarRex(), and anonymous_namespace{RelAlgTranslator.cpp}::validate_datetime_datepart_argument().
Referenced by translateFunction().
|
private |
Definition at line 1320 of file RelAlgTranslator.cpp.
References run_benchmark_import::args, CHECK, daMONTH, daSECOND, dtMONTH, dtSECOND, fold_expr(), anonymous_namespace{RelAlgTranslator.cpp}::get_datetimeplus_rewrite_funcname(), RexOperator::getOperand(), RexOperator::getOperator(), RexOperator::getType(), kBIGINT, kDATE, kDIVIDE, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kMINUS, kMULTIPLY, kONE, kPLUS, kTIME, kTIMESTAMP, kUMINUS, anonymous_namespace{RelAlgTranslator.cpp}::makeNumericConstant(), run_benchmark_import::result, rewrite_to_date_trunc(), RexOperator::size(), and translateScalarRex().
Referenced by translateOper().
|
private |
Definition at line 1592 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, RexOperator::getOperand(), RexOperator::size(), translateCurrentTimestamp(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1228 of file RelAlgTranslator.cpp.
References CHECK_EQ, ExtractExpr::generate(), DateTruncExpr::generate(), RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::size(), translateScalarRex(), and anonymous_namespace{RelAlgTranslator.cpp}::validate_datetime_datepart_argument().
Referenced by translateFunction().
|
private |
Definition at line 1722 of file RelAlgTranslator.cpp.
References run_benchmark_import::args, bind_function(), CHECK, CHECK_EQ, CHECK_LE, CHECK_LT, ext_arg_type_to_type_info(), func_resolve, RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::getType(), Int64, SQLTypeInfo::is_decimal(), kDIVIDE, kONE, kSMALLINT, kTEXT, LOG, Parser::OperExpr::normalize(), PBool, PDouble, PFloat, PInt16, PInt32, PInt64, PInt8, rewrite_to_date_trunc(), SQLTypeInfo::set_notnull(), RexOperator::size(), Datum::smallintval, translateAbs(), translateArrayFunction(), translateBinaryGeoConstructor(), translateBinaryGeoFunction(), translateBinaryGeoPredicate(), translateCardinality(), translateCurrentDate(), translateCurrentTime(), translateCurrentTimestamp(), translateCurrentUser(), translateDateadd(), translateDatediff(), translateDatepart(), translateDatetime(), translateExtract(), translateFunctionArgs(), translateFunctionWithGeoArg(), translateGeoProjection(), translateHPTLiteral(), translateItem(), translateKeyForString(), translateLength(), translateLike(), translateLikely(), translateMLPredict(), translateOffsetInFragment(), translatePCAProject(), translateRegexp(), translateSampleRatio(), translateScalarRex(), translateSign(), translateStringOper(), translateTernaryGeoFunction(), translateUnaryGeoConstructor(), translateUnaryGeoFunction(), translateUnaryGeoPredicate(), translateUnlikely(), translateWidthBucket(), and logger::WARNING.
|
private |
Definition at line 2728 of file RelAlgTranslator.cpp.
References run_benchmark_import::args, RexOperator::getOperand(), RexOperator::size(), and translateScalarRex().
Referenced by translateArrayFunction(), translateFunction(), translateKeyForString(), and translateStringOper().
|
private |
Definition at line 1785 of file RelAlgTranslatorGeo.cpp.
References run_benchmark_import::args, CHECK, CHECK_EQ, func_resolve, Geospatial::get_compression_scheme(), RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::getType(), Datum::intval, kINT, kPOINT, RexOperator::size(), translateGeoFunctionArg(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1894 of file RelAlgTranslatorGeo.cpp.
References CHECK, CHECK_EQ, CHECK_GT, SQLTypeInfo::get_type(), RexOperator::getOperand(), kBBOX_INTERSECT, kBOOLEAN, kONE, kPOINT, RexOperator::size(), and translateGeoColumn().
Referenced by translateBoundingBoxIntersectOper().
|
private |
Definition at line 28 of file RelAlgTranslatorGeo.cpp.
References run_benchmark_import::args, CHECK, CHECK_GE, CHECK_LT, SQLTypeInfo::get_physical_coord_cols(), SQLTypeInfo::get_type(), RexAbstractInput::getIndex(), RexInput::getSourceNode(), SQLTypeInfo::has_bounds(), input_to_nest_level_, IS_GEO, and SPIMAP_GEO_PHYSICAL_INPUT.
Referenced by translateBinaryGeoFunction(), translateGeoBoundingBoxIntersectOper(), and translateGeoFunctionArg().
|
private |
Definition at line 1764 of file RelAlgTranslatorGeo.cpp.
References fold_expr(), RexOperator::getOperand(), RexOperator::getOperator(), kBOOLEAN, kDOUBLE, kONE, RexOperator::size(), and translateScalarRex().
Referenced by translateOper().
|
private |
Definition at line 273 of file RelAlgTranslatorGeo.cpp.
References run_benchmark_import::args, CHECK, CHECK_EQ, CHECK_GE, Geospatial::GeoTypesFactory::createGeoType(), fold_expr(), func_resolve, SQLTypeInfo::get_compression(), SQLTypeInfo::get_input_srid(), SQLTypeInfo::get_output_srid(), SQLTypeInfo::get_subtype(), Analyzer::anonymous_namespace{Analyzer.cpp}::get_ti_from_geo(), SQLTypeInfo::get_type(), IS_GEO, anonymous_namespace{RelAlgExecutor.cpp}::is_projection(), IS_STRING, spatial_type::Transform::isUtm(), kARRAY, kCAST, kDOUBLE, kENCODING_GEOINT, kENCODING_NONE, kGEOGRAPHY, kGEOMETRY, kINT, kLINESTRING, kNULLT, kPOINT, kSMALLINT, kTEXT, kTINYINT, SQLTypeInfo::set_comp_param(), SQLTypeInfo::set_compression(), SQLTypeInfo::set_input_srid(), SQLTypeInfo::set_notnull(), SQLTypeInfo::set_output_srid(), SQLTypeInfo::set_subtype(), SQLTypeInfo::set_type(), to_string(), translateBinaryGeoConstructor(), translateBinaryGeoPredicate(), translateGeoColumn(), translateGeoLiteral(), translateInput(), translateLiteral(), translateScalarRex(), translateUnaryGeoConstructor(), and translateUnaryGeoPredicate().
Referenced by translateBinaryGeoConstructor(), translateBinaryGeoFunction(), translateBinaryGeoPredicate(), translateFunctionWithGeoArg(), translateGeoProjection(), translateTernaryGeoFunction(), translateUnaryGeoConstructor(), translateUnaryGeoFunction(), and translateUnaryGeoPredicate().
|
private |
Definition at line 117 of file RelAlgTranslatorGeo.cpp.
References run_benchmark_import::args, CHECK, Geospatial::compress_coords(), Datum::doubleval, SQLTypeInfo::get_compression(), SQLTypeInfo::get_output_srid(), SQLTypeInfo::get_type(), Geospatial::GeoTypesFactory::getGeoColumns(), SQLTypeInfo::has_bounds(), Datum::intval, kARRAY, kDOUBLE, kENCODING_GEOINT, kGEOMETRY, kINT, kMULTILINESTRING, kMULTIPOLYGON, kPOLYGON, kTEXT, kTINYINT, SQLTypeInfo::set_comp_param(), SQLTypeInfo::set_compression(), SQLTypeInfo::set_input_srid(), SQLTypeInfo::set_output_srid(), SQLTypeInfo::set_size(), SQLTypeInfo::set_subtype(), Datum::tinyintval, and translateLiteral().
Referenced by translateGeoFunctionArg().
|
private |
Definition at line 898 of file RelAlgTranslatorGeo.cpp.
References CHECK, RelRexToStringConfig::defaults(), func_resolve, RexFunctionOperator::getName(), RexOperator::getOperand(), Geospatial::GeoBase::kPROJECTION, RexFunctionOperator::toString(), and translateGeoFunctionArg().
Referenced by translateFunction().
|
private |
Definition at line 2780 of file RelAlgTranslator.cpp.
References CHECK_EQ, RexOperator::getOperand(), RexOperator::getType(), RexOperator::size(), to_string(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 703 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, anonymous_namespace{RelAlgTranslator.cpp}::datum_from_scalar_tv(), g_enable_watchdog, anonymous_namespace{RelAlgTranslator.cpp}::get_in_values_expr(), getInIntegerSetExpr(), RexOperator::getOperand(), just_explain_, kCAST, kENCODING_DICT, kENCODING_NONE, run_benchmark_import::result, RexOperator::size(), and translateScalarRex().
Referenced by translateOper().
|
private |
Definition at line 500 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, CHECK_GE, CHECK_LE, CHECK_LT, RelRexToStringConfig::defaults(), RexAbstractInput::getIndex(), RelAlgNode::getOutputMetainfo(), RexInput::getSourceNode(), input_to_nest_level_, join_types_, kTEXT, and LEFT.
Referenced by translateGeoFunctionArg().
|
private |
Definition at line 2483 of file RelAlgTranslator.cpp.
References Datum::bigintval, CHECK_NE, daINVALID, anonymous_namespace{RelAlgTranslator.cpp}::determineTimeUnit(), anonymous_namespace{RelAlgTranslator.cpp}::determineTimeValMultiplierForTimeType(), Analyzer::BinOper::get_left_operand(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), kBIGINT, kDATE, kDAY, kDECIMAL, kDOUBLE, kHOUR, kINT, kMINUTE, kMONTH, kNUMERIC, kSECOND, kSMALLINT, kTIME, kTIMESTAMP, kTINYINT, kYEAR, to_dateadd_field(), and UNREACHABLE.
Referenced by translateWindowFunction().
|
private |
Definition at line 1565 of file RelAlgTranslator.cpp.
References CHECK_EQ, RexOperator::getOperand(), kARRAY_AT, kONE, RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1433 of file RelAlgTranslator.cpp.
References run_benchmark_import::args, CHECK_EQ, RexFunctionOperator::getName(), kUNNEST, and translateFunctionArgs().
Referenced by translateFunction().
|
private |
Definition at line 1425 of file RelAlgTranslator.cpp.
References CHECK_EQ, RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1174 of file RelAlgTranslator.cpp.
References CHECK, Parser::LikeExpr::get(), RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1203 of file RelAlgTranslator.cpp.
References CHECK, RexOperator::getOperand(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
static |
Definition at line 363 of file RelAlgTranslator.cpp.
References Parser::StringLiteral::analyzeValue(), Parser::IntLiteral::analyzeValue(), Parser::FixedPtLiteral::analyzeValue(), run_benchmark_import::args, Datum::bigintval, Datum::boolval, anonymous_namespace{RelAlgTranslator.cpp}::build_type_info(), Datum::doubleval, logger::FATAL, kBIGINT, kBOOLEAN, kDATE, kDECIMAL, kDOUBLE, kGEOMETRY, kINT, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kNULLT, kTEXT, kTIME, kTIMESTAMP, LOG, and make_fp_constant().
Referenced by ResultSetLogicalValuesBuilder::build(), translateGeoFunctionArg(), and translateGeoLiteral().
|
private |
Definition at line 1100 of file RelAlgTranslator.cpp.
References CHECK_GE, RexOperator::getOperand(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1646 of file RelAlgTranslator.cpp.
Referenced by translateFunction().
|
private |
Definition at line 1026 of file RelAlgTranslator.cpp.
References CHECK, CHECK_GT, executor_, RexOperator::getOperand(), RexOperator::getOperator(), getQuantifiedRhs(), IS_COMPARISON, kBBOX_INTERSECT, kIN, kMINUS, kONE, kPLUS, Parser::OperExpr::normalize(), RexOperator::size(), translateBoundingBoxIntersectOper(), translateDatePlusMinus(), translateGeoComparison(), translateInOper(), translateScalarRex(), and translateUoper().
|
private |
Definition at line 1113 of file RelAlgTranslator.cpp.
References CHECK_GE, RexOperator::getOperand(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1189 of file RelAlgTranslator.cpp.
References CHECK, Parser::RegexpExpr::get(), RexOperator::getOperand(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
std::shared_ptr<Analyzer::Expr> RelAlgTranslator::translateRexScalar | ( | RexScalar const * | rex | ) | const |
Definition at line 205 of file RelAlgTranslator.cpp.
std::shared_ptr<Analyzer::Expr> RelAlgTranslator::translateRexScalar | ( | RexScalar const * | rex | ) | const |
Definition at line 216 of file RelAlgTranslator.cpp.
std::shared_ptr<Analyzer::Expr> RelAlgTranslator::translateRexScalar | ( | RexScalar const * | rex | ) | const |
Definition at line 231 of file RelAlgTranslator.cpp.
std::shared_ptr<Analyzer::Expr> RelAlgTranslator::translateRexScalar | ( | RexScalar const * | rex | ) | const |
Definition at line 211 of file RelAlgTranslator.cpp.
std::shared_ptr<Analyzer::Expr> RelAlgTranslator::translateRexScalar | ( | RexScalar const * | rex | ) | const |
Definition at line 221 of file RelAlgTranslator.cpp.
std::shared_ptr<Analyzer::Expr> RelAlgTranslator::translateRexScalar | ( | RexScalar const * | rex | ) | const |
Definition at line 226 of file RelAlgTranslator.cpp.
std::shared_ptr<Analyzer::Expr> RelAlgTranslator::translateRexScalar | ( | RexScalar const * | rex | ) | const |
Definition at line 200 of file RelAlgTranslator.cpp.
|
inline |
Definition at line 77 of file RelAlgTranslator.h.
|
private |
Definition at line 1452 of file RelAlgTranslator.cpp.
References CHECK_EQ, RexOperator::getOperand(), kDOUBLE, RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 236 of file RelAlgTranslator.cpp.
References cache_, CHECK, and anonymous_namespace{RelAlgTranslator.cpp}::makeHandlers().
Referenced by getQuantifiedRhs(), translate(), translateAbs(), translateBinaryGeoConstructor(), translateBinaryGeoFunction(), translateBoundingBoxIntersectOper(), translateCardinality(), translateCase(), translateDateadd(), translateDatediff(), translateDatepart(), translateDatePlusMinus(), translateDatetime(), translateExtract(), translateFunction(), translateFunctionArgs(), translateFunctionWithGeoArg(), translateGeoComparison(), translateGeoFunctionArg(), translateHPTLiteral(), translateInOper(), translateItem(), translateLength(), translateLike(), translateLikely(), translateMLPredict(), translateOper(), translatePCAProject(), translateRegexp(), translateSampleRatio(), translateSign(), translateTernaryGeoFunction(), translateUnlikely(), translateUoper(), translateWidthBucket(), and translateWindowFunction().
|
private |
Definition at line 452 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, anonymous_namespace{RelAlgTranslator.cpp}::datum_from_scalar_tv(), g_cluster, just_explain_, kENCODING_NONE, run_benchmark_import::result, and Datum::stringval.
|
private |
Definition at line 1624 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, RexOperator::getOperand(), kBOOLEAN, kEQ, kGT, kLT, kONE, anonymous_namespace{RelAlgTranslator.cpp}::makeNumericConstant(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1473 of file RelAlgTranslator.cpp.
References run_benchmark_import::args, BASE64_DECODE, BASE64_ENCODE, CONCAT, g_enable_string_functions, RexFunctionOperator::getName(), RexOperator::getType(), INITCAP, JAROWINKLER_SIMILARITY, JSON_VALUE, LEVENSHTEIN_DISTANCE, LOWER, LPAD, LTRIM, name_to_string_op_kind(), OVERLAY, POSITION, REGEXP_REPLACE, REGEXP_SUBSTR, REPEAT, REPLACE, REVERSE, RPAD, RTRIM, SPLIT_PART, SUBSTRING, translateFunctionArgs(), TRIM, TRY_STRING_CAST, and UPPER.
Referenced by translateFunction().
|
private |
Definition at line 1659 of file RelAlgTranslatorGeo.cpp.
References CHECK_EQ, Geospatial::get_compression_scheme(), SQLTypeInfo::get_input_srid(), SQLTypeInfo::get_output_srid(), SQLTypeInfo::get_subtype(), SQLTypeInfo::get_type(), RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::getType(), Datum::intval, kBOOLEAN, kDOUBLE, kGEOGRAPHY, kINT, kLE, kLINESTRING, kMULTIPOLYGON, kONE, kPOINT, kPOLYGON, run_benchmark_import::result, RexOperator::size(), spatial_type::suffix(), translateBinaryGeoFunction(), translateGeoFunctionArg(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 1081 of file RelAlgTranslatorGeo.cpp.
References func_resolve, SQLTypeInfo::get_input_srid(), SQLTypeInfo::get_output_srid(), RexFunctionOperator::getName(), RexOperator::getOperand(), Geospatial::GeoBase::kCONVEXHULL, kENCODING_NONE, kGEOMETRY, kMULTIPOLYGON, SQLTypeInfo::set_comp_param(), SQLTypeInfo::set_compression(), SQLTypeInfo::set_input_srid(), SQLTypeInfo::set_output_srid(), SQLTypeInfo::set_subtype(), SQLTypeInfo::set_type(), and translateGeoFunctionArg().
Referenced by translateFunction(), and translateGeoFunctionArg().
|
private |
Definition at line 1132 of file RelAlgTranslatorGeo.cpp.
References CHECK, CHECK_EQ, func_resolve, Geospatial::get_compression_scheme(), SQLTypeInfo::get_input_srid(), SQLTypeInfo::get_output_srid(), SQLTypeInfo::get_subtype(), SQLTypeInfo::get_type(), RexFunctionOperator::getName(), RexOperator::getOperand(), RexOperator::getType(), SQLTypeInfo::has_bounds(), Datum::intval, IS_GEO, IS_GEO_POLY, kARRAY, kGEOGRAPHY, kINT, kLINESTRING, kMULTILINESTRING, kPOINT, kTINYINT, SQLTypeInfo::set_notnull(), RexOperator::size(), spatial_type::suffix(), and translateGeoFunctionArg().
Referenced by translateFunction().
|
private |
Definition at line 1041 of file RelAlgTranslatorGeo.cpp.
References RexFunctionOperator::getName(), RexOperator::getOperand(), kBOOLEAN, Geospatial::GeoBase::kISEMPTY, Geospatial::GeoBase::kISVALID, and translateGeoFunctionArg().
Referenced by translateFunction(), and translateGeoFunctionArg().
|
private |
Definition at line 1210 of file RelAlgTranslator.cpp.
References CHECK, RexOperator::getOperand(), RexOperator::size(), and translateScalarRex().
Referenced by translateFunction().
|
private |
Definition at line 556 of file RelAlgTranslator.cpp.
References CHECK, CHECK_EQ, CHECK_NE, g_cluster, RexOperator::getOperand(), RexOperator::getOperator(), RexOperator::getType(), is_null(), kBOOLEAN, kCAST, kDATE, kENCODE_TEXT, kENCODING_DICT, kISNOTNULL, kISNULL, kMINUS, kNOT, kNULLT, kTEXT, shared::StringDictKey::kTransientDictKey, kUMINUS, kUNNEST, SQLTypeInfo::set_comp_param(), SQLTypeInfo::set_compression(), SQLTypeInfo::set_fixed_size(), SQLTypeInfo::set_type(), SQLTypeInfo::setStringDictKey(), RexOperator::size(), TRANSIENT_DICT_ID, and translateScalarRex().
Referenced by translateOper().
|
private |
Definition at line 1129 of file RelAlgTranslator.cpp.
References CHECK, RexOperator::getOperand(), kDOUBLE, kNULLT, gpu_enabled::lower_bound(), RexOperator::size(), translateScalarRex(), and gpu_enabled::upper_bound().
Referenced by translateFunction().
|
private |
Definition at line 2101 of file RelAlgTranslator.cpp.
References anonymous_namespace{QueryMemoryDescriptor.cpp}::any_of(), run_benchmark_import::args, BACKWARD_FILL, CHECK, CHECK_GE, Analyzer::ColumnVar::collect_column_var(), Analyzer::ColumnVar::colvar_comp(), CONDITIONAL_CHANGE_EVENT, COUNT, CURRENT_ROW, EXPR_FOLLOWING, EXPR_PRECEDING, FIRST_VALUE_IN_FRAME, FORWARD_FILL, g_bigint_count, Analyzer::Expr::get_type_info(), RexWindowFunctionOperator::getCollation(), RexWindowFunctionOperator::getFrameEndBound(), RexWindowFunctionOperator::getFrameStartBound(), RexWindowFunctionOperator::getKind(), RexOperator::getOperand(), RexWindowFunctionOperator::getOrderKeys(), RexWindowFunctionOperator::getPartitionKeys(), RexOperator::getType(), logger::INFO, Datum::intval, SQLTypeInfo::is_timeinterval(), Analyzer::WindowFunction::isFramingAvailableWindowFunc(), RexWindowFunctionOperator::isRows(), kBIGINT, kDECIMAL, kDOUBLE, kENCODING_DICT, kINT, kMULTIPLY, kNUMERIC, kSMALLINT, kTINYINT, LAG_IN_FRAME, LAST_VALUE_IN_FRAME, LEAD_IN_FRAME, LOG, Analyzer::WindowFunction::NONE, NTH_VALUE, NTH_VALUE_IN_FRAME, Analyzer::WindowFunction::RANGE, Analyzer::WindowFunction::ROW, RexOperator::size(), toString(), anonymous_namespace{RelAlgTranslator.cpp}::translate_collation(), translateIntervalExprForWindowFraming(), translateScalarRex(), UNBOUNDED_FOLLOWING, UNBOUNDED_PRECEDING, UNKNOWN, VLOG, and window_function_is_value().
|
mutableprivate |
Definition at line 245 of file RelAlgTranslator.h.
Referenced by translate(), and translateScalarRex().
|
private |
Definition at line 236 of file RelAlgTranslator.h.
Referenced by getInIntegerSetExpr(), translateCase(), and translateOper().
|
mutableprivate |
Definition at line 240 of file RelAlgTranslator.h.
Referenced by generated_geos_ops().
|
private |
Definition at line 237 of file RelAlgTranslator.h.
Referenced by translateGeoColumn(), and translateInput().
|
private |
Definition at line 238 of file RelAlgTranslator.h.
Referenced by translateInput().
|
private |
Definition at line 241 of file RelAlgTranslator.h.
Referenced by translateInOper(), and translateScalarSubquery().
|
private |
Definition at line 239 of file RelAlgTranslator.h.
Referenced by translateCurrentDate(), translateCurrentTime(), and translateCurrentTimestamp().
|
private |
Definition at line 235 of file RelAlgTranslator.h.
Referenced by translateCurrentUser().