user.diff
text/x-diff
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| src/bin/pg_dump/pg_dumpall.c | 0 | 0 |
commit db00d837c17cebf3769fd3b6655812e2d3776f5d
Author: Bruce Momjian <bruce@momjian.us>
Date: Mon Dec 3 19:43:02 2012 -0500
In pg_upgrade, fix bug where no users were dumped in pg_dumpall
binary-upgrade mode; instead only skip dumping the current user.
This bug was introduced in during the removal of split_old_dump(). Bug
discovered during local testing.
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
new file mode 100644
index aa4fcbb..088106f
*** a/src/bin/pg_dump/pg_dumpall.c
--- b/src/bin/pg_dump/pg_dumpall.c
*************** dumpRoles(PGconn *conn)
*** 642,648 ****
i_rolpassword,
i_rolvaliduntil,
i_rolreplication,
! i_rolcomment;
int i;
/* note: rolconfig is dumped later */
--- 642,649 ----
i_rolpassword,
i_rolvaliduntil,
i_rolreplication,
! i_rolcomment,
! i_is_current_user;
int i;
/* note: rolconfig is dumped later */
*************** dumpRoles(PGconn *conn)
*** 652,658 ****
"rolcreaterole, rolcreatedb, "
"rolcanlogin, rolconnlimit, rolpassword, "
"rolvaliduntil, rolreplication, "
! "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment "
"FROM pg_authid "
"ORDER BY 2");
else if (server_version >= 80200)
--- 653,660 ----
"rolcreaterole, rolcreatedb, "
"rolcanlogin, rolconnlimit, rolpassword, "
"rolvaliduntil, rolreplication, "
! "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment, "
! "rolname = current_user AS is_current_user "
"FROM pg_authid "
"ORDER BY 2");
else if (server_version >= 80200)
*************** dumpRoles(PGconn *conn)
*** 661,667 ****
"rolcreaterole, rolcreatedb, "
"rolcanlogin, rolconnlimit, rolpassword, "
"rolvaliduntil, false as rolreplication, "
! "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment "
"FROM pg_authid "
"ORDER BY 2");
else if (server_version >= 80100)
--- 663,670 ----
"rolcreaterole, rolcreatedb, "
"rolcanlogin, rolconnlimit, rolpassword, "
"rolvaliduntil, false as rolreplication, "
! "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment, "
! "rolname = current_user AS is_current_user "
"FROM pg_authid "
"ORDER BY 2");
else if (server_version >= 80100)
*************** dumpRoles(PGconn *conn)
*** 670,676 ****
"rolcreaterole, rolcreatedb, "
"rolcanlogin, rolconnlimit, rolpassword, "
"rolvaliduntil, false as rolreplication, "
! "null as rolcomment "
"FROM pg_authid "
"ORDER BY 2");
else
--- 673,680 ----
"rolcreaterole, rolcreatedb, "
"rolcanlogin, rolconnlimit, rolpassword, "
"rolvaliduntil, false as rolreplication, "
! "null as rolcomment, "
! "rolname = current_user AS is_current_user "
"FROM pg_authid "
"ORDER BY 2");
else
*************** dumpRoles(PGconn *conn)
*** 685,691 ****
"passwd as rolpassword, "
"valuntil as rolvaliduntil, "
"false as rolreplication, "
! "null as rolcomment "
"FROM pg_shadow "
"UNION ALL "
"SELECT 0, groname as rolname, "
--- 689,696 ----
"passwd as rolpassword, "
"valuntil as rolvaliduntil, "
"false as rolreplication, "
! "null as rolcomment, "
! "rolname = current_user AS is_current_user "
"FROM pg_shadow "
"UNION ALL "
"SELECT 0, groname as rolname, "
*************** dumpRoles(PGconn *conn)
*** 698,704 ****
"null::text as rolpassword, "
"null::abstime as rolvaliduntil, "
"false as rolreplication, "
! "null as rolcomment "
"FROM pg_group "
"WHERE NOT EXISTS (SELECT 1 FROM pg_shadow "
" WHERE usename = groname) "
--- 703,709 ----
"null::text as rolpassword, "
"null::abstime as rolvaliduntil, "
"false as rolreplication, "
! "null as rolcomment, false "
"FROM pg_group "
"WHERE NOT EXISTS (SELECT 1 FROM pg_shadow "
" WHERE usename = groname) "
*************** dumpRoles(PGconn *conn)
*** 718,723 ****
--- 723,729 ----
i_rolvaliduntil = PQfnumber(res, "rolvaliduntil");
i_rolreplication = PQfnumber(res, "rolreplication");
i_rolcomment = PQfnumber(res, "rolcomment");
+ i_is_current_user = PQfnumber(res, "is_current_user");
if (PQntuples(res) > 0)
fprintf(OPF, "--\n-- Roles\n--\n\n");
*************** dumpRoles(PGconn *conn)
*** 746,754 ****
* won't hurt for the CREATE to fail). This is particularly important
* for the role we are connected as, since even with --clean we will
* have failed to drop it. binary_upgrade cannot generate any errors,
! * so we assume the role is already created.
*/
! if (!binary_upgrade)
appendPQExpBuffer(buf, "CREATE ROLE %s;\n", fmtId(rolename));
appendPQExpBuffer(buf, "ALTER ROLE %s WITH", fmtId(rolename));
--- 752,761 ----
* won't hurt for the CREATE to fail). This is particularly important
* for the role we are connected as, since even with --clean we will
* have failed to drop it. binary_upgrade cannot generate any errors,
! * so we assume the current role is already created.
*/
! if (!binary_upgrade ||
! strcmp(PQgetvalue(res, i, i_is_current_user), "f") == 0)
appendPQExpBuffer(buf, "CREATE ROLE %s;\n", fmtId(rolename));
appendPQExpBuffer(buf, "ALTER ROLE %s WITH", fmtId(rolename));