处理issue:并发重编译导致的记录同时更新报错

This commit is contained in:
lukeman
2024-03-28 21:08:09 +08:00
committed by yaoxin
parent 831798774f
commit a9d5ca16e7

View File

@ -1231,6 +1231,12 @@ void gsplsql_prepare_gs_depend_for_pkg_compile(PLpgSQL_package* pkg, bool isCrea
GSDEPEND_OBJECT_TYPE_INVALID,
isCreate ? GSDEPEND_REFOBJ_POS_IN_PKGALL_OBJ : GSDEPEND_REFOBJ_POS_IN_PKGRECOMPILE_OBJ
};
NameData schema_name_data;
NameData pkg_name_data;
StringInfoData object_name_data;
gsplsql_construct_non_empty_obj(&obj_desc, &schema_name_data, &pkg_name_data, &object_name_data);
uint32 hash_value = string_hash(object_name_data.data, object_name_data.len);
LockDatabaseObject(DependenciesRelationId, hash_value, 0, AccessExclusiveLock);
pkg->preRefObjectOidList = gsplsql_delete_objs(relation, &obj_desc);
heap_close(relation, RowExclusiveLock);
pkg->preSelfObjectList = gsplsql_get_depend_obj_list_by_specified_pkg(schema_name, pkg->pkg_signature,