|
|
|
|
@ -1098,7 +1098,8 @@ dumpTablespaces(PGconn *conn) |
|
|
|
|
else if (server_version >= 90200) |
|
|
|
|
res = executeQuery(conn, "SELECT oid, spcname, " |
|
|
|
|
"pg_catalog.pg_get_userbyid(spcowner) AS spcowner, " |
|
|
|
|
"pg_catalog.pg_tablespace_location(oid), spcacl, '' as rspcacl, " |
|
|
|
|
"pg_catalog.pg_tablespace_location(oid), " |
|
|
|
|
"spcacl, '' as rspcacl, " |
|
|
|
|
"array_to_string(spcoptions, ', ')," |
|
|
|
|
"pg_catalog.shobj_description(oid, 'pg_tablespace') " |
|
|
|
|
"FROM pg_catalog.pg_tablespace " |
|
|
|
|
@ -1329,10 +1330,10 @@ dumpCreateDB(PGconn *conn) |
|
|
|
|
"datistemplate, " |
|
|
|
|
"(SELECT pg_catalog.array_agg(acl) FROM (SELECT pg_catalog.unnest(coalesce(datacl,pg_catalog.acldefault('d',datdba))) AS acl " |
|
|
|
|
"EXCEPT SELECT pg_catalog.unnest(pg_catalog.acldefault('d',datdba))) as foo)" |
|
|
|
|
"AS datacl," |
|
|
|
|
"AS datacl, " |
|
|
|
|
"(SELECT pg_catalog.array_agg(acl) FROM (SELECT pg_catalog.unnest(pg_catalog.acldefault('d',datdba)) AS acl " |
|
|
|
|
"EXCEPT SELECT pg_catalog.unnest(coalesce(datacl,pg_catalog.acldefault('d',datdba)))) as foo)" |
|
|
|
|
"AS rdatacl," |
|
|
|
|
"AS rdatacl, " |
|
|
|
|
"datconnlimit, " |
|
|
|
|
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace " |
|
|
|
|
"FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) " |
|
|
|
|
@ -1343,7 +1344,8 @@ dumpCreateDB(PGconn *conn) |
|
|
|
|
"coalesce(rolname, (select rolname from pg_authid where oid=(select datdba from pg_database where datname='template0'))), " |
|
|
|
|
"pg_encoding_to_char(d.encoding), " |
|
|
|
|
"datcollate, datctype, datfrozenxid, datminmxid, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, datconnlimit, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, " |
|
|
|
|
"datconnlimit, " |
|
|
|
|
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace " |
|
|
|
|
"FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) " |
|
|
|
|
"WHERE datallowconn ORDER BY 1"); |
|
|
|
|
@ -1353,7 +1355,8 @@ dumpCreateDB(PGconn *conn) |
|
|
|
|
"coalesce(rolname, (select rolname from pg_authid where oid=(select datdba from pg_database where datname='template0'))), " |
|
|
|
|
"pg_encoding_to_char(d.encoding), " |
|
|
|
|
"datcollate, datctype, datfrozenxid, 0 AS datminmxid, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, datconnlimit, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, " |
|
|
|
|
"datconnlimit, " |
|
|
|
|
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace " |
|
|
|
|
"FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) " |
|
|
|
|
"WHERE datallowconn ORDER BY 1"); |
|
|
|
|
@ -1363,7 +1366,8 @@ dumpCreateDB(PGconn *conn) |
|
|
|
|
"coalesce(rolname, (select rolname from pg_authid where oid=(select datdba from pg_database where datname='template0'))), " |
|
|
|
|
"pg_encoding_to_char(d.encoding), " |
|
|
|
|
"null::text AS datcollate, null::text AS datctype, datfrozenxid, 0 AS datminmxid, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, datconnlimit, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, " |
|
|
|
|
"datconnlimit, " |
|
|
|
|
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace " |
|
|
|
|
"FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) " |
|
|
|
|
"WHERE datallowconn ORDER BY 1"); |
|
|
|
|
@ -1373,7 +1377,8 @@ dumpCreateDB(PGconn *conn) |
|
|
|
|
"coalesce(usename, (select usename from pg_shadow where usesysid=(select datdba from pg_database where datname='template0'))), " |
|
|
|
|
"pg_encoding_to_char(d.encoding), " |
|
|
|
|
"null::text AS datcollate, null::text AS datctype, datfrozenxid, 0 AS datminmxid, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, -1 as datconnlimit, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, " |
|
|
|
|
"-1 as datconnlimit, " |
|
|
|
|
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace " |
|
|
|
|
"FROM pg_database d LEFT JOIN pg_shadow u ON (datdba = usesysid) " |
|
|
|
|
"WHERE datallowconn ORDER BY 1"); |
|
|
|
|
@ -1383,7 +1388,8 @@ dumpCreateDB(PGconn *conn) |
|
|
|
|
"coalesce(usename, (select usename from pg_shadow where usesysid=(select datdba from pg_database where datname='template0'))), " |
|
|
|
|
"pg_encoding_to_char(d.encoding), " |
|
|
|
|
"null::text AS datcollate, null::text AS datctype, datfrozenxid, 0 AS datminmxid, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, -1 as datconnlimit, " |
|
|
|
|
"datistemplate, datacl, '' as rdatacl, " |
|
|
|
|
"-1 as datconnlimit, " |
|
|
|
|
"'pg_default' AS dattablespace " |
|
|
|
|
"FROM pg_database d LEFT JOIN pg_shadow u ON (datdba = usesysid) " |
|
|
|
|
"WHERE datallowconn ORDER BY 1"); |
|
|
|
|
@ -1395,7 +1401,8 @@ dumpCreateDB(PGconn *conn) |
|
|
|
|
"(select usename from pg_shadow where usesysid=(select datdba from pg_database where datname='template0'))), " |
|
|
|
|
"pg_encoding_to_char(d.encoding), " |
|
|
|
|
"null::text AS datcollate, null::text AS datctype, 0 AS datfrozenxid, 0 AS datminmxid, " |
|
|
|
|
"datistemplate, '' as datacl, '' as rdatacl, -1 as datconnlimit, " |
|
|
|
|
"datistemplate, '' as datacl, '' as rdatacl, " |
|
|
|
|
"-1 as datconnlimit, " |
|
|
|
|
"'pg_default' AS dattablespace " |
|
|
|
|
"FROM pg_database d " |
|
|
|
|
"WHERE datallowconn ORDER BY 1"); |
|
|
|
|
@ -1522,7 +1529,8 @@ dumpCreateDB(PGconn *conn) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!skip_acls && |
|
|
|
|
!buildACLCommands(fdbname, NULL, "DATABASE", dbacl, rdbacl, dbowner, |
|
|
|
|
!buildACLCommands(fdbname, NULL, "DATABASE", |
|
|
|
|
dbacl, rdbacl, dbowner, |
|
|
|
|
"", server_version, buf)) |
|
|
|
|
{ |
|
|
|
|
fprintf(stderr, _("%s: could not parse ACL list (%s) for database \"%s\"\n"), |
|
|
|
|
|