Skip to content

Commit 5804a7c

Browse files
committed
Allow dropdb and others to use identifiers with spaces; IFS cleanup for
pg_dumpall.
1 parent 5129e1b commit 5804a7c

File tree

8 files changed

+46
-42
lines changed

8 files changed

+46
-42
lines changed

src/bin/pg_dump/pg_dumpall.sh

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# and "pg_group" tables, which belong to the whole installation rather
77
# than any one individual database.
88
#
9-
# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall.sh,v 1.20 2002/04/11 21:22:27 momjian Exp $
9+
# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall.sh,v 1.21 2002/04/12 09:37:10 momjian Exp $
1010

1111
CMDNAME="`basename $0`"
1212

@@ -42,6 +42,7 @@ else
4242
fi
4343
done
4444
fi
45+
IFS="$_IFS"
4546

4647
# As last resort use the installation directory. We don't want to use
4748
# this as first resort because depending on how users do release upgrades
@@ -218,6 +219,7 @@ while : ; do
218219
echo " ALTER GROUP \"$GRONAME\" ADD USER \"$username\";"
219220
done
220221
done
222+
IFS="$_IFS"
221223

222224
test "$globals_only" = yes && exit 0
223225

@@ -234,12 +236,13 @@ exec 4<&0
234236

235237
$PSQL -d template1 -At -F "$NL" \
236238
-c "SELECT datname, coalesce(usename, (select usename from pg_shadow where usesysid=(select datdba from pg_database where datname='template0'))), pg_encoding_to_char(d.encoding), datistemplate, datpath FROM pg_database d LEFT JOIN pg_shadow u ON (datdba = usesysid) WHERE datallowconn ORDER BY 1;" | \
237-
while read DATABASE ; do
239+
while : ; do
238240
IFS="$NL"
239-
read DBOWNER
240-
read ENCODING
241-
read ISTEMPLATE
242-
read DBPATH
241+
read DATABASE || break
242+
read DBOWNER || break
243+
read ENCODING || break
244+
read ISTEMPLATE || break
245+
read DBPATH || break
243246
IFS="$_IFS"
244247
if [ "$DATABASE" != template1 ] ; then
245248
echo
@@ -261,6 +264,7 @@ while read DATABASE ; do
261264
fi
262265
fi
263266
done
267+
IFS="$_IFS"
264268

265269
$PSQL -d template1 -At -F "$NL" \
266270
-c "SELECT datname FROM pg_database WHERE datallowconn ORDER BY 1;" | \

src/bin/scripts/createdb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
#
1313
#
1414
# IDENTIFICATION
15-
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.20 2002/02/24 23:27:58 tgl Exp $
15+
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.21 2002/04/12 09:37:10 momjian Exp $
1616
#
1717
#-------------------------------------------------------------------------
1818

1919
CMDNAME=`basename "$0"`
20-
PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
20+
PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
2121

2222
MB=
2323
TEMPLATE=
@@ -42,7 +42,7 @@ do
4242
PSQLOPT="$PSQLOPT $1"
4343
;;
4444
--host=*)
45-
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
45+
PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
4646
;;
4747
--port|-p)
4848
PSQLOPT="$PSQLOPT -p $2"
@@ -51,7 +51,7 @@ do
5151
PSQLOPT="$PSQLOPT $1"
5252
;;
5353
--port=*)
54-
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
54+
PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
5555
;;
5656
--username|-U)
5757
PSQLOPT="$PSQLOPT -U $2"
@@ -60,7 +60,7 @@ do
6060
PSQLOPT="$PSQLOPT $1"
6161
;;
6262
--username=*)
63-
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
63+
PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
6464
;;
6565
--password|-W)
6666
PSQLOPT="$PSQLOPT -W"

src/bin/scripts/createlang.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
# Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
88
# Portions Copyright (c) 1994, Regents of the University of California
99
#
10-
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.34 2002/02/18 23:11:30 petere Exp $
10+
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.35 2002/04/12 09:37:10 momjian Exp $
1111
#
1212
#-------------------------------------------------------------------------
1313

1414
CMDNAME=`basename "$0"`
15-
PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
15+
PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
1616

1717
PSQLOPT=
1818
dbname=
@@ -55,7 +55,7 @@ do
5555
PSQLOPT="$PSQLOPT $1"
5656
;;
5757
--host=*)
58-
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
58+
PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
5959
;;
6060
--port|-p)
6161
PSQLOPT="$PSQLOPT -p $2"
@@ -64,7 +64,7 @@ do
6464
PSQLOPT="$PSQLOPT $1"
6565
;;
6666
--port=*)
67-
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
67+
PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
6868
;;
6969
--username|-U)
7070
PSQLOPT="$PSQLOPT -U $2"
@@ -73,7 +73,7 @@ do
7373
PSQLOPT="$PSQLOPT $1"
7474
;;
7575
--username=*)
76-
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
76+
PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
7777
;;
7878
--password|-W)
7979
PSQLOPT="$PSQLOPT -W"

src/bin/scripts/createuser

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
#
1010
#
1111
# IDENTIFICATION
12-
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.23 2002/02/18 05:48:44 momjian Exp $
12+
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.24 2002/04/12 09:37:10 momjian Exp $
1313
#
1414
# Note - this should NOT be setuid.
1515
#
1616
#-------------------------------------------------------------------------
1717

1818
CMDNAME=`basename "$0"`
19-
PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
19+
PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
2020

2121
NewUser=
2222
SysID=
@@ -54,7 +54,7 @@ do
5454
PSQLOPT="$PSQLOPT $1"
5555
;;
5656
--host=*)
57-
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
57+
PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
5858
;;
5959
--port|-p)
6060
PSQLOPT="$PSQLOPT -p $2"
@@ -63,7 +63,7 @@ do
6363
PSQLOPT="$PSQLOPT $1"
6464
;;
6565
--port=*)
66-
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
66+
PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
6767
;;
6868
# Note: These two specify the user to connect as (like in psql),
6969
# not the user you're creating.
@@ -74,7 +74,7 @@ do
7474
PSQLOPT="$PSQLOPT $1"
7575
;;
7676
--username=*)
77-
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
77+
PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
7878
;;
7979
--password|-W)
8080
PSQLOPT="$PSQLOPT -W"

src/bin/scripts/dropdb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
#
1212
#
1313
# IDENTIFICATION
14-
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.14 2002/02/18 05:48:44 momjian Exp $
14+
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.15 2002/04/12 09:37:11 momjian Exp $
1515
#
1616
#-------------------------------------------------------------------------
1717

1818
CMDNAME=`basename "$0"`
19-
PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
19+
PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
2020

2121
PSQLOPT=
2222
dbname=
@@ -49,7 +49,7 @@ do
4949
PSQLOPT="$PSQLOPT $1"
5050
;;
5151
--host=*)
52-
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
52+
PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
5353
;;
5454
--port|-p)
5555
PSQLOPT="$PSQLOPT -p $2"
@@ -58,7 +58,7 @@ do
5858
PSQLOPT="$PSQLOPT $1"
5959
;;
6060
--port=*)
61-
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
61+
PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
6262
;;
6363
--username|-U)
6464
PSQLOPT="$PSQLOPT -U $2"
@@ -67,7 +67,7 @@ do
6767
PSQLOPT="$PSQLOPT $1"
6868
;;
6969
--username=*)
70-
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
70+
PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
7171
;;
7272
--password|-W)
7373
PSQLOPT="$PSQLOPT -W"
@@ -136,7 +136,7 @@ if [ "$forcedel" = f ]; then
136136
fi
137137

138138

139-
dbname=`echo $dbname | sed 's/\"/\\\"/g'`
139+
dbname=`echo "$dbname" | sed 's/\"/\\\"/g'`
140140

141141
${PATHNAME}psql $PSQLOPT -d template1 -c "DROP DATABASE \"$dbname\""
142142
if [ "$?" -ne 0 ]; then

src/bin/scripts/droplang

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
# Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
88
# Portions Copyright (c) 1994, Regents of the University of California
99
#
10-
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.21 2002/02/18 05:48:44 momjian Exp $
10+
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.22 2002/04/12 09:37:11 momjian Exp $
1111
#
1212
#-------------------------------------------------------------------------
1313

1414
CMDNAME=`basename "$0"`
15-
PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
15+
PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
1616

1717
PSQLOPT=
1818
dbname=
@@ -54,7 +54,7 @@ do
5454
PSQLOPT="$PSQLOPT $1"
5555
;;
5656
--host=*)
57-
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
57+
PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
5858
;;
5959
--port|-p)
6060
PSQLOPT="$PSQLOPT -p $2"
@@ -63,7 +63,7 @@ do
6363
PSQLOPT="$PSQLOPT $1"
6464
;;
6565
--port=*)
66-
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
66+
PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
6767
;;
6868
--username|-U)
6969
PSQLOPT="$PSQLOPT -U $2"
@@ -72,7 +72,7 @@ do
7272
PSQLOPT="$PSQLOPT $1"
7373
;;
7474
--username=*)
75-
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
75+
PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
7676
;;
7777
--password|-W)
7878
PSQLOPT="$PSQLOPT -W"

src/bin/scripts/dropuser

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
#
1010
#
1111
# IDENTIFICATION
12-
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.15 2002/02/18 05:48:45 momjian Exp $
12+
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.16 2002/04/12 09:37:11 momjian Exp $
1313
#
1414
# Note - this should NOT be setuid.
1515
#
1616
#-------------------------------------------------------------------------
1717

1818
CMDNAME=`basename "$0"`
19-
PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
19+
PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
2020

2121
PSQLOPT=
2222
forcedel=t
@@ -49,7 +49,7 @@ do
4949
PSQLOPT="$PSQLOPT $1"
5050
;;
5151
--host=*)
52-
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
52+
PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
5353
;;
5454
--port|-p)
5555
PSQLOPT="$PSQLOPT -p $2"
@@ -58,7 +58,7 @@ do
5858
PSQLOPT="$PSQLOPT $1"
5959
;;
6060
--port=*)
61-
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
61+
PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
6262
;;
6363
# Note: These two specify the user to connect as (like in psql),
6464
# not the user you're dropping.
@@ -69,7 +69,7 @@ do
6969
PSQLOPT="$PSQLOPT $1"
7070
;;
7171
--username=*)
72-
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
72+
PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
7373
;;
7474
--password|-W)
7575
PSQLOPT="$PSQLOPT -W"

src/bin/scripts/vacuumdb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
#
1313
#
1414
# IDENTIFICATION
15-
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.20 2002/02/18 05:48:45 momjian Exp $
15+
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.21 2002/04/12 09:37:11 momjian Exp $
1616
#
1717
#-------------------------------------------------------------------------
1818

1919
CMDNAME=`basename "$0"`
20-
PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
20+
PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
2121

2222
PSQLOPT=
2323
full=
@@ -43,7 +43,7 @@ do
4343
PSQLOPT="$PSQLOPT $1"
4444
;;
4545
--host=*)
46-
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
46+
PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
4747
;;
4848
--port|-p)
4949
PSQLOPT="$PSQLOPT -p $2"
@@ -52,7 +52,7 @@ do
5252
PSQLOPT="$PSQLOPT $1"
5353
;;
5454
--port=*)
55-
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
55+
PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
5656
;;
5757
--username|-U)
5858
PSQLOPT="$PSQLOPT -U $2"
@@ -61,7 +61,7 @@ do
6161
PSQLOPT="$PSQLOPT $1"
6262
;;
6363
--username=*)
64-
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
64+
PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
6565
;;
6666
--password|-W)
6767
PSQLOPT="$PSQLOPT -W"

0 commit comments

Comments
 (0)