[CP] fix push down cte filter bug
This commit is contained in:
@ -2990,13 +2990,21 @@ int ObTransformPredicateMoveAround::pushdown_semi_info_right_filter(ObDMLStmt *s
|
|||||||
LOG_WARN("unexpected temp table info", K(ret));
|
LOG_WARN("unexpected temp table info", K(ret));
|
||||||
}
|
}
|
||||||
for (int64_t j = 0; OB_SUCC(ret) && j < info->table_infos_.count(); ++j) {
|
for (int64_t j = 0; OB_SUCC(ret) && j < info->table_infos_.count(); ++j) {
|
||||||
|
if (OB_ISNULL(info->table_infos_.at(j).table_item_)) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
LOG_WARN("unexpected error", K(ret));
|
||||||
|
} else if (info->table_infos_.at(j).table_item_->table_id_ == right_table->table_id_) {
|
||||||
ObDMLStmt *&upper_stmt = info->table_infos_.at(j).upper_stmt_;
|
ObDMLStmt *&upper_stmt = info->table_infos_.at(j).upper_stmt_;
|
||||||
if (upper_stmt == stmt) {
|
if (OB_UNLIKELY(upper_stmt != stmt)) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
LOG_WARN("unexpected error", K(ret));
|
||||||
|
} else {
|
||||||
upper_stmt = view_table->ref_query_;
|
upper_stmt = view_table->ref_query_;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user