580 auto arg_expr =
arg_->analyze(catalog, query, allow_tlist_ref);
581 auto lower_expr =
lower_->analyze(catalog, query, allow_tlist_ref);
582 auto upper_expr =
upper_->analyze(catalog, query, allow_tlist_ref);
585 arg_expr->get_type_info(),
586 lower_expr->get_type_info(),
590 makeExpr<Analyzer::BinOper>(
kBOOLEAN,
593 arg_expr->add_cast(new_left_type)->decompress(),
594 lower_expr->add_cast(new_right_type)->decompress());
596 arg_expr->get_type_info(),
597 lower_expr->get_type_info(),
600 auto upper_pred = makeExpr<Analyzer::BinOper>(
604 arg_expr->deep_copy()->add_cast(new_left_type)->decompress(),
605 upper_expr->add_cast(new_right_type)->decompress());
606 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)