@@ -19,30 +19,47 @@ JOIN pg_catalog.pg_tablespace t ON d.dattablespace = t.oid
1919WHERE d .datname ~ :pattern
2020ORDER BY 1
2121-- name: list_roles_9
22- SELECT r .rolname ,
23- r .rolsuper ,
24- r .rolinherit ,
25- r .rolcreaterole ,
26- r .rolcreatedb ,
27- r .rolcanlogin ,
28- r .rolconnlimit ,
29- r .rolvaliduntil ,
30- ARRAY(SELECT b .rolname FROM pg_catalog .pg_auth_members m JOIN pg_catalog .pg_roles b ON (m .roleid = b .oid ) WHERE m .member = r .oid ) as memberof,
31- pg_catalog .shobj_description (r .oid , ' pg_authid' ) AS description,
32- r .rolreplication
22+ SELECT r .rolname as role_name,
23+ ARRAY_TO_STRING(
24+ ARRAY_REMOVE(
25+ ARRAY[
26+ CASE WHEN r .rolsuper THEN ' Superuser' END
27+ , CASE WHEN r .rolcreaterole THEN ' Create role' END
28+ , CASE WHEN r .rolcreatedb THEN ' Create DB' END
29+ , CASE WHEN r .rolreplication THEN ' Replication' END
30+ , CASE WHEN r .rolbypassrls THEN ' Bypass RLS' END
31+ , CASE WHEN r .rolconnlimit != - 1 THEN r .rolconnlimit ::text END
32+ , CASE WHEN r .rolvaliduntil is not null THEN r .rolvaliduntil ::text END
33+ , CASE WHEN not r .rolinherit THEN ' No Inherit' END
34+ , CASE WHEN not r .rolcanlogin THEN ' No Login' END
35+ ],
36+ NULL ),
37+ ' , ' ) AS attributes,
38+ ARRAY_TO_STRING(
39+ ARRAY(SELECT b .rolname
40+ FROM pg_catalog .pg_auth_members m
41+ JOIN pg_catalog .pg_roles b ON (m .roleid = b .oid )
42+ WHERE m .member = r .oid ),
43+ ' , ' ) as member_of
44+ , pg_catalog .shobj_description (r .oid , ' pg_authid' ) AS description
3345FROM pg_catalog .pg_roles r
34- WHERE r .rolname ~ :pattern
46+ WHERE CASE WHEN :pattern = ' .*' THEN r .rolname !~ ' ^pg_'
47+ ELSE r .rolname OPERATOR(pg_catalog.~) :pattern COLLATE pg_catalog .default
48+ END
3549ORDER BY 1
3650-- name: list_roles
37- SELECT u .usename AS rolname,
38- u .usesuper AS rolsuper,
39- TRUE AS rolinherit,
40- FALSE AS rolcreaterole,
41- u .usecreatedb AS rolcreatedb,
42- TRUE AS rolcanlogin,
43- - 1 AS rolconnlimit,
44- u .valuntil AS rolvaliduntil,
45- ARRAY(SELECT g .groname FROM pg_catalog .pg_group g WHERE u .usesysid = any(g .grolist )) AS memberof
51+ SELECT u .usename AS role_name,
52+ ARRAY_TO_STRING(
53+ ARRAY_REMOVE(
54+ ARRAY[
55+ CASE WHEN u .usesuper THEN ' Superuser' END
56+ , CASE WHEN u .usecreatedb THEN ' Create DB' END
57+ , CASE WHEN u .valuntil IS NOT NULL THEN u .valuntil ::text END
58+ ],
59+ NULL ),
60+ ' , ' ) AS attributes,
61+ ARRAY(SELECT g .groname FROM pg_catalog .pg_group g WHERE u .usesysid = any(g .grolist )) AS member_of,
62+ ' ' AS descripion
4663FROM pg_catalog .pg_user u
4764-- name: list_privileges
4865-- docs: ("\\dp", "\\dp [pattern]", "List roles.", aliases=("\\z",))
0 commit comments