summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2002-04-12 09:37:11 +0000
committerBruce Momjian2002-04-12 09:37:11 +0000
commit6b29c38ee7d50dfd5926db4cc33b5c1179d88600 (patch)
tree6acb8b30f728ca00e0b7e793b5335e468a5d9bfd
parent8ff92ebb5bc5ff85b94c70e0ac1ab18696eef6ca (diff)
Allow dropdb and others to use identifiers with spaces; IFS cleanup for
pg_dumpall.
-rw-r--r--src/bin/pg_dump/pg_dumpall.sh14
-rw-r--r--src/bin/scripts/createdb8
-rw-r--r--src/bin/scripts/createlang.sh8
-rw-r--r--src/bin/scripts/createuser8
-rw-r--r--src/bin/scripts/dropdb10
-rw-r--r--src/bin/scripts/droplang8
-rw-r--r--src/bin/scripts/dropuser8
-rw-r--r--src/bin/scripts/vacuumdb8
8 files changed, 38 insertions, 34 deletions
diff --git a/src/bin/pg_dump/pg_dumpall.sh b/src/bin/pg_dump/pg_dumpall.sh
index 5b5972b02b..c9b2fcd33d 100644
--- a/src/bin/pg_dump/pg_dumpall.sh
+++ b/src/bin/pg_dump/pg_dumpall.sh
@@ -42,6 +42,7 @@ else
fi
done
fi
+IFS="$_IFS"
# As last resort use the installation directory. We don't want to use
# this as first resort because depending on how users do release upgrades
@@ -218,6 +219,7 @@ while : ; do
echo " ALTER GROUP \"$GRONAME\" ADD USER \"$username\";"
done
done
+IFS="$_IFS"
test "$globals_only" = yes && exit 0
@@ -234,12 +236,13 @@ exec 4<&0
$PSQL -d template1 -At -F "$NL" \
-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;" | \
-while read DATABASE ; do
+while : ; do
IFS="$NL"
- read DBOWNER
- read ENCODING
- read ISTEMPLATE
- read DBPATH
+ read DATABASE || break
+ read DBOWNER || break
+ read ENCODING || break
+ read ISTEMPLATE || break
+ read DBPATH || break
IFS="$_IFS"
if [ "$DATABASE" != template1 ] ; then
echo
@@ -261,6 +264,7 @@ while read DATABASE ; do
fi
fi
done
+IFS="$_IFS"
$PSQL -d template1 -At -F "$NL" \
-c "SELECT datname FROM pg_database WHERE datallowconn ORDER BY 1;" | \
diff --git a/src/bin/scripts/createdb b/src/bin/scripts/createdb
index 6b4fdc1c13..375fc926ea 100644
--- a/src/bin/scripts/createdb
+++ b/src/bin/scripts/createdb
@@ -17,7 +17,7 @@
#-------------------------------------------------------------------------
CMDNAME=`basename "$0"`
-PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
+PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
MB=
TEMPLATE=
@@ -42,7 +42,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
- PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
+ PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
@@ -51,7 +51,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
- PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
+ PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
;;
--username|-U)
PSQLOPT="$PSQLOPT -U $2"
@@ -60,7 +60,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--username=*)
- PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
+ PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
diff --git a/src/bin/scripts/createlang.sh b/src/bin/scripts/createlang.sh
index dba46a5fab..0f8f462219 100644
--- a/src/bin/scripts/createlang.sh
+++ b/src/bin/scripts/createlang.sh
@@ -12,7 +12,7 @@
#-------------------------------------------------------------------------
CMDNAME=`basename "$0"`
-PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
+PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
PSQLOPT=
dbname=
@@ -55,7 +55,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
- PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
+ PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
@@ -64,7 +64,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
- PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
+ PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
;;
--username|-U)
PSQLOPT="$PSQLOPT -U $2"
@@ -73,7 +73,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--username=*)
- PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
+ PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
diff --git a/src/bin/scripts/createuser b/src/bin/scripts/createuser
index b7a4cb9e44..82776868b2 100644
--- a/src/bin/scripts/createuser
+++ b/src/bin/scripts/createuser
@@ -16,7 +16,7 @@
#-------------------------------------------------------------------------
CMDNAME=`basename "$0"`
-PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
+PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
NewUser=
SysID=
@@ -54,7 +54,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
- PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
+ PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
@@ -63,7 +63,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
- PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
+ PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
;;
# Note: These two specify the user to connect as (like in psql),
# not the user you're creating.
@@ -74,7 +74,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--username=*)
- PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
+ PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
diff --git a/src/bin/scripts/dropdb b/src/bin/scripts/dropdb
index 4e46b97f11..4f26e1b9a1 100644
--- a/src/bin/scripts/dropdb
+++ b/src/bin/scripts/dropdb
@@ -16,7 +16,7 @@
#-------------------------------------------------------------------------
CMDNAME=`basename "$0"`
-PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
+PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
PSQLOPT=
dbname=
@@ -49,7 +49,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
- PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
+ PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
@@ -58,7 +58,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
- PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
+ PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
;;
--username|-U)
PSQLOPT="$PSQLOPT -U $2"
@@ -67,7 +67,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--username=*)
- PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
+ PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
@@ -136,7 +136,7 @@ if [ "$forcedel" = f ]; then
fi
-dbname=`echo $dbname | sed 's/\"/\\\"/g'`
+dbname=`echo "$dbname" | sed 's/\"/\\\"/g'`
${PATHNAME}psql $PSQLOPT -d template1 -c "DROP DATABASE \"$dbname\""
if [ "$?" -ne 0 ]; then
diff --git a/src/bin/scripts/droplang b/src/bin/scripts/droplang
index 7ecb63a045..17b936c4c1 100644
--- a/src/bin/scripts/droplang
+++ b/src/bin/scripts/droplang
@@ -12,7 +12,7 @@
#-------------------------------------------------------------------------
CMDNAME=`basename "$0"`
-PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
+PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
PSQLOPT=
dbname=
@@ -54,7 +54,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
- PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
+ PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
@@ -63,7 +63,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
- PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
+ PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
;;
--username|-U)
PSQLOPT="$PSQLOPT -U $2"
@@ -72,7 +72,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--username=*)
- PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
+ PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
diff --git a/src/bin/scripts/dropuser b/src/bin/scripts/dropuser
index 5e29afef0e..f5dd9cc364 100644
--- a/src/bin/scripts/dropuser
+++ b/src/bin/scripts/dropuser
@@ -16,7 +16,7 @@
#-------------------------------------------------------------------------
CMDNAME=`basename "$0"`
-PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
+PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
PSQLOPT=
forcedel=t
@@ -49,7 +49,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
- PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
+ PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
@@ -58,7 +58,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
- PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
+ PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
;;
# Note: These two specify the user to connect as (like in psql),
# not the user you're dropping.
@@ -69,7 +69,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--username=*)
- PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
+ PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
diff --git a/src/bin/scripts/vacuumdb b/src/bin/scripts/vacuumdb
index beae833c16..04a70943b6 100644
--- a/src/bin/scripts/vacuumdb
+++ b/src/bin/scripts/vacuumdb
@@ -17,7 +17,7 @@
#-------------------------------------------------------------------------
CMDNAME=`basename "$0"`
-PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"`
+PATHNAME=`echo "$0" | sed "s,$CMDNAME\$,,"`
PSQLOPT=
full=
@@ -43,7 +43,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
- PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
+ PSQLOPT="$PSQLOPT -h `echo \"$1\" | sed 's/^--host=//'`"
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
@@ -52,7 +52,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
- PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
+ PSQLOPT="$PSQLOPT -p `echo \"$1\" | sed 's/^--port=//'`"
;;
--username|-U)
PSQLOPT="$PSQLOPT -U $2"
@@ -61,7 +61,7 @@ do
PSQLOPT="$PSQLOPT $1"
;;
--username=*)
- PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
+ PSQLOPT="$PSQLOPT -U `echo \"$1\" | sed 's/^--username=//'`"
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"