From 4334a2bd4b054cf21182d3b9db2f0e8f0470b144 Mon Sep 17 00:00:00 2001 From: siven Date: Thu, 25 Feb 2021 12:05:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9IsDuplicatePid=E5=92=8CIsElig?= =?UTF-8?q?iblePid=E5=85=A5=E5=8F=82=E7=9A=84pid=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/optimizer/commands/user.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gausskernel/optimizer/commands/user.cpp b/src/gausskernel/optimizer/commands/user.cpp index 25808ccde..30b82584a 100755 --- a/src/gausskernel/optimizer/commands/user.cpp +++ b/src/gausskernel/optimizer/commands/user.cpp @@ -97,8 +97,8 @@ static void DelRoleMems(const char* rolename, Oid roleid, const List* memberName /* to check whether the current schema belongs to one of the role in the llist */ static bool IsLockOnRelation(const LockInstanceData* instance); static List* GetCancelQuery(const char* user_name); -static bool IsEligiblePid(Oid rel_oid, Oid nsp_oid, Oid pid, Oid db_oid, Form_pg_class form, List* query_list); -static bool IsDuplicatePid(const List* query_list, Oid pid); +static bool IsEligiblePid(Oid rel_oid, Oid nsp_oid, ThreadId pid, Oid db_oid, Form_pg_class form, List* query_list); +static bool IsDuplicatePid(const List* query_list, ThreadId pid); static void CancelQuery(const char* user_name); extern void cancel_backend(ThreadId pid); static bool IsCurrentSchemaAttachRoles(List* roles); @@ -4022,7 +4022,7 @@ static List* GetCancelQuery(const char* user_name) } // check weather the pid is recorded already -static bool IsDuplicatePid(const List* query_list, Oid pid) +static bool IsDuplicatePid(const List* query_list, ThreadId pid) { LockInfoBuck* lock_info = NULL; ListCell* curcell = NULL; @@ -4046,7 +4046,7 @@ static bool IsDuplicatePid(const List* query_list, Oid pid) // : the relation is an ordinary table or is a sequence // : the oid of the relation is equale to the field 'relfilenode' in pg_class // : the pid locked the relation is unique for the existing records -static bool IsEligiblePid(Oid rel_oid, Oid nsp_oid, Oid pid, Oid db_oid, const Form_pg_class form, List* query_list) +static bool IsEligiblePid(Oid rel_oid, Oid nsp_oid, ThreadId pid, Oid db_oid, const Form_pg_class form, List* query_list) { if (db_oid && pid && rel_oid && (nsp_oid == form->relnamespace) && ('r' == form->relkind || 'S' == form->relkind) && (rel_oid == form->relfilenode) && (u_sess->proc_cxt.MyDatabaseId == db_oid) && !IsDuplicatePid(query_list, pid))