pgsql: Add --exclude-database option to pg_dumpall

Started by Andrew Dunstanover 7 years ago5 messagescomitters
Jump to latest
#1Andrew Dunstan
andrew@dunslane.net

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: /messages/by-id/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(-)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#1)
Re: pgsql: Add --exclude-database option to pg_dumpall

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

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#2)
Re: pgsql: Add --exclude-database option to pg_dumpall

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

#4Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#3)
Re: pgsql: Add --exclude-database option to pg_dumpall

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

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#4)
Re: pgsql: Add --exclude-database option to pg_dumpall

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