aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_dump/dumputils.c
diff options
context:
space:
mode:
authorStephen Frost <sfrost@snowman.net>2016-05-24 20:10:16 -0400
committerStephen Frost <sfrost@snowman.net>2016-05-24 20:10:16 -0400
commit2e8b4bf80473d0e4a4254b417424e79195a9ce6a (patch)
treed6e3dbaf63969ee5898dbe661e68f6bbd008cf23 /src/bin/pg_dump/dumputils.c
parent2d2e40e3befd8b9e0d2757554537345b15fa6ea2 (diff)
downloadpostgresql-2e8b4bf80473d0e4a4254b417424e79195a9ce6a.tar.gz
postgresql-2e8b4bf80473d0e4a4254b417424e79195a9ce6a.zip
Qualify table usage in dumpTable() and use regclass
All of the other tables used in the query in dumpTable(), which is collecting column-level ACLs, are qualified, so we should be qualifying the pg_init_privs, the related sub-select against pg_class and the other queries added by the pg_dump catalog ACLs work. Also, use ::regclass (or ::pg_catalog.regclass, where appropriate) instead of using a poorly constructed query to get the OID for various catalog tables. Issues identified by Noah and Alvaro, patch by me.
Diffstat (limited to 'src/bin/pg_dump/dumputils.c')
-rw-r--r--src/bin/pg_dump/dumputils.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c
index c55a2fa14ec..0acdf54fa5e 100644
--- a/src/bin/pg_dump/dumputils.c
+++ b/src/bin/pg_dump/dumputils.c
@@ -715,20 +715,20 @@ buildACLQueries(PQExpBuffer acl_subquery, PQExpBuffer racl_subquery,
* these are run the initial privileges will be in place, even in a
* binary upgrade situation (see below).
*/
- printfPQExpBuffer(acl_subquery, "(SELECT array_agg(acl) FROM "
- "(SELECT unnest(coalesce(%s,acldefault(%s,%s))) AS acl "
+ printfPQExpBuffer(acl_subquery, "(SELECT pg_catalog.array_agg(acl) FROM "
+ "(SELECT pg_catalog.unnest(coalesce(%s,pg_catalog.acldefault(%s,%s))) AS acl "
"EXCEPT "
- "SELECT unnest(coalesce(pip.initprivs,acldefault(%s,%s)))) as foo)",
+ "SELECT pg_catalog.unnest(coalesce(pip.initprivs,pg_catalog.acldefault(%s,%s)))) as foo)",
acl_column,
obj_kind,
acl_owner,
obj_kind,
acl_owner);
- printfPQExpBuffer(racl_subquery, "(SELECT array_agg(acl) FROM "
- "(SELECT unnest(coalesce(pip.initprivs,acldefault(%s,%s))) AS acl "
+ printfPQExpBuffer(racl_subquery, "(SELECT pg_catalog.array_agg(acl) FROM "
+ "(SELECT pg_catalog.unnest(coalesce(pip.initprivs,pg_catalog.acldefault(%s,%s))) AS acl "
"EXCEPT "
- "SELECT unnest(coalesce(%s,acldefault(%s,%s)))) as foo)",
+ "SELECT pg_catalog.unnest(coalesce(%s,pg_catalog.acldefault(%s,%s)))) as foo)",
obj_kind,
acl_owner,
acl_column,
@@ -753,19 +753,19 @@ buildACLQueries(PQExpBuffer acl_subquery, PQExpBuffer racl_subquery,
{
printfPQExpBuffer(init_acl_subquery,
"CASE WHEN privtype = 'e' THEN "
- "(SELECT array_agg(acl) FROM "
- "(SELECT unnest(pip.initprivs) AS acl "
+ "(SELECT pg_catalog.array_agg(acl) FROM "
+ "(SELECT pg_catalog.unnest(pip.initprivs) AS acl "
"EXCEPT "
- "SELECT unnest(acldefault(%s,%s))) as foo) END",
+ "SELECT pg_catalog.unnest(pg_catalog.acldefault(%s,%s))) as foo) END",
obj_kind,
acl_owner);
printfPQExpBuffer(init_racl_subquery,
"CASE WHEN privtype = 'e' THEN "
- "(SELECT array_agg(acl) FROM "
- "(SELECT unnest(acldefault(%s,%s)) AS acl "
+ "(SELECT pg_catalog.array_agg(acl) FROM "
+ "(SELECT pg_catalog.unnest(pg_catalog.acldefault(%s,%s)) AS acl "
"EXCEPT "
- "SELECT unnest(pip.initprivs)) as foo) END",
+ "SELECT pg_catalog.unnest(pip.initprivs)) as foo) END",
obj_kind,
acl_owner);
}