[to #52406314] fix serval PL/SQL bugs

This commit is contained in:
obdev
2023-09-27 06:10:09 +00:00
committed by ob-robot
parent 3c716958dd
commit a3b0891c86
8 changed files with 121 additions and 37 deletions

View File

@ -709,11 +709,18 @@ int ObRawExprPrinter::print(ObOpRawExpr *expr)
case T_OBJ_ACCESS_REF: {
ObObjAccessRawExpr *obj_access_expr = static_cast<ObObjAccessRawExpr*>(expr);
bool parent_is_table = false;
for (int64_t i = 0; OB_SUCC(ret) && i < obj_access_expr->get_orig_access_idxs().count(); ++i) {
pl::ObObjAccessIdx &current_idx = obj_access_expr->get_orig_access_idxs().at(i);
ObIArray<pl::ObObjAccessIdx> &access_idxs = obj_access_expr->get_orig_access_idxs();
int64_t start = access_idxs.count() - 1;
for (;start > 0; --start) {
if (OB_NOT_NULL(access_idxs.at(start).get_sysfunc_)) {
break;
}
}
for (int64_t i = start; OB_SUCC(ret) && i < access_idxs.count(); ++i) {
pl::ObObjAccessIdx &current_idx = access_idxs.at(i);
if (parent_is_table) {
DATA_PRINTF("(");
} else if (i > 0) {
} else if (i > start) {
DATA_PRINTF(".");
}
if (OB_NOT_NULL(current_idx.get_sysfunc_)) {