diff --git a/src/sql/engine/table/ob_external_table_access_service.cpp b/src/sql/engine/table/ob_external_table_access_service.cpp index 485d52c80f..36567dc3fb 100644 --- a/src/sql/engine/table/ob_external_table_access_service.cpp +++ b/src/sql/engine/table/ob_external_table_access_service.cpp @@ -142,15 +142,16 @@ int ObExternalDataAccessDriver::get_file_list(const ObString &path, } else if (get_storage_type() == OB_STORAGE_FILE) { OZ (file_dirs.push_back(path)); for (int64_t i = 0; OB_SUCC(ret) && i < file_dirs.count(); i++) { - ObFullPathArrayOp dir_op(file_dirs, file_dirs.at(i), allocator); - ObFullPathArrayOp file_op(file_urls, file_dirs.at(i), allocator); + ObString file_dir = file_dirs.at(i); + ObFullPathArrayOp dir_op(file_dirs, file_dir, allocator); + ObFullPathArrayOp file_op(file_urls, file_dir, allocator); dir_op.set_dir_flag(); - if (file_dirs.at(i).case_compare(".") == 0 - || file_dirs.at(i).case_compare("..") == 0) { + if (file_dir.case_compare(".") == 0 + || file_dir.case_compare("..") == 0) { //do nothing - } else if (OB_FAIL(device_handle_->scan_dir(to_cstring(file_dirs.at(i)), file_op))) { + } else if (OB_FAIL(device_handle_->scan_dir(to_cstring(file_dir), file_op))) { LOG_WARN("scan dir failed", K(ret)); - } else if (OB_FAIL(device_handle_->scan_dir(to_cstring(file_dirs.at(i)), dir_op))) { + } else if (OB_FAIL(device_handle_->scan_dir(to_cstring(file_dir), dir_op))) { LOG_WARN("scan dir failed", K(ret)); } else if (file_dirs.count() + file_urls.count() > MAX_VISIT_COUNT) { ret = OB_ERR_UNEXPECTED;