Обсуждение: 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
Вложения
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
Вложения
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