fix win magic bug

This commit is contained in:
SevenJ-swj
2023-09-09 13:09:00 +00:00
committed by ob-robot
parent 55437eb8e7
commit 576917492e

View File

@ -614,6 +614,9 @@ int ObTransformWinMagic::get_view_to_trans(ObDMLStmt *&stmt,
LOG_WARN("check view table basic failed", K(ret));
} else if (!is_valid) {
//do nothing
} else if (drill_down_view->get_from_item_size() != roll_up_view->get_from_item_size()
|| drill_down_view->get_table_size() != roll_up_view->get_table_size()) {
is_valid = false;
} else if (OB_FAIL(ObStmtComparer::compute_stmt_overlap(drill_down_view,
roll_up_view,
map_info))) {
@ -859,6 +862,15 @@ int ObTransformWinMagic::check_view_and_view(ObDMLStmt *main_stmt,
LOG_WARN("check outer stmt condition failed", K(ret));
}
if (OB_SUCC(ret) && map_info.from_map_.count() != roll_up_view->get_from_item_size()) {
is_valid = false;
}
for (int64_t i = 0; OB_SUCC(ret) && is_valid && i < map_info.from_map_.count(); i++) {
if (map_info.from_map_.at(i) == OB_INVALID_ID) {
is_valid = false;
}
}
//check if cnt agg
for (int64_t i = 0; OB_SUCC(ret) && is_valid && i < roll_up_view->get_select_item_size(); i++) {
ObRawExpr *expr = roll_up_view->get_select_item(i).expr_;