Fix a dblink bug
This commit is contained in:
@ -768,8 +768,23 @@ int ObSelectStmtPrinter::print_order_by()
|
||||
const OrderItem &order_item = select_stmt->get_order_item(i);
|
||||
ObRawExpr *order_expr = order_item.expr_;
|
||||
int64_t sel_item_pos = -1;
|
||||
for (int64_t j = 0; j < select_stmt->get_select_item_size(); ++j) {
|
||||
if (order_item.expr_ == select_stmt->get_select_item(j).expr_) {
|
||||
if (OB_ISNULL(order_expr)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("unexpected null", K(ret));
|
||||
} else if (T_FUN_SYS_CAST == order_expr->get_expr_type() &&
|
||||
CM_IS_IMPLICIT_CAST(order_expr->get_extra())) {
|
||||
order_expr = order_expr->get_param_expr(0);
|
||||
}
|
||||
for (int64_t j = 0; OB_SUCC(ret) && j < select_stmt->get_select_item_size(); ++j) {
|
||||
ObRawExpr *select_expr = select_stmt->get_select_item(j).expr_;
|
||||
if (OB_ISNULL(select_expr)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("unexpected null", K(ret));
|
||||
} else if (T_FUN_SYS_CAST == select_expr->get_expr_type() &&
|
||||
CM_IS_IMPLICIT_CAST(select_expr->get_extra())) {
|
||||
select_expr = select_expr->get_param_expr(0);
|
||||
}
|
||||
if (order_expr == select_expr) {
|
||||
sel_item_pos = j + 1;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user