diff --git a/src/sql/optimizer/ob_log_join.cpp b/src/sql/optimizer/ob_log_join.cpp index 7e2eafbf9..3f5268a81 100644 --- a/src/sql/optimizer/ob_log_join.cpp +++ b/src/sql/optimizer/ob_log_join.cpp @@ -1300,7 +1300,8 @@ int ObLogJoin::set_use_batch(ObLogicalOperator* root) } } if (OB_SUCC(ret)) { - if (ts->has_index_scan_filter() && ts->get_index_back() && ts->get_is_index_global()) { + if ((ts->has_index_scan_filter() && ts->get_index_back() && ts->get_is_index_global()) || + ts->is_text_retrieval_scan()) { // For the global index lookup, if there is a pushdown filter when scanning the index, // batch cannot be used. ts->set_use_batch(false); diff --git a/src/sql/optimizer/ob_log_subplan_filter.cpp b/src/sql/optimizer/ob_log_subplan_filter.cpp index bc11276b5..34cb70003 100644 --- a/src/sql/optimizer/ob_log_subplan_filter.cpp +++ b/src/sql/optimizer/ob_log_subplan_filter.cpp @@ -514,7 +514,11 @@ int ObLogSubPlanFilter::set_use_das_batch(ObLogicalOperator* root) } else if (root->is_table_scan()) { ObLogTableScan *ts = static_cast(root); if (!ts->get_range_conditions().empty()) { - ts->set_use_batch(enable_das_group_rescan_); + if (ts->is_text_retrieval_scan()) { + ts->set_use_batch(false); + } else { + ts->set_use_batch(enable_das_group_rescan_); + } } } else if (root->get_num_of_child() == 1) { if(OB_FAIL(SMART_CALL(set_use_das_batch(root->get_child(first_child))))) {