From 0f8747f94afb2553a372d02c224f8c8c9b941deb Mon Sep 17 00:00:00 2001 From: hezuojiao Date: Thu, 20 Jul 2023 12:12:38 +0000 Subject: [PATCH] Fix non-continuous auto-increment values --- src/share/ob_global_autoinc_service.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/share/ob_global_autoinc_service.cpp b/src/share/ob_global_autoinc_service.cpp index 1ea68f3d1..d4f0573c5 100644 --- a/src/share/ob_global_autoinc_service.cpp +++ b/src/share/ob_global_autoinc_service.cpp @@ -443,8 +443,12 @@ int ObGlobalAutoIncService::fetch_next_node_(const ObGAISNextAutoIncValReq &requ end_inclusive, sync_value))) { LOG_WARN("fail to require autoinc value from inner table", K(ret)); - } else if (OB_LIKELY(node.is_valid()) && OB_FAIL(node.update_available_value(end_inclusive))) { - LOG_WARN("fail to update available value", K(ret), K(node), K(end_inclusive)); + } else if (OB_LIKELY(node.is_valid() && node.last_available_value_ == start_inclusive - 1)) { + if (OB_FAIL(node.update_available_value(end_inclusive))) { + LOG_WARN("fail to update available value", K(ret), K(node), K(end_inclusive)); + } else { + LOG_TRACE("fetch next node done", K(request), K(node)); + } } else if (OB_FAIL(node.init(start_inclusive, end_inclusive, sync_value, autoinc_version))){ LOG_WARN("fail to init node", K(ret), K(start_inclusive), K(end_inclusive), K(sync_value)); } else {