Class RelAlgTranslator

class RelAlgTranslator

Public Functions

RelAlgTranslator(const Catalog_Namespace::Catalog &cat, 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> translateScalarRex(const RexScalar *rex) const
bool generated_geos_ops()

Public Static Functions

std::shared_ptr<Analyzer::Expr> translateAggregateRex(const RexAgg *rex, const std::vector<std::shared_ptr<Analyzer::Expr>> &scalar_sources)
std::shared_ptr<Analyzer::Expr> translateLiteral(const RexLiteral *rex_literal)

Private Functions

std::shared_ptr<Analyzer::Expr> translateScalarSubquery(const RexSubQuery *rex_subquery) const
std::shared_ptr<Analyzer::Expr> translateInput(const RexInput *rex_input) const
std::shared_ptr<Analyzer::Expr> translateUoper(const RexOperator *rex_operator) const
std::shared_ptr<Analyzer::Expr> translateInOper(const RexOperator *rex_operator) const
std::shared_ptr<Analyzer::Expr> getInIntegerSetExpr(std::shared_ptr<Analyzer::Expr> arg, const ResultSet &val_set) const
std::shared_ptr<Analyzer::Expr> translateOper(const RexOperator *rex_operator) const
std::shared_ptr<Analyzer::Expr> translateOverlapsOper(const RexOperator *rex_operator) const
std::shared_ptr<Analyzer::Expr> translateCase(const RexCase *rex_case) const
std::shared_ptr<Analyzer::Expr> translateWidthBucket(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateLike(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateRegexp(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateLikely(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateUnlikely(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateExtract(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateDateadd(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateDatePlusMinus(const RexOperator *rex_operator) const
std::shared_ptr<Analyzer::Expr> translateDatediff(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateDatepart(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateLength(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateKeyForString(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateSampleRatio(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateCurrentUser(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateLower(const RexFunctionOperator *rex_function) const
Analyzer::ExpressionPtr translateCardinality(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateItem(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateCurrentDate() const
std::shared_ptr<Analyzer::Expr> translateCurrentTime() const
std::shared_ptr<Analyzer::Expr> translateCurrentTimestamp() const
std::shared_ptr<Analyzer::Expr> translateDatetime(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateHPTLiteral(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateAbs(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateSign(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateOffsetInFragment() const
Analyzer::ExpressionPtr translateArrayFunction(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateFunction(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateWindowFunction(const RexWindowFunctionOperator *rex_window_function) const
Analyzer::ExpressionPtrVector translateFunctionArgs(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateUnaryGeoFunction(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateBinaryGeoFunction(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateTernaryGeoFunction(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateFunctionWithGeoArg(const RexFunctionOperator *rex_function) const
std::shared_ptr<Analyzer::Expr> translateGeoComparison(const RexOperator *rex_operator) const
std::shared_ptr<Analyzer::Expr> translateGeoProjection(const RexFunctionOperator *rex_function, SQLTypeInfo &ti, const bool with_bounds) const
std::shared_ptr<Analyzer::Expr> translateUnaryGeoPredicate(const RexFunctionOperator *rex_function, SQLTypeInfo &ti, const bool with_bounds) const
std::shared_ptr<Analyzer::Expr> translateBinaryGeoPredicate(const RexFunctionOperator *rex_function, SQLTypeInfo &ti, const bool with_bounds) const
std::shared_ptr<Analyzer::Expr> translateBinaryGeoConstructor(const RexFunctionOperator *rex_function, SQLTypeInfo &ti, const bool with_bounds) const
std::shared_ptr<Analyzer::Expr> translateGeoOverlapsOper(const RexOperator *rex_operator) const
std::vector<std::shared_ptr<Analyzer::Expr>> translateGeoFunctionArg(const RexScalar *rex_scalar, SQLTypeInfo &arg_ti, const bool with_bounds, const bool with_render_group, const bool expand_geo_col, const bool is_projection = false, const bool use_geo_expressions = false, const bool try_to_compress = false, const bool allow_gdal_transforms = false) const
std::vector<std::shared_ptr<Analyzer::Expr>> translateGeoColumn(const RexInput *rex_input, SQLTypeInfo &ti, const bool with_bounds, const bool with_render_group, const bool expand_geo_col) const
std::vector<std::shared_ptr<Analyzer::Expr>> translateGeoLiteral(const RexLiteral *rex_literal, SQLTypeInfo &ti, bool with_bounds) const

Private Members

const Catalog_Namespace::Catalog &cat_
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_