575 auto arg_expr =
arg_->analyze(catalog, query, allow_tlist_ref);
576 auto lower_expr =
lower_->analyze(catalog, query, allow_tlist_ref);
577 auto upper_expr =
upper_->analyze(catalog, query, allow_tlist_ref);
580 arg_expr->get_type_info(),
581 lower_expr->get_type_info(),
585 makeExpr<Analyzer::BinOper>(
kBOOLEAN,
588 arg_expr->add_cast(new_left_type)->decompress(),
589 lower_expr->add_cast(new_right_type)->decompress());
591 arg_expr->get_type_info(),
592 lower_expr->get_type_info(),
595 auto upper_pred = makeExpr<Analyzer::BinOper>(
599 arg_expr->deep_copy()->add_cast(new_left_type)->decompress(),
600 upper_expr->add_cast(new_right_type)->decompress());
601 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)