Okay, that should put us back in sync. These two patches (src & doc) are

against the sources from one hour ago and contain all the portable and
up
to date stuff.

A few other CVS "householding" things you might want to take care of:

* Remove the src/bin/cleardbdir directory

* Remove the file src/bin/psql/sql_help.h from the repository, as it is
a derived file and is build by the release_prep.

Peter Eisentraut
This commit is contained in:
Bruce Momjian 1999-12-07 22:41:44 +00:00
parent 54847b25d4
commit a0aab48fcd
20 changed files with 361 additions and 196 deletions

View File

@ -808,7 +808,7 @@ $ nohup postmaster -i > pgserver.log 2>&1 &
<para>
Create a database by typing
<ProgramListing>
$ createdb
$ createdb test
</ProgramListing>
</para>
</step>
@ -816,7 +816,7 @@ $ createdb
<para>
Connect to the new database:
<ProgramListing>
$ psql
$ psql test
</ProgramListing>
</para>
</step>
@ -840,7 +840,7 @@ postgres=> \q
<para>
Remove the test database (unless you will want to use it later for other tests):
<ProgramListing>
$ destroydb
$ dropdb test
</ProgramListing>
</para>
</step>
@ -1028,7 +1028,7 @@ For example,
After running the regression tests, type
<ProgramListing>
$ destroydb regression
$ dropdb regression
$ cd /usr/src/pgsql/postgresql-6.5.3/src/test/regress
$ gmake clean
</ProgramListing>
@ -1241,7 +1241,7 @@ Create the database foo:
<ProgramListing>
template1=> create database foo;
CREATEDB
CREATE DATABASE
</ProgramListing>
(Get in the habit of including those SQL semicolons. Psql won't execute

View File

@ -143,7 +143,7 @@ You are currently connected to the database: <replaceable>dbname</replaceable>
mydb, you can destroy it using the following Unix command:
<programlisting>
% destroydb <replaceable class="parameter">dbname</replaceable>
% dropdb <replaceable class="parameter">dbname</replaceable>
</programlisting>
This action physically removes all of the Unix files

View File

@ -283,7 +283,7 @@ TBD
If you are the database administrator for the database
<Database>mydb</Database>, you can destroy it using the following Unix command:
<ProgramListing>
% destroydb mydb
% dropdb mydb
</ProgramListing>
This action physically removes all of the Unix files
associated with the database and cannot be undone, so

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.7 1999/12/04 04:53:15 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.8 1999/12/07 22:41:41 momjian Exp $
Postgres documentation
-->
@ -96,7 +96,7 @@ createdb [ <replaceable class="parameter">options</replaceable> ] <replaceable c
</varlistentry>
<varlistentry>
<term>-D, --dbpath <replaceable class="parameter">datadir</replaceable></term>
<term>-D, --location <replaceable class="parameter">datadir</replaceable></term>
<listitem>
<para>
Specifies the alternate database location for this database installation.
@ -120,7 +120,7 @@ createdb [ <replaceable class="parameter">options</replaceable> ] <replaceable c
<listitem>
<para>
Specifies the name of the database to be created. The name must be
unique among all <productname>Postgres</productname> databases in this installation.
unique among all <productname>PostgreSQL</productname> databases in this installation.
</para>
</listitem>
</varlistentry>
@ -167,7 +167,7 @@ createdb [ <replaceable class="parameter">options</replaceable> ] <replaceable c
</varlistentry>
<varlistentry>
<term><computeroutput>createdb: Comment creation failed.</computeroutput></term>
<term><computeroutput>createdb: Comment creation failed. (Database was created.)</computeroutput></term>
<listitem>
<para>
The comment/description for the database could not be created.
@ -235,11 +235,11 @@ CREATE DATABASE
<para>
To create the database <literal>demo</literal>
using the postmaster on host eden, port 5000, using the <literal>LATIN1</literal>
encoding scheme and look at the underlying query:
encoding scheme with a look at the underlying query:
<programlisting>
$ <userinput>createdb -p 5000 -h eden -E LATIN1 -e demo</userinput>
QUERY: CREATE DATABASE "demo" WITH ENCODING = 'LATIN1'
CREATE DATABASE "demo" WITH ENCODING = 'LATIN1'
CREATE DATABASE
</programlisting>
</para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.6 1999/12/04 04:53:15 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.7 1999/12/07 22:41:41 momjian Exp $
Postgres documentation
-->
@ -125,6 +125,16 @@ createuser [ <replaceable class="parameter">options</replaceable> ] [ <replaceab
</listitem>
</varlistentry>
<varlistentry>
<term>-i, --sysid <replaceable class="parameter">uid</replaceable></term>
<listitem>
<para>
Allows you to pick a non-default user id for the new user. This is not
necessary, but some people like it.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable class="parameter">username</replaceable></term>
<listitem>
@ -142,11 +152,9 @@ createuser [ <replaceable class="parameter">options</replaceable> ] [ <replaceab
<para>
The options <literal>-h</literal>, <literal>-p</literal>, and <literal>-e</literal>,
are passed on literally to <xref linkend="APP-PSQL" endterm="APP-PSQL-title">. If you
need the <application>psql</application> options <literal>-U</literal> and
<literal>-W</literal> as well, you can uncomment the
respective lines in the source. They are disabled by default because of the potential
conceptual confusion between existing and new users.
are passed on literally to <xref linkend="APP-PSQL" endterm="APP-PSQL-title">. The
<application>psql</application> options <literal>-U</literal> and <literal>-W</literal>
are available as well, but their use can be confusing in this context.
</para>
</refsect2>
@ -243,7 +251,7 @@ CREATE USER
<programlisting>
$ <userinput>createuser -p 5000 -h eden -D -A -e joe</userinput>
QUERY: CREATE USER "joe" NOCREATEDB NOCREATEUSER
CREATE USER "joe" NOCREATEDB NOCREATEUSER
CREATE USER
</programlisting>
</para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_user.sgml,v 1.8 1999/12/04 04:53:15 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_user.sgml,v 1.9 1999/12/07 22:41:41 momjian Exp $
Postgres documentation
-->
@ -94,9 +94,7 @@ ERROR: removeUser: user "<replaceable class="parameter">name</replaceable>" does
user from the database,
along with any databases owned by the user. It
does not remove tables, views, or triggers owned by the
named user in databases not owned by the user. This statement
can be used in place of the <application>dropuser</application>
script, regardless of how the user was created.
named user in databases not owned by the user.
</para>
<refsect2 id="R2-SQL-DROPUSER-3">

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.1 1999/12/04 04:53:15 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.2 1999/12/07 22:41:41 momjian Exp $
Postgres documentation
-->
@ -207,7 +207,7 @@ DROP DATABASE
$ <userinput>dropdb -p 5000 -h eden -i -e demo</userinput>
Database "demo" will be permanently deleted.
Are you sure? (y/n) <userinput>y</userinput>
QUERY: DROP DATABASE "demo"
DROP DATABASE "demo"
DROP DATABASE
</programlisting>
</para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.1 1999/12/04 04:53:15 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.2 1999/12/07 22:41:41 momjian Exp $
Postgres documentation
-->
@ -101,11 +101,9 @@ dropuser [ <replaceable class="parameter">options</replaceable> ] [ <replaceable
<para>
The options <literal>-h</literal>, <literal>-p</literal>, and <literal>-e</literal>,
are passed on literally to <xref linkend="APP-PSQL" endterm="APP-PSQL-title">. If you
need the <application>psql</application> options <literal>-U</literal> and
<literal>-W</literal> as well, you can uncomment the
respective lines in the source. They are disabled by default because of the potential
conceptual confusion between existing and new users.
are passed on literally to <xref linkend="APP-PSQL" endterm="APP-PSQL-title">. The
<application>psql</application> options <literal>-U</literal> and <literal>-W</literal>
are available as well, but they can be confusing in this context.
</para>
</refsect2>
@ -201,7 +199,7 @@ DROP USER
$ <userinput>dropuser -p 5000 -h eden -i -e joe</userinput>
User "joe" and any owned databases will be permanently deleted.
Are you sure? (y/n) <userinput>y</userinput>
QUERY: DROP USER "joe"
DROP USER "joe"
DROP USER
</programlisting>
</para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuum.sgml,v 1.6 1999/11/28 02:17:04 tgl Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuum.sgml,v 1.7 1999/12/07 22:41:41 momjian Exp $
Postgres documentation
-->
@ -24,7 +24,7 @@ Postgres documentation
</refsynopsisdivinfo>
<synopsis>
VACUUM [ VERBOSE ] [ ANALYZE ] [ <replaceable class="PARAMETER">table</replaceable> ]
VACUUM [ VERBOSE ] ANALYZE [ <replaceable class="PARAMETER">ER">t</replaceable>BLE> [ (<replaceable class="PARAMETER">column</replaceable> [, ...] ) ] ]
VACUUM [ VERBOSE ] ANALYZE [ <replaceable class="PARAMETER">table</replaceable> [ (<replaceable class="PARAMETER">column</replaceable> [, ...] ) ] ]
</synopsis>
<refsect2 id="R2-SQL-VACUUM-1">

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.5 1999/07/22 15:09:15 thomas Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.6 1999/12/07 22:41:41 momjian Exp $
Postgres documentation
-->
@ -15,23 +15,21 @@ Postgres documentation
<application>vacuumdb</application>
</refname>
<refpurpose>
Clean and analyze a <productname>Postgres</productname> database
Clean and analyze a <productname>PostgreSQL</productname> database
</refpurpose>
</refnamediv>
<refsynopsisdiv>
<refsynopsisdivinfo>
<date>1998-10-04</date>
<date>1999-12-04</date>
</refsynopsisdivinfo>
<synopsis>
vacuumdb [ --analyze | -z ] [ --verbose | -v ] [ <replaceable class="parameter">dbname</replaceable> ]
vacuumdb [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replaceable class="parameter">port</replaceable> ]
[ --table '<replaceable class="parameter">table</replaceable> [ ( <replaceable class="parameter">column</replaceable> [,...] ) ]' ]
[ <replaceable class="parameter">dbname</replaceable> ]
vacuumdb [ <replaceable class="parameter">connection options</replaceable> ] [ --analyze | -z ] [ --verbose | -v ]
[ --table '<replaceable class="parameter">table</replaceable> [ ( <replaceable class="parameter">column</replaceable> [,...] ) ]' ] [ [-d] <replaceable class="parameter">dbname</replaceable> ]
</synopsis>
<refsect2 id="R2-APP-VACUUMDB-1">
<refsect2info>
<date>1998-10-04</date>
<date>1999-12-04</date>
</refsect2info>
<title>
Inputs
@ -41,21 +39,16 @@ vacuumdb [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replacea
<variablelist>
<varlistentry>
<term><replaceable class="parameter">dbname</replaceable></term>
<term>[-d, --dbname] <replaceable class="parameter">dbname</replaceable></term>
<listitem>
<para>
Specifies the name of the database to be cleaned or analyzed.
<replaceable class="parameter">dbname</replaceable>
defaults to the value of the
<envar>USER</envar>
environment variable.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>--analyze</term>
<term>-z</term>
<term>-z, --analyze</term>
<listitem>
<para>
Calculate statistics on the database for use by the optimizer.
@ -64,8 +57,7 @@ vacuumdb [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replacea
</varlistentry>
<varlistentry>
<term>--verbose</term>
<term>-v</term>
<term>-v, --verbose</term>
<listitem>
<para>
Print detailed information during processing.
@ -74,14 +66,19 @@ vacuumdb [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replacea
</varlistentry>
<varlistentry>
<term>--table <replaceable class="parameter">table</replaceable> [ (<replaceable class="parameter">column</replaceable> [,...]) ]</term>
<term>-t <replaceable class="parameter">table</replaceable> [ (<replaceable class="parameter">column</replaceable> [,...]) ]</term>
<term>-t, --table <replaceable class="parameter">table</replaceable> [ (<replaceable class="parameter">column</replaceable> [,...]) ]</term>
<listitem>
<para>
Clean or analyze <replaceable class="parameter">table</replaceable> only.
Column names may be specified only in conjunction with
the <option>--analyze</option> option.
</para>
<tip>
<para>
If you specify columns to vacuum, you probably have to escape the parentheses
from the shell.
</para>
</tip>
</listitem>
</varlistentry>
@ -94,38 +91,60 @@ vacuumdb [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replacea
<variablelist>
<varlistentry>
<term>-h <replaceable class="parameter">host</replaceable></term>
<term>-h, --host <replaceable class="parameter">host</replaceable></term>
<listitem>
<para>
Specifies the hostname of the machine on which the
<application>postmaster</application>
is running. Defaults to using a local Unix domain socket
rather than an IP connection..
is running.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-p <replaceable class="parameter">port</replaceable></term>
<term>-p, --port <replaceable class="parameter">port</replaceable></term>
<listitem>
<para>
Specifies the Internet TCP/IP port or local Unix domain socket file
extension on which the <application>postmaster</application>
is listening for connections. The port number defaults to 5432,
or the value of the <envar>PGPORT</envar>
environment variable (if set).
is listening for connections.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-u</term>
<term>-U, --username <replaceable class="parameter">username</replaceable></term>
<listitem>
<para>
Use password authentication.
Prompts for
<replaceable class="parameter">username</replaceable>
and <replaceable class="parameter">password</replaceable>.
Username to connect as.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-W, --password</term>
<listitem>
<para>
Force password prompt.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-e, --echo</term>
<listitem>
<para>
Echo the commands that <application>vacuumdb</application> generates
and sends to the backend.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-q, --quiet</term>
<listitem>
<para>
Do not display a response.
</para>
</listitem>
</varlistentry>
@ -135,79 +154,46 @@ vacuumdb [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replacea
<refsect2 id="R2-APP-VACUUMDB-2">
<refsect2info>
<date>1998-10-04</date>
<date>1999-12-04</date>
</refsect2info>
<title>
Outputs
</title>
<para>
<application>vacuumdb</application> executes a <command>VACUUM</command> command
on the specified database, so has not explicit external output.
<variablelist>
<varlistentry>
<term><computeroutput>
ERROR: Can't vacuum columns, only tables. You can 'vacuum analyze' columns.
vacuumdb: database vacuum failed on <replaceable class="parameter">dbname</replaceable>.
</computeroutput></term>
<term><computeroutput>VACUUM</computeroutput></term>
<listitem>
<para>
The non-analyze mode requires cleaning full tables or databases.
Individual columns may be specified only when analyzing a specific table.
Everything went well.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><computeroutput>
Connection to database 'template1' failed.
connectDB() failed: Is the postmaster running and accepting connections
at 'UNIX Socket' on port '<replaceable class="parameter">port</replaceable>'?
</computeroutput></term>
<term><computeroutput>vacuumdb: Vacuum failed.</computeroutput></term>
<listitem>
<para>
<application>vacuumdb</application> could not attach to the
<application>postmaster</application>
process on the specified host and port. If you see this message,
ensure that the <application>postmaster</application>
is running on the proper host and that you have specified the proper
port. If your site uses an authentication system, ensure that you
have obtained the required authentication credentials.
Something went wrong. <application>vacuumdb</application> is only a wrapper
script. See <xref linkend="SQL-VACUUM" endterm="SQL-VACUUM-title">
and <xref linkend="APP-PSQL" endterm="APP-PSQL-title"> for a detailed
discussion of error messages and potential problems.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><computeroutput>
Connection to database '<replaceable class="parameter">dbname</replaceable>' failed.
FATAL 1: SetUserId: user '<replaceable class="parameter">username</replaceable>' is not in 'pg_shadow'
</computeroutput></term>
<listitem>
<para>
You do not have a valid entry in the relation <literal>pg_shadow</literal>
and and will not be allowed to access <productname>Postgres</productname>.
Contact your <productname>Postgres</productname> administrator.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<note>
<para>
<application>vacuumdb</application> internally executes a
<command>VACUUM</command> <acronym>SQL</acronym> statement.
If you have problems running <application>vacuumdb</application>,
make sure you are able to run <command>VACUUM</command> on the database using, for
example, <application>psql</application>.
</para>
</note>
<para>
</para>
</refsect2>
</refsynopsisdiv>
<refsect1 id="R1-APP-VACUUMDB-1">
<refsect1info>
<date>1998-10-04</date>
<date>1999-12-04</date>
</refsect1info>
<title>
Description
@ -215,25 +201,26 @@ FATAL 1: SetUserId: user '<replaceable class="parameter">username</replaceable>
<para>
<application>vacuumdb</application> is a utility for cleaning a
<productname>Postgres</productname> database.
<productname>PostgreSQL</productname> database.
<application>vacuumdb</application> will also generate internal statistics
used by the <productname>Postgres</productname> query optimizer.
</para>
</refsect1>
<refsect1 id="R1-APP-VACUUMDB-2">
<refsect1info>
<date>1998-10-04</date>
</refsect1info>
<title>
Notes
</title>
<para>
See <xref endterm="sql-vacuum-title" linkend="sql-vacuum-title"> for more details.
<application>vacuumdb</application> is a shell script wrapper around the
backend command
<xref linkend="SQL-VACUUM" endterm="SQL-VACUUM-title"> via
the <productname>PostgreSQL</productname> interactive terminal
<xref linkend="APP-PSQL" endterm="APP-PSQL-title">. There is no effective
difference between vacuuming databases via this or other methods.
<application>psql</application> must be found by the script and
a database server must be running at the targeted host. Also, any default
settings and environment variables available to <application>psql</application>
and the <application>libpq</application> front-end library do apply.
</para>
</refsect1>
<refsect1 id="R1-APP-VACUUMDB-3">
<refsect1info>
<date>1998-10-04</date>
@ -241,29 +228,29 @@ FATAL 1: SetUserId: user '<replaceable class="parameter">username</replaceable>
<title>
Usage
</title>
<para>
To clean a database of the same name as the user:
<programlisting>
% vacuumdb
</programlisting>
To clean the database <literal>test</literal>:
<programlisting>
$ vacuumdb test
</programlisting>
</para>
<para>
To analyze a database named <literal>bigdb</literal> for the optimizer:
<programlisting>
% vacuumdb --analyze bigdb
</programlisting>
<programlisting>
$ vacuumdb --analyze bigdb
</programlisting>
</para>
<para>
To analyze a single column <literal>bar</literal> in table <literal>foo</literal>
in a database named <literal>xyzzy</literal> for the optimizer:
<programlisting>
% vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy
</programlisting>
<programlisting>
$ vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy
</programlisting>
</para>
</refsect1>
</refentry>

View File

@ -246,7 +246,7 @@ The runtime path is /usr/local/pgsql (other paths are possible).
<Para>
After running the tests and examining the results, type
<ProgramListing>
destroydb regression
dropdb regression
cd /usr/src/pgsql/src/test/regress
gmake clean
</ProgramListing>

View File

@ -10,7 +10,7 @@
<para>
<application>createuser</application> enables specific users to access
<productname>Postgres</productname>.
<application>destroyuser</application> removes users and
<application>dropuser</application> removes users and
prevents them from accessing <productname>Postgres</productname>.
</para>
@ -115,7 +115,7 @@ Creating Postgres database system directory /home/postgres/data/base
<programlisting>
% createdb -D PGDATA2 test
% destroydb test
% dropdb test
</programlisting>
</para>

View File

@ -305,7 +305,7 @@ mydb=> \q
If you are the database administrator for the database
<Database>mydb</Database>, you can destroy it using the following Unix command:
<ProgramListing>
% destroydb mydb
% dropdb mydb
</ProgramListing>
This action physically removes all of the Unix files
associated with the database and cannot be undone, so

View File

@ -1,7 +1,7 @@
#!/bin/sh
#-------------------------------------------------------------------------
#
# createdb.sh--
# createdb--
# create a postgres database
#
# This program runs psql with the "-c" option to create
@ -11,7 +11,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.1 1999/12/04 04:53:21 momjian Exp $
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.2 1999/12/07 22:41:44 momjian Exp $
#
#-------------------------------------------------------------------------
@ -21,6 +21,7 @@ MB=
PSQLOPT=
dbname=
dbcomment=
dbpath=
while [ $# -gt 0 ]
do
@ -33,12 +34,33 @@ do
--host|-h)
PSQLOPT="$PSQLOPT -h $2"
shift;;
-h*)
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
shift;;
-p*)
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
;;
--user|--username|-U)
PSQLOPT="$PSQLOPT -U $2"
PSQLOPT="$PSQLOPT -U '$2'"
shift;;
-U*)
PSQLOPT="$PSQLOPT $1"
;;
--user=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--user=//'`
;;
--username=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
;;
@ -49,18 +71,24 @@ do
PSQLOPT="$PSQLOPT -o /dev/null"
;;
# options converted into SQL command
--dbpath|-D)
--location|-D)
dbpath="$2"
shift;;
-D*)
dbpath=`echo $1 | sed 's/^-D//'`
;;
--location=*)
dbpath=`echo $1 | sed 's/^--location=//'`
;;
--encoding|-E)
MB=$2
shift
if [ -z `pg_encoding $MB` ]; then
echo "$CMDNAME: $MB is not a valid encoding name"
exit 1
fi
;;
shift;;
-E*)
MB=`echo $1 | sed 's/^-E//'`
;;
--encoding=*)
MB=`echo $1 | sed 's/^--encoding=//'`
;;
-*)
echo "$CMDNAME: Unrecognized option: $1. Try -? for help."
exit 1
@ -78,17 +106,26 @@ done
if [ "$usage" ]; then
echo "Usage: $CMDNAME [-h <server>] [-p <port>] [-D <path>] \\"
echo " [-E <encoding>] [-U <username>] [-W] dbname [description]"
echo "Usage: $CMDNAME [-h server] [-p port] [-D path] \\"
echo " [-E encoding] [-U username] dbname [description]"
exit 0
fi
if [ "$MB" -a -z "`pg_encoding '$MB'`" ]; then
echo "$CMDNAME: \"$MB\" is not a valid encoding name."
exit 1
fi
if [ -z "$dbname" ]; then
echo "$CMDNAME: Missing required argument database name. Try -? for help."
exit 1
fi
dbpath=`echo $dbpath | sed "s/'/\\\\\'/g"`
dbname=`echo $dbname | sed 's/\"/\\\"/g'`
withstring=
[ "$dbpath" ] && withstring="$withstring LOCATION = '$dbpath'"
[ "$MB" ] && withstring="$withstring ENCODING = '$MB'"
@ -103,10 +140,12 @@ fi
# Insert comment as well, if requested
[ -z "$dbcomment" ] && exit 0
psql $PSQLOPT -d template1 -c "COMMENT ON DATABASE \"$dbname\" IS \'$dbcomment\'"
dbcomment=`echo $dbcomment | sed "s/'/\\\\\'/g"`
psql $PSQLOPT -d template1 -c "COMMENT ON DATABASE \"$dbname\" IS '$dbcomment'"
if [ $? -ne 0 ]; then
echo "$CMDNAME: Comment creation failed."
echo "$CMDNAME: Comment creation failed. (Database was created.)"
exit 1
fi
exit 0
exit 0

View File

@ -8,7 +8,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.1 1999/12/05 20:02:48 momjian Exp $
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.2 1999/12/07 22:41:44 momjian Exp $
#
#-------------------------------------------------------------------------

View File

@ -8,7 +8,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.2 1999/12/05 20:52:54 momjian Exp $
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.3 1999/12/07 22:41:44 momjian Exp $
#
# Note - this should NOT be setuid.
#
@ -35,6 +35,7 @@ else
ECHO_C='\c'
fi
while [ $# -gt 0 ]
do
case "$1" in
@ -46,17 +47,38 @@ do
--host|-h)
PSQLOPT="$PSQLOPT -h $2"
shift;;
-h*)
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
shift;;
# Uncomment these lines if you need the -U and -W options.
# They are confusing in this context, however.
# --user|--username|-U)
# PSQLOPT="$PSQLOPT -U $2"
# shift;;
# --password|-W)
# PSQLOPT="$PSQLOPT -W"
# ;;
-p*)
PSQLOPT="$PSQLOPT $1"
;;
--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.
--user|--username|-U)
PSQLOPT="$PSQLOPT -U '$2'"
shift;;
-U*)
PSQLOPT="$PSQLOPT $1"
;;
--user=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--user=//'`
;;
--username=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
;;
--echo|-e)
PSQLOPT="$PSQLOPT -e"
;;
@ -76,6 +98,15 @@ do
--no-adduser|-A)
CanAddUser=f
;;
--sysid|-i)
SysID=$2
shift;;
--sysid=*)
SysID=`echo $1 | sed 's/^--sysid=//'`
;;
-i*)
SysID=`echo $1 | sed 's/^-i//'`
;;
--pwprompt|--pw|-P)
PwPrompt=t
;;
@ -94,11 +125,18 @@ done
# Help
if [ "$usage" ]; then
echo "Usage: $CMDNAME [-h <server>] [-p <port>] [-d|-D] [-a|-A] [-P] [username]"
echo "Usage: $CMDNAME [-h server] [-p port] [-d|-D] [-a|-A] [-P] [-i id] [username]"
exit 0
fi
if [ "$SysID" ]; then
if [ "$SysID" != "`echo $SysID | sed 's/[^0-9]//g'`" ]; then
echo "$CMDNAME: User sysid must be a positive number."
exit 1
fi
fi
# Get missing user attributes
if [ -z "$NewUser" ]; then
@ -108,12 +146,12 @@ if [ -z "$NewUser" ]; then
fi
if [ "$PwPrompt" ]; then
$ECHO_N "Enter password for user $NewUser: "$ECHO_C
$ECHO_N "Enter password for user \"$NewUser\": "$ECHO_C
read Password
fi
if [ -z "$CanCreateDb" ]; then
$ECHO_N "Is the new user allowed to create databases? (y/n) "$ECHO_C
$ECHO_N "Shall the new user be allowed to create databases? (y/n) "$ECHO_C
read REPLY
[ $? -ne 0 ] && exit 1
if [ $REPLY = "y" -o $REPLY = "Y" ]; then
@ -138,9 +176,16 @@ fi
#
# build SQL command
#
NewUser=`echo $NewUser | sed 's/\"/\\\"/g'`
Password=`echo $Password | sed 's/\"/\\\"/g'`
QUERY="CREATE USER \"$NewUser\""
[ "$Password" ] && QUERY="$QUERY WITH PASSWORD \"$Password\""
SUBQUERY=
[ "$SysID" ] && SUBQUERY="$SUBQUERY SYSID $SysID"
[ "$Password" ] && SUBQUERY="$SUBQUERY PASSWORD \"$Password\""
[ "$SUBQUERY" ] && QUERY="$QUERY WITH $SUBQUERY"
[ "$CanCreateDb" = t ] && QUERY="$QUERY CREATEDB"
[ "$CanCreateDb" = f ] && QUERY="$QUERY NOCREATEDB"
[ "$CanAddUser" = t ] && QUERY="$QUERY CREATEUSER"

View File

@ -10,7 +10,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.2 1999/12/05 20:52:54 momjian Exp $
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.3 1999/12/07 22:41:44 momjian Exp $
#
#-------------------------------------------------------------------------
@ -31,6 +31,7 @@ else
ECHO_C='\c'
fi
while [ $# -gt 0 ]
do
case "$1" in
@ -42,12 +43,33 @@ do
--host|-h)
PSQLOPT="$PSQLOPT -h $2"
shift;;
-h*)
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
shift;;
-p*)
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
;;
--user|--username|-U)
PSQLOPT="$PSQLOPT -U $2"
PSQLOPT="$PSQLOPT -U '$2'"
shift;;
-U*)
PSQLOPT="$PSQLOPT $1"
;;
--user=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--user=//'`
;;
--username=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
;;
@ -74,7 +96,7 @@ done
if [ "$usage" ]; then
echo "Usage: $CMDNAME [-h <server>] [-p <port>] [-U <username>] [-W] [-i] dbname"
echo "Usage: $CMDNAME [-h server] [-p port] [-U username] [-i] dbname"
exit 0
fi
@ -94,6 +116,8 @@ if [ "$forcedel" = f ]; then
fi
dbname=`echo $dbname | sed 's/\"/\\\"/g'`
psql $PSQLOPT -d template1 -c "DROP DATABASE \"$dbname\""
if [ $? -ne 0 ]; then
echo "$CMDNAME: Database removal failed."

View File

@ -8,7 +8,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.2 1999/12/05 20:52:54 momjian Exp $
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.3 1999/12/07 22:41:44 momjian Exp $
#
#-------------------------------------------------------------------------
@ -20,6 +20,17 @@ langname=
echo=
list=
# Check for echo -n vs echo \c
if echo '\c' | grep -s c >/dev/null 2>&1
then
ECHO_N="echo -n"
ECHO_C=""
else
ECHO_N="echo"
ECHO_C='\c'
fi
# ----------
# Get options, language name and dbname

View File

@ -2,13 +2,13 @@
#-------------------------------------------------------------------------
#
# dropuser--
# Utility for remocing a user from the PostgreSQL database.
# Utility for removing a user from the PostgreSQL database.
#
# Copyright (c) 1994, Regents of the University of California
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.2 1999/12/05 20:52:54 momjian Exp $
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.3 1999/12/07 22:41:44 momjian Exp $
#
# Note - this should NOT be setuid.
#
@ -17,6 +17,7 @@
CMDNAME=`basename $0`
PSQLOPT=
forcedel=t
DelUser=
# Check for echo -n vs echo \c
@ -29,6 +30,7 @@ else
ECHO_C='\c'
fi
while [ $# -gt 0 ]
do
case "$1" in
@ -40,17 +42,38 @@ do
--host|-h)
PSQLOPT="$PSQLOPT -h $2"
shift;;
-h*)
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
shift;;
# Uncomment these lines if you need the -U and -W options.
# They are confusing in this context, however.
# --user|--username|-U)
# PSQLOPT="$PSQLOPT -U $2"
# shift;;
# --password|-W)
# PSQLOPT="$PSQLOPT -W"
# ;;
-p*)
PSQLOPT="$PSQLOPT $1"
;;
--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.
--user|--username|-U)
PSQLOPT="$PSQLOPT -U '$2'"
shift;;
-U*)
PSQLOPT="$PSQLOPT $1"
;;
--user=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--user=//'`
;;
--username=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
;;
--echo|-e)
PSQLOPT="$PSQLOPT -e"
;;
@ -76,7 +99,7 @@ done
# Help
if [ "$usage" ]; then
echo "Usage: $CMDNAME [-h <server>] [-p <port>] [-i] [username]"
echo "Usage: $CMDNAME [-h server] [-p port] [-i] [username]"
exit 0
fi
@ -84,7 +107,7 @@ fi
if [ -z "$DelUser" ]; then
$ECHO_N "Enter name of user to delete: "$ECHO_C
read NewUser
read DelUser
[ $? -ne 0 ] && exit 1
fi
@ -99,6 +122,8 @@ if [ "$forcedel" = f ]; then
fi
DelUser=`echo $DelUser | sed 's/\"/\\\"/g'`
psql $PSQLOPT -d template1 -c "DROP USER \"$DelUser\""
if [ $? -ne 0 ]; then

View File

@ -11,7 +11,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.2 1999/12/05 20:02:49 momjian Exp $
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.3 1999/12/07 22:41:44 momjian Exp $
#
#-------------------------------------------------------------------------
@ -21,6 +21,7 @@ PSQLOPT=
verbose=
analyze=
table=
dbname=
while [ $# -gt 0 ]
do
@ -33,12 +34,33 @@ do
--host|-h)
PSQLOPT="$PSQLOPT -h $2"
shift;;
-h*)
PSQLOPT="$PSQLOPT $1"
;;
--host=*)
PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
;;
--port|-p)
PSQLOPT="$PSQLOPT -p $2"
shift;;
-p*)
PSQLOPT="$PSQLOPT $1"
;;
--port=*)
PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
;;
--user|--username|-U)
PSQLOPT="$PSQLOPT -U $2"
PSQLOPT="$PSQLOPT -U '$2'"
shift;;
-U*)
PSQLOPT="$PSQLOPT $1"
;;
--user=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--user=//'`
;;
--username=*)
PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
;;
--password|-W)
PSQLOPT="$PSQLOPT -W"
;;
@ -48,6 +70,9 @@ do
--quiet|-q)
PSQLOPT="$PSQLOPT -o /dev/null"
;;
--dbname|--database|-d)
dbname="$2"
shift;;
-d*)
dbname=`echo $1 | sed 's/^-d//'`
;;
@ -59,21 +84,26 @@ do
;;
# options converted into SQL command
--analyze|-z)
analyze="analyze"
analyze="ANALYZE "
;;
--table|-t)
table=$2
table="$2"
shift;;
-t*)
table=`echo $1 | sed 's/^-t//'`
;;
--table=*)
table=`echo $1 | sed 's/^--table=//'`
;;
--verbose|-v)
verbose="verbose"
verbose="VERBOSE "
;;
-*)
echo "$CMDNAME: Unrecognized option: $1. Try -? for help."
exit 1
;;
*)
*)
dbname="$1"
;;
esac
@ -82,7 +112,7 @@ done
if [ "$usage" ]; then
echo "Usage: $CMDNAME [-h <server>] [-p <port>] [-U <username>] [-W] [-d <dbname>] \\"
echo "Usage: $CMDNAME [-h server] [-p port] [-U username] [-d dbname] \\"
echo " [-z|--analyze] [-v|--verbose] [-t|--table 'table[(columns)]'] [dbname]"
exit 0
fi
@ -92,10 +122,10 @@ if [ -z "$dbname" ]; then
exit 1
fi
psql $PSQLOPT -d "$dbname" -c "VACUUM $verbose $analyze $table"
psql $PSQLOPT -d "$dbname" -c "VACUUM $verbose$analyze$table"
if [ $? -ne 0 ]; then
echo "$CMDNAME: Database vacuum failed."
echo "$CMDNAME: Vacuum failed."
exit 1
fi