Class JoinCoveredQualVisitor

class JoinCoveredQualVisitor : public ScalarExprVisitor<bool>

JoinCoveredQualVisitor returns true if the visited qual is true if and only if a corresponding equijoin qual is true. During the pre-filtered count we can elide the visited qual decreasing query run time while upper bounding the number of rows passing the filter. Currently only used for expressions of the form a OVERLAPS b AND Expr<a, b>. Strips Expr<a,b> if the expression has been pre-determined to be expensive to compute twice.

Public Functions

JoinCoveredQualVisitor(const JoinQualsPerNestingLevel &join_quals)
bool visitFunctionOper(const Analyzer::FunctionOper *func_oper) const
bool defaultResult() const

Private Members

std::vector<std::pair<const Analyzer::Expr *, const Analyzer::Expr *>> join_qual_pairs