diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml index d74941d8c8..4466c30548 100644 --- a/doc/src/sgml/ref/createdb.sgml +++ b/doc/src/sgml/ref/createdb.sgml @@ -1,5 +1,5 @@ @@ -41,7 +41,7 @@ Postgres documentation Specifies the hostname of the machine on which the postmaster is running. If host begins with a slash, it is used - as the directory for the unix domain socket. + as the directory for the Unix-domain socket. @@ -98,17 +98,26 @@ Postgres documentation -D, --location datadir - Specifies the alternative database location. See also . + + -T, --template template + + + Specifies the template database from which to build this database. + + + + -E, --encoding encoding - Specifies the character encoding scheme to be used with this database. + Specifies the character encoding scheme to be used in this database. @@ -140,6 +149,12 @@ Postgres documentation The options -h, -p, -U, -W, and -e are passed on literally to . + + The options -D, -T, and + -E are converted into options for the underlying + SQL command , which see for more information + about them. @@ -168,7 +183,7 @@ Postgres documentation The comment/description for the database could not be created. - the database itself will have been created already. You can use the + The database itself will have been created already. You can use the SQL command COMMENT ON DATABASE to create the comment later on. @@ -199,10 +214,10 @@ Postgres documentation the Postgres interactive terminal . Thus, there is nothing special about creating databases via this or other methods. This means - that the psql must be found by the script and that - a database server is running at the targeted host. Also, any default + that the psql program must be found by the script and that + a database server must be running at the targeted port. Also, any default settings and environment variables available to psql - and the libpq front-end library do apply. + and the libpq front-end library will apply. diff --git a/src/bin/scripts/createdb b/src/bin/scripts/createdb index 037566a528..4a695a1590 100644 --- a/src/bin/scripts/createdb +++ b/src/bin/scripts/createdb @@ -7,11 +7,12 @@ # This program runs psql with the "-c" option to create # the requested database. # -# Copyright (c) 1994, Regents of the University of California +# Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.13 2001/01/21 05:16:45 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.14 2001/02/18 17:53:54 tgl Exp $ # #------------------------------------------------------------------------- @@ -19,6 +20,7 @@ CMDNAME=`basename $0` PATHNAME=`echo $0 | sed "s,$CMDNAME\$,,"` MB= +TEMPLATE= PSQLOPT= dbname= dbcomment= @@ -78,6 +80,15 @@ do --location=*) dbpath=`echo "$1" | sed 's/^--location=//'` ;; + --template|-T) + TEMPLATE="$2" + shift;; + -T*) + TEMPLATE=`echo "$1" | sed 's/^-T//'` + ;; + --template=*) + TEMPLATE=`echo "$1" | sed 's/^--template=//'` + ;; --encoding|-E) MB="$2" shift;; @@ -111,6 +122,7 @@ if [ "$usage" ]; then echo echo "Options:" echo " -D, --location=PATH Alternative place to store the database" + echo " -T, --template=TEMPLATE Template database to copy" echo " -E, --encoding=ENCODING Multibyte encoding for the database" echo " -h, --host=HOSTNAME Database server host" echo " -p, --port=PORT Database server port" @@ -149,10 +161,12 @@ fi # escape the quotes dbpath=`echo "$dbpath" | sed "s/'/\\\\\'/g"` dbname=`echo "$dbname" | sed 's/\"/\\\"/g'` +TEMPLATE=`echo "$TEMPLATE" | sed 's/\"/\"\"/g'` withstring= [ "$dbpath" ] && withstring="$withstring LOCATION = '$dbpath'" [ "$MB" ] && withstring="$withstring ENCODING = '$MB'" +[ "$TEMPLATE" ] && withstring="$withstring TEMPLATE = \"$TEMPLATE\"" [ "$withstring" ] && withstring=" WITH$withstring" ${PATHNAME}psql $PSQLOPT -d template1 -c "CREATE DATABASE \"$dbname\"$withstring" diff --git a/src/test/regress/pg_regress.sh b/src/test/regress/pg_regress.sh index c80239eb62..0a043ca19a 100644 --- a/src/test/regress/pg_regress.sh +++ b/src/test/regress/pg_regress.sh @@ -1,5 +1,5 @@ #! /bin/sh -# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.18 2001/01/19 23:43:36 petere Exp $ +# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.19 2001/02/18 17:53:55 tgl Exp $ me=`basename $0` : ${TMPDIR=/tmp} @@ -420,10 +420,12 @@ fi # ---------- # Create the regression database +# We use template0 so that any installation-local cruft in template1 +# will not mess up the tests. # ---------- message "creating database \"$dbname\"" -"$bindir/createdb" $encoding_opt $psql_options "$dbname" +"$bindir/createdb" $encoding_opt $psql_options --template template0 "$dbname" if [ $? -ne 0 ]; then echo "$me: createdb failed" (exit 2); exit