* 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,
{
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);
}
"%s AS initrlomacl "
"FROM pg_largeobject_metadata l "
"LEFT JOIN pg_init_privs pip ON "
- "(l.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_largeobject')"
+ "(l.oid = pip.objoid "
+ "AND pip.classoid = 'pg_largeobject'::regclass "
"AND pip.objsubid = 0) ",
username_subquery,
acl_subquery->data,
"%s as initrnspacl "
"FROM pg_namespace n "
"LEFT JOIN pg_init_privs pip "
- "ON (n.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_namespace') "
+ "ON (n.oid = pip.objoid "
+ "AND pip.classoid = 'pg_namespace'::regclass "
"AND pip.objsubid = 0) ",
username_subquery,
acl_subquery->data,
"t.typname[0] = '_' AND t.typelem != 0 AND "
"(SELECT typarray FROM pg_type te WHERE oid = t.typelem) = t.oid AS isarray "
"FROM pg_type t "
- "LEFT JOIN pg_init_privs pip "
- "ON (t.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_type') "
+ "LEFT JOIN pg_init_privs pip ON "
+ "(t.oid = pip.objoid "
+ "AND pip.classoid = 'pg_type'::regclass "
"AND pip.objsubid = 0) ",
acl_subquery->data,
racl_subquery->data,
"%s AS initraggacl "
"FROM pg_proc p "
"LEFT JOIN pg_init_privs pip ON "
- "(p.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_proc') "
+ "(p.oid = pip.objoid "
+ "AND pip.classoid = 'pg_proc'::regclass "
"AND pip.objsubid = 0) "
"WHERE p.proisagg AND ("
"p.pronamespace != "
"(%s p.proowner) AS rolname "
"FROM pg_proc p "
"LEFT JOIN pg_init_privs pip ON "
- "(p.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_proc') "
+ "(p.oid = pip.objoid "
+ "AND pip.classoid = 'pg_proc'::regclass "
"AND pip.objsubid = 0) "
"WHERE NOT proisagg "
"AND NOT EXISTS (SELECT 1 FROM pg_depend "
"CASE WHEN 'check_option=local' = ANY (c.reloptions) THEN 'LOCAL'::text "
"WHEN 'check_option=cascaded' = ANY (c.reloptions) THEN 'CASCADED'::text ELSE NULL END AS checkoption, "
"tc.reloptions AS toast_reloptions, "
- "EXISTS (SELECT 1 FROM pg_attribute at LEFT JOIN pg_init_privs pip ON"
- "(c.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_class') AND pip.objsubid = at.attnum)"
+ "EXISTS (SELECT 1 FROM pg_attribute at LEFT JOIN pg_init_privs pip ON "
+ "(c.oid = pip.objoid "
+ "AND pip.classoid = 'pg_class'::regclass "
+ "AND pip.objsubid = at.attnum)"
"WHERE at.attrelid = c.oid AND ("
"%s IS NOT NULL "
"OR %s IS NOT NULL "
"d.refclassid = c.tableoid AND d.deptype = 'a') "
"LEFT JOIN pg_class tc ON (c.reltoastrelid = tc.oid) "
"LEFT JOIN pg_init_privs pip ON "
- "(c.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class "
- "WHERE relname = 'pg_class') AND pip.objsubid = 0) "
+ "(c.oid = pip.objoid "
+ "AND pip.classoid = 'pg_class'::regclass "
+ "AND pip.objsubid = 0) "
"WHERE c.relkind in ('%c', '%c', '%c', '%c', '%c', '%c') "
"ORDER BY c.oid",
acl_subquery->data,
"%s AS initrlanacl, "
"(%s l.lanowner) AS lanowner "
"FROM pg_language l "
- "LEFT JOIN pg_init_privs pip "
- "ON (l.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_type') "
+ "LEFT JOIN pg_init_privs pip ON "
+ "(l.oid = pip.objoid "
+ "AND pip.classoid = 'pg_type'::regclass "
"AND pip.objsubid = 0) "
"WHERE l.lanispl "
"ORDER BY l.oid",
"ORDER BY option_name"
"), E',\n ') AS fdwoptions "
"FROM pg_foreign_data_wrapper f "
- "LEFT JOIN pg_init_privs pip "
- "ON (f.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_foreign_data_wrapper') "
+ "LEFT JOIN pg_init_privs pip ON "
+ "(f.oid = pip.objoid "
+ "AND pip.classoid = 'pg_foreign_data_wrapper'::regclass "
"AND pip.objsubid = 0) ",
username_subquery,
acl_subquery->data,
"), E',\n ') AS srvoptions "
"FROM pg_foreign_server f "
"LEFT JOIN pg_init_privs pip "
- "ON (f.oid = pip.objoid AND pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_foreign_server') "
+ "ON (f.oid = pip.objoid "
+ "AND pip.classoid = 'pg_foreign_server'::regclass "
"AND pip.objsubid = 0) ",
username_subquery,
acl_subquery->data,
*/
if (strlen(initacls) != 0 || strlen(initracls) != 0)
{
- appendPQExpBuffer(sql, "SELECT binary_upgrade_set_record_init_privs(true);\n");
+ appendPQExpBuffer(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\n");
if (!buildACLCommands(name, subname, type, initacls, initracls, owner,
"", fout->remoteVersion, sql))
exit_horribly(NULL,
"could not parse initial GRANT ACL list (%s) or initial REVOKE ACL list (%s) for object \"%s\" (%s)\n",
initacls, initracls, name, type);
- appendPQExpBuffer(sql, "SELECT binary_upgrade_set_record_init_privs(false);\n");
+ appendPQExpBuffer(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\n");
}
if (!buildACLCommands(name, subname, type, acls, racls, owner,
"%s AS initrattacl "
"FROM pg_catalog.pg_attribute at "
"JOIN pg_catalog.pg_class c ON (at.attrelid = c.oid) "
- "LEFT JOIN pg_init_privs pip ON "
- "(pip.classoid = "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_class') AND "
- " at.attrelid = pip.objoid AND at.attnum = pip.objsubid) "
- "WHERE at.attrelid = '%u' AND "
+ "LEFT JOIN pg_catalog.pg_init_privs pip ON "
+ "(at.attrelid = pip.objoid "
+ "AND pip.classoid = 'pg_catalog.pg_class'::pg_catalog.regclass "
+ "AND at.attnum = pip.objsubid) "
+ "WHERE at.attrelid = '%u'::pg_catalog.oid AND "
"NOT at.attisdropped "
"AND ("
"%s IS NOT NULL OR "
"SELECT attname, attacl, NULL as rattacl, "
"NULL AS initattacl, NULL AS initrattacl "
"FROM pg_catalog.pg_attribute "
- "WHERE attrelid = '%u' AND NOT attisdropped "
+ "WHERE attrelid = '%u'::pg_catalog.oid AND NOT attisdropped "
"AND attacl IS NOT NULL "
"ORDER BY attnum",
tbinfo->dobj.catId.oid);