]> granicus.if.org Git - postgresql/commitdiff
Allow dropdb and others to use identifiers with spaces; IFS cleanup for
authorBruce Momjian <bruce@momjian.us>
Fri, 12 Apr 2002 09:37:11 +0000 (09:37 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 12 Apr 2002 09:37:11 +0000 (09:37 +0000)
pg_dumpall.

src/bin/pg_dump/pg_dumpall.sh
src/bin/scripts/createdb
src/bin/scripts/createlang.sh
src/bin/scripts/createuser
src/bin/scripts/dropdb
src/bin/scripts/droplang
src/bin/scripts/dropuser
src/bin/scripts/vacuumdb

index 6cae8b37115448be48167285271ea269fe2d557b..6a8ec8d3ebc6948b45d43c46ac4828744af59f7a 100644 (file)
@@ -6,7 +6,7 @@
 # and "pg_group" tables, which belong to the whole installation rather
 # than any one individual database.
 #
-# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall.sh,v 1.20 2002/04/11 21:22:27 momjian Exp $
+# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall.sh,v 1.21 2002/04/12 09:37:10 momjian Exp $
 
 CMDNAME="`basename $0`"
 
@@ -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;" | \
index 52d734178dc569d2ccba94ba491ed8ef8d808a2c..91d544f9e00f10a644181ad7695bbe1aab35e710 100644 (file)
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.20 2002/02/24 23:27:58 tgl Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.21 2002/04/12 09:37:10 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 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"
index d2aabe30c55bdbd2fa20ff095f06d88fe3255b8a..229cb945245f147e47c27e3a18d7a8026d9ac65b 100644 (file)
@@ -7,12 +7,12 @@
 # Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.34 2002/02/18 23:11:30 petere Exp $
+# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.35 2002/04/12 09:37:10 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 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"
index 02e97c58c4242cfd6f2005b804fd2233adbd9f77..9f0088f087753015c8637e5b8235488b493fa672 100644 (file)
@@ -9,14 +9,14 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.23 2002/02/18 05:48:44 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.24 2002/04/12 09:37:10 momjian Exp $
 #
 # Note - this should NOT be setuid.
 #
 #-------------------------------------------------------------------------
 
 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"
index 42ff00a0a1515375351572af7235962b2dcffa96..bd94bee4fc77532c23e5d3f4ee731c3ae3053b20 100644 (file)
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.14 2002/02/18 05:48:44 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.15 2002/04/12 09:37:11 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 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
index 579c570cf72cbabe50851b659ed8311202258f8e..5e84b36e8a564f2aade47ddccd2cf852be3ee4ce 100644 (file)
@@ -7,12 +7,12 @@
 # Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.21 2002/02/18 05:48:44 momjian Exp $
+# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.22 2002/04/12 09:37:11 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 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"
index 298710ee3b7b57cd87cb41abdc97bc2b3a7e21c1..803b7caad153e7019d2c6c42bfac4c6d1f6d9757 100644 (file)
@@ -9,14 +9,14 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.15 2002/02/18 05:48:45 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.16 2002/04/12 09:37:11 momjian Exp $
 #
 # Note - this should NOT be setuid.
 #
 #-------------------------------------------------------------------------
 
 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"
index b14991d178d679f639d185e12093ad5ababf11ef..2a751d931b16341c727db6f3ff3fb99c873c8a4f 100644 (file)
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.20 2002/02/18 05:48:45 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.21 2002/04/12 09:37:11 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 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"