diff --git a/src/common/backend/catalog/gs_package.cpp b/src/common/backend/catalog/gs_package.cpp index 7186bd80c..c6ff29542 100755 --- a/src/common/backend/catalog/gs_package.cpp +++ b/src/common/backend/catalog/gs_package.cpp @@ -1387,6 +1387,8 @@ static void RestorePkgValuesByPkgState(PLpgSQL_package* targetPkg, PackageRuntim if (fromVar->tableOfIndex != NULL) { MemoryContext temp = MemoryContextSwitchTo(targetVar->pkg->pkg_cxt); + hash_destroy(targetVar->tableOfIndex); + targetVar->tableOfIndex = NULL; targetVar->tableOfIndex = copyTableOfIndex(fromVar->tableOfIndex); MemoryContextSwitchTo(temp); } else if (fromVar->isnull) {