Thread: add missing options to pg_dumpall
Hi, This patch adds the following options to pg_dumpall, to be passed to pg_dump: -S, --superuser=NAME -O, --no-owner -X disable-dollar-quoting, --disable-dollar-quoting -X disable-triggers, --disable-triggers Chris
Attachment
Patch applied. Thanks. --------------------------------------------------------------------------- Christopher Kings-Lynne wrote: > Hi, > > This patch adds the following options to pg_dumpall, to be passed to > pg_dump: > > -S, --superuser=NAME > > -O, --no-owner > > -X disable-dollar-quoting, --disable-dollar-quoting > > -X disable-triggers, --disable-triggers > > Chris > [ application/x-gzip is not supported, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 8: explain analyze is your friend -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Bruce Momjian wrote: > Patch applied. Thanks. thanks - that's wonderful news :-) However the patch as it went in has a minor cosmetic issues with the display of the --help output. Maybe something like the attached patch should be applied to restore the alphabetical option ordering and make the output more like the pg_dump output. Stefan Index: src/bin/pg_dump/pg_dumpall.c =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_dumpall.c,v retrieving revision 1.44 diff -u -r1.44 pg_dumpall.c --- src/bin/pg_dump/pg_dumpall.c 12 Jul 2004 14:35:45 -0000 1.44 +++ src/bin/pg_dump/pg_dumpall.c 14 Jul 2004 17:56:04 -0000 @@ -310,26 +310,26 @@ printf(_("Usage:\n")); printf(_(" %s [OPTION]...\n"), progname); - printf(_("\nOptions:\n")); + printf(_("\nGeneral options:\n")); + printf(_(" -i, --ignore-version proceed even when server version mismatches\n" + " pg_dumpall version\n")); + printf(_(" --help show this help, then exit\n")); + printf(_(" --version output version information, then exit\n")); + printf(_("\nOptions controlling the output content:\n")); printf(_(" -a, --data-only dump only the data, not the schema\n")); printf(_(" -c, --clean clean (drop) databases prior to create\n")); printf(_(" -d, --inserts dump data as INSERT, rather than COPY, commands\n")); printf(_(" -D, --column-inserts dump data as INSERT commands with column names\n")); printf(_(" -g, --globals-only dump only global objects, no databases\n")); - printf(_(" -i, --ignore-version proceed even when server version mismatches\n" - " pg_dumpall version\n")); - printf(_(" -s, --schema-only dump only the schema, no data\n")); - printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); printf(_(" -o, --oids include OIDs in dump\n")); printf(_(" -O, --no-owner do not output commands to set object ownership\n")); - printf(_(" -v, --verbose verbose mode\n")); + printf(_(" -s, --schema-only dump only the schema, no data\n")); + printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); printf(_(" -x, --no-privileges do not dump privileges (grant/revoke)\n")); printf(_(" -X disable-dollar-quoting, --disable-dollar-quoting\n" " disable dollar quoting, use SQL standard quoting\n")); printf(_(" -X disable-triggers, --disable-triggers\n" - " disable triggers during data-only restore\n")); - printf(_(" --help show this help, then exit\n")); - printf(_(" --version output version information, then exit\n")); + " disable triggers during data-only restore\n")); printf(_("\nConnection options:\n")); printf(_(" -h, --host=HOSTNAME database server host or socket directory\n"));
Hmmm, and I need to resurrect the -X use-set-session-authorization flag for pg_dumpall as well...patch coming soon... Chris Stefan Kaltenbrunner wrote: > Bruce Momjian wrote: > >> Patch applied. Thanks. > > > thanks - that's wonderful news :-) > > However the patch as it went in has a minor cosmetic issues with the > display of the --help output. > Maybe something like the attached patch should be applied to restore the > alphabetical option ordering and make the output more like the pg_dump > output. > > > Stefan > > > ------------------------------------------------------------------------ > > Index: src/bin/pg_dump/pg_dumpall.c > =================================================================== > RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_dumpall.c,v > retrieving revision 1.44 > diff -u -r1.44 pg_dumpall.c > --- src/bin/pg_dump/pg_dumpall.c 12 Jul 2004 14:35:45 -0000 1.44 > +++ src/bin/pg_dump/pg_dumpall.c 14 Jul 2004 17:56:04 -0000 > @@ -310,26 +310,26 @@ > printf(_("Usage:\n")); > printf(_(" %s [OPTION]...\n"), progname); > > - printf(_("\nOptions:\n")); > + printf(_("\nGeneral options:\n")); > + printf(_(" -i, --ignore-version proceed even when server version mismatches\n" > + " pg_dumpall version\n")); > + printf(_(" --help show this help, then exit\n")); > + printf(_(" --version output version information, then exit\n")); > + printf(_("\nOptions controlling the output content:\n")); > printf(_(" -a, --data-only dump only the data, not the schema\n")); > printf(_(" -c, --clean clean (drop) databases prior to create\n")); > printf(_(" -d, --inserts dump data as INSERT, rather than COPY, commands\n")); > printf(_(" -D, --column-inserts dump data as INSERT commands with column names\n")); > printf(_(" -g, --globals-only dump only global objects, no databases\n")); > - printf(_(" -i, --ignore-version proceed even when server version mismatches\n" > - " pg_dumpall version\n")); > - printf(_(" -s, --schema-only dump only the schema, no data\n")); > - printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); > printf(_(" -o, --oids include OIDs in dump\n")); > printf(_(" -O, --no-owner do not output commands to set object ownership\n")); > - printf(_(" -v, --verbose verbose mode\n")); > + printf(_(" -s, --schema-only dump only the schema, no data\n")); > + printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); > printf(_(" -x, --no-privileges do not dump privileges (grant/revoke)\n")); > printf(_(" -X disable-dollar-quoting, --disable-dollar-quoting\n" > " disable dollar quoting, use SQL standard quoting\n")); > printf(_(" -X disable-triggers, --disable-triggers\n" > - " disable triggers during data-only restore\n")); > - printf(_(" --help show this help, then exit\n")); > - printf(_(" --version output version information, then exit\n")); > + " disable triggers during data-only restore\n")); > > printf(_("\nConnection options:\n")); > printf(_(" -h, --host=HOSTNAME database server host or socket directory\n"));
Stefan Kaltenbrunner wrote: > Bruce Momjian wrote: > > Patch applied. Thanks. > > thanks - that's wonderful news :-) > > However the patch as it went in has a minor cosmetic issues with the > display of the --help output. > Maybe something like the attached patch should be applied to restore > the alphabetical option ordering and make the output more like the > pg_dump output. > > > Stefan > Index: src/bin/pg_dump/pg_dumpall.c > =================================================================== > RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_dumpall.c,v > retrieving revision 1.44 > diff -u -r1.44 pg_dumpall.c > --- src/bin/pg_dump/pg_dumpall.c 12 Jul 2004 14:35:45 -0000 1.44 > +++ src/bin/pg_dump/pg_dumpall.c 14 Jul 2004 17:56:04 -0000 > @@ -310,26 +310,26 @@ > printf(_("Usage:\n")); > printf(_(" %s [OPTION]...\n"), progname); > > - printf(_("\nOptions:\n")); > + printf(_("\nGeneral options:\n")); > + printf(_(" -i, --ignore-version proceed even when server version mismatches\n" > + " pg_dumpall version\n")); > + printf(_(" --help show this help, then exit\n")); > + printf(_(" --version output version information, then exit\n")); > + printf(_("\nOptions controlling the output content:\n")); > printf(_(" -a, --data-only dump only the data, not the schema\n")); > printf(_(" -c, --clean clean (drop) databases prior to create\n")); > printf(_(" -d, --inserts dump data as INSERT, rather than COPY, commands\n")); > printf(_(" -D, --column-inserts dump data as INSERT commands with column names\n")); > printf(_(" -g, --globals-only dump only global objects, no databases\n")); > - printf(_(" -i, --ignore-version proceed even when server version mismatches\n" > - " pg_dumpall version\n")); > - printf(_(" -s, --schema-only dump only the schema, no data\n")); > - printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); > printf(_(" -o, --oids include OIDs in dump\n")); > printf(_(" -O, --no-owner do not output commands to set object ownership\n")); > - printf(_(" -v, --verbose verbose mode\n")); > + printf(_(" -s, --schema-only dump only the schema, no data\n")); > + printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); > printf(_(" -x, --no-privileges do not dump privileges (grant/revoke)\n")); > printf(_(" -X disable-dollar-quoting, --disable-dollar-quoting\n" > " disable dollar quoting, use SQL standard quoting\n")); > printf(_(" -X disable-triggers, --disable-triggers\n" > - " disable triggers during data-only restore\n")); > - printf(_(" --help show this help, then exit\n")); > - printf(_(" --version output version information, then exit\n")); > + " disable triggers during data-only restore\n")); > > printf(_("\nConnection options:\n")); > printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Your patch has been added to the PostgreSQL unapplied patches list at: http://momjian.postgresql.org/cgi-bin/pgpatches It will be applied as soon as one of the PostgreSQL committers reviews and approves it. --------------------------------------------------------------------------- \Stefan Kaltenbrunner wrote: > Bruce Momjian wrote: > > Patch applied. Thanks. > > thanks - that's wonderful news :-) > > However the patch as it went in has a minor cosmetic issues with the > display of the --help output. > Maybe something like the attached patch should be applied to restore > the alphabetical option ordering and make the output more like the > pg_dump output. > > > Stefan > Index: src/bin/pg_dump/pg_dumpall.c > =================================================================== > RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_dumpall.c,v > retrieving revision 1.44 > diff -u -r1.44 pg_dumpall.c > --- src/bin/pg_dump/pg_dumpall.c 12 Jul 2004 14:35:45 -0000 1.44 > +++ src/bin/pg_dump/pg_dumpall.c 14 Jul 2004 17:56:04 -0000 > @@ -310,26 +310,26 @@ > printf(_("Usage:\n")); > printf(_(" %s [OPTION]...\n"), progname); > > - printf(_("\nOptions:\n")); > + printf(_("\nGeneral options:\n")); > + printf(_(" -i, --ignore-version proceed even when server version mismatches\n" > + " pg_dumpall version\n")); > + printf(_(" --help show this help, then exit\n")); > + printf(_(" --version output version information, then exit\n")); > + printf(_("\nOptions controlling the output content:\n")); > printf(_(" -a, --data-only dump only the data, not the schema\n")); > printf(_(" -c, --clean clean (drop) databases prior to create\n")); > printf(_(" -d, --inserts dump data as INSERT, rather than COPY, commands\n")); > printf(_(" -D, --column-inserts dump data as INSERT commands with column names\n")); > printf(_(" -g, --globals-only dump only global objects, no databases\n")); > - printf(_(" -i, --ignore-version proceed even when server version mismatches\n" > - " pg_dumpall version\n")); > - printf(_(" -s, --schema-only dump only the schema, no data\n")); > - printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); > printf(_(" -o, --oids include OIDs in dump\n")); > printf(_(" -O, --no-owner do not output commands to set object ownership\n")); > - printf(_(" -v, --verbose verbose mode\n")); > + printf(_(" -s, --schema-only dump only the schema, no data\n")); > + printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); > printf(_(" -x, --no-privileges do not dump privileges (grant/revoke)\n")); > printf(_(" -X disable-dollar-quoting, --disable-dollar-quoting\n" > " disable dollar quoting, use SQL standard quoting\n")); > printf(_(" -X disable-triggers, --disable-triggers\n" > - " disable triggers during data-only restore\n")); > - printf(_(" --help show this help, then exit\n")); > - printf(_(" --version output version information, then exit\n")); > + " disable triggers during data-only restore\n")); > > printf(_("\nConnection options:\n")); > printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Oops, patch coming from Christopher. Removed. --------------------------------------------------------------------------- Stefan Kaltenbrunner wrote: > Bruce Momjian wrote: > > Patch applied. Thanks. > > thanks - that's wonderful news :-) > > However the patch as it went in has a minor cosmetic issues with the > display of the --help output. > Maybe something like the attached patch should be applied to restore > the alphabetical option ordering and make the output more like the > pg_dump output. > > > Stefan > Index: src/bin/pg_dump/pg_dumpall.c > =================================================================== > RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_dumpall.c,v > retrieving revision 1.44 > diff -u -r1.44 pg_dumpall.c > --- src/bin/pg_dump/pg_dumpall.c 12 Jul 2004 14:35:45 -0000 1.44 > +++ src/bin/pg_dump/pg_dumpall.c 14 Jul 2004 17:56:04 -0000 > @@ -310,26 +310,26 @@ > printf(_("Usage:\n")); > printf(_(" %s [OPTION]...\n"), progname); > > - printf(_("\nOptions:\n")); > + printf(_("\nGeneral options:\n")); > + printf(_(" -i, --ignore-version proceed even when server version mismatches\n" > + " pg_dumpall version\n")); > + printf(_(" --help show this help, then exit\n")); > + printf(_(" --version output version information, then exit\n")); > + printf(_("\nOptions controlling the output content:\n")); > printf(_(" -a, --data-only dump only the data, not the schema\n")); > printf(_(" -c, --clean clean (drop) databases prior to create\n")); > printf(_(" -d, --inserts dump data as INSERT, rather than COPY, commands\n")); > printf(_(" -D, --column-inserts dump data as INSERT commands with column names\n")); > printf(_(" -g, --globals-only dump only global objects, no databases\n")); > - printf(_(" -i, --ignore-version proceed even when server version mismatches\n" > - " pg_dumpall version\n")); > - printf(_(" -s, --schema-only dump only the schema, no data\n")); > - printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); > printf(_(" -o, --oids include OIDs in dump\n")); > printf(_(" -O, --no-owner do not output commands to set object ownership\n")); > - printf(_(" -v, --verbose verbose mode\n")); > + printf(_(" -s, --schema-only dump only the schema, no data\n")); > + printf(_(" -S, --superuser=NAME specify the superuser user name to use in the dump\n")); > printf(_(" -x, --no-privileges do not dump privileges (grant/revoke)\n")); > printf(_(" -X disable-dollar-quoting, --disable-dollar-quoting\n" > " disable dollar quoting, use SQL standard quoting\n")); > printf(_(" -X disable-triggers, --disable-triggers\n" > - " disable triggers during data-only restore\n")); > - printf(_(" --help show this help, then exit\n")); > - printf(_(" --version output version information, then exit\n")); > + " disable triggers during data-only restore\n")); > > printf(_("\nConnection options:\n")); > printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
OK, Here is another patch that fixes a stack of pg_dump bugs: * Fix help text ordering * Add back --set-session-authorization to pg_dumpall. Updated the docs for that. Updated help for that. * Dump ALTER USER commands for the cluster owner ("pgsql"). These are dumped AFTER the create user and create database commands in case the permissions to do these have been revoked. * Dump ALTER OWNER for public schema (because it's possible to change it). This was done by adding TOC entries for the public schema, and filtering them out at archiver time. I also save the owner in the TOC entry just for the public schema. * Suppress dumping single quotes around schema_path and DateStyle options when they are set using ALTER USER or ALTER DATABASE. Added a comment to the steps in guc.c to remind people to update that list. * Fix dumping in --clean mode against a pre-7.3 server. It just sets all drop statements to assume the public schema, allowing it to restore without error. * Cleaned up text output. eg. Don't output -- Tablespaces comment if there are none. Same for groups and users. * Make the commands to DELETE FROM pg_shadow and DELETE FROM pg_group only be output when -c mode is enabled. I'm not sure why that hasn't been done before?!?! This should be good for application asap, after which I will start on regression dumping 7.0-7.4 databases. Chris
Attachment
Patch applied. Thanks. --------------------------------------------------------------------------- Christopher Kings-Lynne wrote: > OK, > > Here is another patch that fixes a stack of pg_dump bugs: > > * Fix help text ordering > > * Add back --set-session-authorization to pg_dumpall. Updated the docs > for that. Updated help for that. > > * Dump ALTER USER commands for the cluster owner ("pgsql"). These are > dumped AFTER the create user and create database commands in case the > permissions to do these have been revoked. > > * Dump ALTER OWNER for public schema (because it's possible to change > it). This was done by adding TOC entries for the public schema, and > filtering them out at archiver time. I also save the owner in the TOC > entry just for the public schema. > > * Suppress dumping single quotes around schema_path and DateStyle > options when they are set using ALTER USER or ALTER DATABASE. Added a > comment to the steps in guc.c to remind people to update that list. > > * Fix dumping in --clean mode against a pre-7.3 server. It just sets > all drop statements to assume the public schema, allowing it to restore > without error. > > * Cleaned up text output. eg. Don't output -- Tablespaces comment if > there are none. Same for groups and users. > > * Make the commands to DELETE FROM pg_shadow and DELETE FROM pg_group > only be output when -c mode is enabled. I'm not sure why that hasn't > been done before?!?! > > This should be good for application asap, after which I will start on > regression dumping 7.0-7.4 databases. > > Chris > [ application/x-gzip is not supported, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073