581 auto arg_expr =
arg_->analyze(catalog, query, allow_tlist_ref);
582 auto lower_expr =
lower_->analyze(catalog, query, allow_tlist_ref);
583 auto upper_expr =
upper_->analyze(catalog, query, allow_tlist_ref);
586 arg_expr->get_type_info(),
587 lower_expr->get_type_info(),
591 makeExpr<Analyzer::BinOper>(
kBOOLEAN,
594 arg_expr->add_cast(new_left_type)->decompress(),
595 lower_expr->add_cast(new_right_type)->decompress());
597 arg_expr->get_type_info(),
598 lower_expr->get_type_info(),
601 auto upper_pred = makeExpr<Analyzer::BinOper>(
605 arg_expr->deep_copy()->add_cast(new_left_type)->decompress(),
606 upper_expr->add_cast(new_right_type)->decompress());
607 std::shared_ptr<Analyzer::Expr>
result =
std::unique_ptr< Expr > lower_
std::unique_ptr< Expr > upper_
std::unique_ptr< Expr > arg_
static SQLTypeInfo analyze_type_info(SQLOps op, const SQLTypeInfo &left_type, const SQLTypeInfo &right_type, SQLTypeInfo *new_left_type, SQLTypeInfo *new_right_type)