]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix buggy logic in isTempNamespaceInUse()
authorMichael Paquier <michael@paquier.xyz>
Wed, 15 Jan 2020 04:58:46 +0000 (13:58 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 15 Jan 2020 04:58:46 +0000 (13:58 +0900)
The logic introduced in this routine as of 246a6c8 would report an
incorrect result when a session calls it to check if the temporary
namespace owned by the session is in use or not.  It is possible to
optimize more the routine in this case to avoid a PGPROC lookup, but
let's keep the logic simple.  As this routine is used only by autovacuum
for now, there were no live bugs, still let's be correct for any future
code involving it.

Author: Michael Paquier
Reviewed-by: Julien Rouhaud
Discussion: https://postgr.es/m/20200113093703.GA41902@paquier.xyz
Backpatch-through: 11

src/backend/catalog/namespace.c

index ed38350d7ce080c91f990bacdc2fbcbf79a7353f..5f68cc137766f2236fc8bb907b76fee457ee2757 100644 (file)
@@ -3233,8 +3233,8 @@ isTempNamespaceInUse(Oid namespaceId)
 
        backendId = GetTempNamespaceBackendId(namespaceId);
 
-       if (backendId == InvalidBackendId ||
-               backendId == MyBackendId)
+       /* No such temporary namespace? */
+       if (backendId == InvalidBackendId)
                return false;
 
        /* Is the backend alive? */