From 75e5e20d0e492c96ec3ff20e48ff1427cfee5461 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Sun, 24 Feb 2002 23:27:58 +0000 Subject: [PATCH] Add -O/--owner switch to createdb script, in support of new OWNER option for CREATE DATABASE. --- doc/src/sgml/ref/createdb.sgml | 29 +++++++++++++++++++++++------ src/bin/scripts/createdb | 14 +++++++++++++- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml index 2e90888ee9f..b7e189296e8 100644 --- a/doc/src/sgml/ref/createdb.sgml +++ b/doc/src/sgml/ref/createdb.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.24 2002/01/20 22:19:56 petere Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.25 2002/02/24 23:27:57 tgl Exp $ PostgreSQL documentation --> @@ -92,6 +92,15 @@ PostgreSQL documentation </listitem> </varlistentry> + <varlistentry> + <term>-O, --owner <replaceable class="parameter">owner</replaceable></term> + <listitem> + <para> + Specifies the database user who will own the new database. + </para> + </listitem> + </varlistentry> + <varlistentry> <term>-D, --location <replaceable class="parameter">datadir</replaceable></term> <listitem> @@ -144,12 +153,13 @@ PostgreSQL documentation </variablelist> - The options <literal>-h</literal>, <literal>-p</literal>, <literal>-U</literal>, - <literal>-W</literal>, and <literal>-e</literal> are passed on literally to + The options <option>-h</option>, <option>-p</option>, <option>-U</option>, + <option>-W</option>, and <option>-e</option> are passed on literally to <xref linkend="app-psql">. - The options <literal>-D</literal>, <literal>-T</literal>, and - <literal>-E</literal> are converted into options for the underlying + The options <option>-O</option>, <option>-D</option>, + <option>-T</option>, and + <option>-E</option> are converted into options for the underlying SQL command <xref linkend="SQL-CREATEDATABASE" endterm="SQL-CREATEDATABASE-title">; see there for more information about them. @@ -202,7 +212,14 @@ PostgreSQL documentation </title> <para> <application>createdb</application> creates a new <productname>PostgreSQL</productname> - database. The user who executes this command becomes the database owner. + database. + </para> + + <para> + Normally, the database user who executes this command becomes the owner of + the new database. + However a different owner can be specified via the <option>-O</option> + option, if the executing user has appropriate privileges. </para> <para> diff --git a/src/bin/scripts/createdb b/src/bin/scripts/createdb index 34562440461..52d734178dc 100644 --- a/src/bin/scripts/createdb +++ b/src/bin/scripts/createdb @@ -12,7 +12,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.19 2002/02/18 05:48:44 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.20 2002/02/24 23:27:58 tgl Exp $ # #------------------------------------------------------------------------- @@ -23,6 +23,7 @@ MB= TEMPLATE= PSQLOPT= dbname= +dbowner= dbcomment= dbpath= @@ -71,6 +72,15 @@ do PSQLOPT="$PSQLOPT -o /dev/null" ;; # options converted into SQL command + --owner|-O) + dbowner="$2" + shift;; + -O*) + dbowner=`echo "$1" | sed 's/^-O//'` + ;; + --owner=*) + dbowner=`echo "$1" | sed 's/^--owner=//'` + ;; --location|-D) dbpath="$2" shift;; @@ -127,6 +137,7 @@ if [ "$usage" ]; then echo " $CMDNAME [options] [dbname] [description]" echo echo "Options:" + echo " -O, --owner=OWNER Database user to own the new database" 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" @@ -170,6 +181,7 @@ dbname=`echo "$dbname" | sed 's/\"/\\\"/g'` TEMPLATE=`echo "$TEMPLATE" | sed 's/\"/\"\"/g'` withstring= +[ "$dbowner" ] && withstring="$withstring OWNER = \"$dbowner\"" [ "$dbpath" ] && withstring="$withstring LOCATION = '$dbpath'" [ "$MB" ] && withstring="$withstring ENCODING = '$MB'" [ "$TEMPLATE" ] && withstring="$withstring TEMPLATE = \"$TEMPLATE\"" -- GitLab