Обсуждение: pgsql: Add --exclude-database option to pg_dumpall
Add --exclude-database option to pg_dumpall This option functions similarly to pg_dump's --exclude-table option, but for database names. The option can be given once, and the argument can be a pattern including wildcard characters. Author: Andrew Dunstan. Reviewd-by: Fabien Coelho and Michael Paquier Discussion: https://postgr.es/m/43a54a47-4aa7-c70e-9ca6-648f436dd6e6@2ndQuadrant.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/f092de0503cd77a8463e7089c249d5e0586a120b Modified Files -------------- doc/src/sgml/ref/pg_dumpall.sgml | 21 +++++++++++ src/bin/pg_dump/pg_dump.c | 3 +- src/bin/pg_dump/pg_dumpall.c | 78 ++++++++++++++++++++++++++++++++++++++++ src/bin/pg_dump/t/001_basic.pl | 13 ++++++- src/bin/pg_dump/t/002_pg_dump.pl | 11 ++++++ 5 files changed, 124 insertions(+), 2 deletions(-)
Andrew Dunstan <andrew@dunslane.net> writes: > Add --exclude-database option to pg_dumpall Buildfarm seems to think you got the test case wrong ... regards, tom lane
On 3/1/19 12:04 PM, Tom Lane wrote: > Andrew Dunstan <andrew@dunslane.net> writes: >> Add --exclude-database option to pg_dumpall > Buildfarm seems to think you got the test case wrong ... > > Hmm, Of course I tested this. It's passing on Linux boxes like crake and prion, but failing on OSX and FBSD boxes. I guess that's what we have a buildfarm for :-) here's the error: # Failed test 'pg_dumpall: option --exclude-database requires an argument: matches' # at t/001_basic.pl line 154. # 'pg_dumpall: option `--exclude-database' requires an argument # Try "pg_dumpall --help" for more information. # ' # doesn't match '(?^:pg_dumpall\:\ option\ \'\-\-exclude\-database\'\ requires\ an\ argument)' Why is that backtick there? That looks like the culprit, coming from the GetOpt implementation presumably. I guess I can replace the first quote with a class containing ['`] cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
On 3/1/19 12:56 PM, Andrew Dunstan wrote: > On 3/1/19 12:04 PM, Tom Lane wrote: >> Andrew Dunstan <andrew@dunslane.net> writes: >>> Add --exclude-database option to pg_dumpall >> Buildfarm seems to think you got the test case wrong ... >> >> > > Hmm, Of course I tested this. It's passing on Linux boxes like crake and > prion, but failing on OSX and FBSD boxes. > > > I guess that's what we have a buildfarm for :-) > > > here's the error: > > > # Failed test 'pg_dumpall: option --exclude-database requires an argument: matches' > # at t/001_basic.pl line 154. > # 'pg_dumpall: option `--exclude-database' requires an argument > # Try "pg_dumpall --help" for more information. > # ' > # doesn't match '(?^:pg_dumpall\:\ option\ \'\-\-exclude\-database\'\ requires\ an\ argument)' > > > Why is that backtick there? That looks like the culprit, coming from the > GetOpt implementation presumably. > > > I guess I can replace the first quote with a class containing ['`] ... and on Windows the result is radically different: # Failed test 'pg_dumpall: option --exclude-database requires an argument: matches' # at t/001_basic.pl line 154. # 'H:\prog\bf\root\HEAD\pgsql.build\tmp_install\bin\pg_dumpall.EXE: option requires an argument --exclude-database # Try "pg_dumpall --help" for more information. # ' # doesn't match '(?^:pg_dumpall\:\ option\ \'\-\-exclude\-database\'\ requires\ an\ argument)' I'm somewhat inclined just to abandon the test. It's at best of marginal use. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes: > [ getopt has platform-dependent error message spelling ] > > I'm somewhat inclined just to abandon the test. It's at best of marginal > use. Agreed. It seems barely worth the test cycles to begin with, and surely not worth coping with all the different ways this error message might be spelled. regards, tom lane