diff options
author | Andres Freund <andres@anarazel.de> | 2016-10-12 18:29:57 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2016-10-12 18:29:57 -0700 |
commit | b4fc645787cc7c614c0c97fc9fffacf2bdc6a388 (patch) | |
tree | 605ab14eeabb61dcb8b40b0d014ccf3aba122dd5 /src/bin/pg_dump/pg_dumpall.c | |
parent | 248776ea06c240ae4605e77369d66bcd7ae4f9e3 (diff) | |
download | postgresql-b4fc645787cc7c614c0c97fc9fffacf2bdc6a388.tar.gz postgresql-b4fc645787cc7c614c0c97fc9fffacf2bdc6a388.zip |
Make pg_dumpall's database ACL query independent of hash table order.
Previously GRANT order on databases was not well defined, due to the use
of EXCEPT without an ORDER BY. Add an ORDER BY, adapt test output.
I don't, at the moment, see reason to backpatch this.
Diffstat (limited to 'src/bin/pg_dump/pg_dumpall.c')
-rw-r--r-- | src/bin/pg_dump/pg_dumpall.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c index 82157e5620f..45749f3e644 100644 --- a/src/bin/pg_dump/pg_dumpall.c +++ b/src/bin/pg_dump/pg_dumpall.c @@ -1307,11 +1307,13 @@ dumpCreateDB(PGconn *conn) "pg_encoding_to_char(d.encoding), " "datcollate, datctype, datfrozenxid, datminmxid, " "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)" + "(SELECT pg_catalog.array_agg(acl ORDER BY acl::text) 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 datacls)" "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)" + "(SELECT pg_catalog.array_agg(acl ORDER BY acl::text) 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 rdatacls)" "AS rdatacl, " "datconnlimit, " "(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace " |