Class Parser::LikeExpr

class LikeExpr : public Parser::Expr

Public Functions

LikeExpr(bool n, bool i, Expr *a, Expr *l, Expr *e)
bool get_is_not() const
const Expr *get_arg() const
const Expr *get_like_string() const
const Expr *get_escape_string() const
std::shared_ptr<Analyzer::Expr> analyze(const Catalog_Namespace::Catalog &catalog, Analyzer::Query &query, TlistRefType allow_tlist_ref = TLIST_NONE) const
std::string to_string() const

Public Static Functions

std::shared_ptr<Analyzer::Expr> get(std::shared_ptr<Analyzer::Expr> arg_expr, std::shared_ptr<Analyzer::Expr> like_expr, std::shared_ptr<Analyzer::Expr> escape_expr, const bool is_ilike, const bool is_not)

Private Members

bool is_not_
bool is_ilike_
std::unique_ptr<Expr> arg_
std::unique_ptr<Expr> like_string_
std::unique_ptr<Expr> escape_string_

Private Static Functions

void check_like_expr(const std::string &like_str, char escape_char)
bool test_is_simple_expr(const std::string &like_str, char escape_char)
void erase_cntl_chars(std::string &like_str, char escape_char)