From 351a0e38c7f8be0549fe25985a7232d6a37ed3e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Skrz=C4=99tnicki?= Date: Tue, 20 Feb 2024 16:00:27 +0100 Subject: [PATCH] Qualify `oid` colum fixing Postgres v16 incompatibility --- lib/srv/db/postgres/sql/activate-user.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/srv/db/postgres/sql/activate-user.sql b/lib/srv/db/postgres/sql/activate-user.sql index 0ac86e3e96a31..a9f79329db7f4 100644 --- a/lib/srv/db/postgres/sql/activate-user.sql +++ b/lib/srv/db/postgres/sql/activate-user.sql @@ -11,7 +11,7 @@ BEGIN -- If the user has active connections, make sure the provided roles -- match what the user currently has. IF EXISTS (SELECT usename FROM pg_stat_activity WHERE usename = username) THEN - SELECT CAST(array_agg(rolname) as varchar[]) INTO cur_roles FROM pg_auth_members JOIN pg_roles ON roleid = oid WHERE member=(SELECT oid FROM pg_roles WHERE rolname = username) AND rolname != 'teleport-auto-user'; + SELECT CAST(array_agg(rolname) as varchar[]) INTO cur_roles FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE member=(SELECT oid FROM pg_roles WHERE rolname = username) AND rolname != 'teleport-auto-user'; -- "a <@ b" checks if all unique elements in "a" are contained by -- "b". Using length check plus "contains" check to avoid sorting. IF ARRAY_LENGTH(roles, 1) = ARRAY_LENGTH(cur_roles, 1) AND roles <@ cur_roles THEN