From: Tom Lane <tgl@sss.pgh.pa.us>

I see someone missed an ancient bit of shell-scripting lore:
on some older shells, if your script's argument list is empty,
then "$@" generates an empty-string word rather than no word
at all.  You need to write ${1+"$@"} to get the latter behavior.
(Read your shell man page to see exactly how that works,
but it does the Right Thing on every Bourne shell.)

In particular, pg_dumpall fails when invoked without any switches
on HPUX 9.*, because pg_dump gets an empty-string argument that it
thinks is the name of the database to dump.  I expect this bug
also affects some other OSes, but couldn't tell you just which ones.
Patch attached.
This commit is contained in:
Marc G. Fournier 1998-07-09 03:35:39 +00:00
parent bd029bcb4a
commit 3a3c1b85a3
1 changed files with 1 additions and 1 deletions

View File

@ -58,7 +58,7 @@ do
echo "${BS}connect template1 $POSTGRES_USER"
echo "create database $DATABASE;"
echo "${BS}connect $DATABASE $POSTGRES_USER"
pg_dump "$@" $DATABASE
pg_dump ${1+"$@"} $DATABASE
if [ "$?" -ne 0 ]
then echo "pg_dump failed on $DATABASE, exiting" 1>&2
exit 1