@@ -41,7 +41,12 @@ SELECT obj_type 'TABLE' AS object_type,
4141 has_table_privilege(r .oid , t .oid , p .perm ) AS granted
4242FROM pg_catalog .pg_class AS t
4343 CROSS JOIN pg_catalog .pg_roles AS r
44- CROSS JOIN (VALUES (TEXT ' SELECT' ), (' INSERT' ), (' UPDATE' ), (' DELETE' ), (' TRUNCATE' ), (' REFERENCES' ), (' TRIGGER' ), (' MAINTAIN' )) AS p(perm)
44+ CROSS JOIN unnest(
45+ CASE WHEN current_setting(' server_version_num' )::integer < 170000
46+ THEN ARRAY[' SELECT' ,' INSERT' ,' UPDATE' ,' DELETE' ,' TRUNCATE' ,' REFERENCES' ,' TRIGGER' ]
47+ ELSE ARRAY[' SELECT' ,' INSERT' ,' UPDATE' ,' DELETE' ,' TRUNCATE' ,' REFERENCES' ,' TRIGGER' ,' MAINTAIN' ]
48+ END
49+ ) AS p(perm)
4550WHERE t .relnamespace ::regnamespace::name <> ' information_schema'
4651 AND t .relnamespace ::regnamespace::name NOT LIKE ' pg_%'
4752 AND t .relkind = ' r'
@@ -59,7 +64,12 @@ SELECT obj_type 'VIEW' AS object_type,
5964 has_table_privilege(r .oid , t .oid , p .perm ) AS granted
6065FROM pg_catalog .pg_class AS t
6166 CROSS JOIN pg_catalog .pg_roles AS r
62- CROSS JOIN (VALUES (TEXT ' SELECT' ), (' INSERT' ), (' UPDATE' ), (' DELETE' ), (' TRUNCATE' ), (' REFERENCES' ), (' TRIGGER' ), (' MAINTAIN' )) AS p(perm)
67+ CROSS JOIN unnest(
68+ CASE WHEN current_setting(' server_version_num' )::integer < 170000
69+ THEN ARRAY[' SELECT' ,' INSERT' ,' UPDATE' ,' DELETE' ,' TRUNCATE' ,' REFERENCES' ,' TRIGGER' ]
70+ ELSE ARRAY[' SELECT' ,' INSERT' ,' UPDATE' ,' DELETE' ,' TRUNCATE' ,' REFERENCES' ,' TRIGGER' ,' MAINTAIN' ]
71+ END
72+ ) AS p(perm)
6373WHERE t .relnamespace ::regnamespace::name <> ' information_schema'
6474 AND t .relnamespace ::regnamespace::name NOT LIKE ' pg_%'
6575 AND t .relkind = ' v'
0 commit comments