571 auto arg_expr =
arg_->analyze(catalog, query, allow_tlist_ref);
572 auto lower_expr =
lower_->analyze(catalog, query, allow_tlist_ref);
573 auto upper_expr =
upper_->analyze(catalog, query, allow_tlist_ref);
576 arg_expr->get_type_info(),
577 lower_expr->get_type_info(),
581 makeExpr<Analyzer::BinOper>(
kBOOLEAN,
584 arg_expr->add_cast(new_left_type)->decompress(),
585 lower_expr->add_cast(new_right_type)->decompress());
587 arg_expr->get_type_info(),
588 lower_expr->get_type_info(),
591 auto upper_pred = makeExpr<Analyzer::BinOper>(
595 arg_expr->deep_copy()->add_cast(new_left_type)->decompress(),
596 upper_expr->add_cast(new_right_type)->decompress());
597 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)