aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2000-03-26 18:32:30 +0000
committerPeter Eisentraut <peter_e@gmx.net>2000-03-26 18:32:30 +0000
commit4579e68db24e56141e0ed179f23a6021c6d304d3 (patch)
treed91011e7c8727f0f061d0d69a0e5dc8214c77e41
parent3871b69ba1d5d795bbd0d479e982546c1e4c375f (diff)
downloadpostgresql-4579e68db24e56141e0ed179f23a6021c6d304d3.tar.gz
postgresql-4579e68db24e56141e0ed179f23a6021c6d304d3.zip
Updated user's guide to match new psql's output format
Fixed bug in createdb/alternative location
-rw-r--r--doc/src/sgml/array.sgml42
-rw-r--r--doc/src/sgml/datatype.sgml2
-rw-r--r--doc/src/sgml/inherit.sgml42
-rw-r--r--doc/src/sgml/manage-ag.sgml21
-rw-r--r--doc/src/sgml/manage.sgml82
-rw-r--r--doc/src/sgml/ref/abort.sgml3
-rw-r--r--doc/src/sgml/ref/create_database.sgml18
-rw-r--r--doc/src/sgml/ref/create_function.sgml16
-rw-r--r--doc/src/sgml/ref/create_language.sgml36
-rw-r--r--doc/src/sgml/ref/create_view.sgml11
-rw-r--r--doc/src/sgml/ref/delete.sgml32
-rw-r--r--doc/src/sgml/ref/fetch.sgml71
-rw-r--r--doc/src/sgml/ref/initlocation.sgml6
-rw-r--r--doc/src/sgml/ref/listen.sgml8
-rw-r--r--doc/src/sgml/ref/move.sgml18
-rw-r--r--doc/src/sgml/ref/notify.sgml12
-rw-r--r--doc/src/sgml/ref/select.sgml148
-rw-r--r--doc/src/sgml/ref/set.sgml24
-rw-r--r--doc/src/sgml/ref/unlisten.sgml12
-rw-r--r--doc/src/sgml/ref/update.sgml24
-rw-r--r--doc/src/sgml/typeconv.sgml130
-rw-r--r--src/backend/commands/dbcommands.c27
-rw-r--r--src/bin/initlocation/initlocation.sh6
23 files changed, 387 insertions, 404 deletions
diff --git a/doc/src/sgml/array.sgml b/doc/src/sgml/array.sgml
index e6f54b675ac..bbc0a07f560 100644
--- a/doc/src/sgml/array.sgml
+++ b/doc/src/sgml/array.sgml
@@ -56,16 +56,12 @@ INSERT INTO SAL_EMP
whose pay changed in the second quarter:
<ProgramListing>
-SELECT name
- FROM SAL_EMP
- WHERE SAL_EMP.pay_by_quarter[1] &lt;&gt;
- SAL_EMP.pay_by_quarter[2];
+SELECT name FROM sal_emp WHERE pay_by_quarter[1] &lt;&gt; pay_by_quarter[2];
-+------+
-|name |
-+------+
-|Carol |
-+------+
+ name
+-------
+ Carol
+(1 row)
</ProgramListing>
</Para>
@@ -74,16 +70,13 @@ SELECT name
employees:
<ProgramListing>
-SELECT SAL_EMP.pay_by_quarter[3] FROM SAL_EMP;
+SELECT pay_by_quarter[3] FROM sal_emp;
-
-+---------------+
-|pay_by_quarter |
-+---------------+
-|10000 |
-+---------------+
-|25000 |
-+---------------+
+ pay_by_quarter
+----------------
+ 10000
+ 25000
+(2 rows)
</ProgramListing>
</Para>
@@ -93,15 +86,12 @@ SELECT SAL_EMP.pay_by_quarter[3] FROM SAL_EMP;
Bill's schedule for the first two days of the week.
<ProgramListing>
-SELECT SAL_EMP.schedule[1:2][1:1]
- FROM SAL_EMP
- WHERE SAL_EMP.name = 'Bill';
+SELECT schedule[1:2][1:1] FROM sal_emp WHERE name = 'Bill';
-+-------------------+
-|schedule |
-+-------------------+
-|{{"meeting"},{""}} |
-+-------------------+
+ schedule
+--------------------
+ {{"meeting"},{""}}
+(1 row)
</ProgramListing>
</Para>
diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml
index 1bd7d6125cd..1199b20b6a4 100644
--- a/doc/src/sgml/datatype.sgml
+++ b/doc/src/sgml/datatype.sgml
@@ -939,7 +939,7 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceabl
<entry>ISO-8601</entry>
</row>
<row>
- <entry>040506-08/entry>
+ <entry>040506-08</entry>
<entry>ISO-8601</entry>
</row>
</tbody>
diff --git a/doc/src/sgml/inherit.sgml b/doc/src/sgml/inherit.sgml
index 0593da09155..0a49df2c510 100644
--- a/doc/src/sgml/inherit.sgml
+++ b/doc/src/sgml/inherit.sgml
@@ -6,7 +6,7 @@
state capitals which are also cities. Naturally, the
capitals class should inherit from cities.
- <programlisting>
+<programlisting>
CREATE TABLE cities (
name text,
population float,
@@ -16,7 +16,7 @@ CREATE TABLE cities (
CREATE TABLE capitals (
state char(2)
) INHERITS (cities);
- </programlisting>
+</programlisting>
In this case, an instance of capitals <firstterm>inherits</firstterm> all
attributes (name, population, and altitude) from its
@@ -40,19 +40,17 @@ CREATE TABLE capitals (
For example, the following query finds
all the cities that are situated at an attitude of 500ft or higher:
- <programlisting>
+<programlisting>
SELECT name, altitude
FROM cities
WHERE altitude &gt; 500;
-+----------+----------+
-|name | altitude |
-+----------+----------+
-|Las Vegas | 2174 |
-+----------+----------+
-|Mariposa | 1953 |
-+----------+----------+
- </programlisting>
+ name | altitude
+-----------+----------
+ Las Vegas | 2174
+ Mariposa | 1953
+(2 rows)
+</programlisting>
</para>
<para>
@@ -60,25 +58,21 @@ SELECT name, altitude
including state capitals, that are located at an altitude
over 500ft, the query is:
- <programlisting>
+<programlisting>
SELECT c.name, c.altitude
FROM cities* c
WHERE c.altitude > 500;
- </programlisting>
+</programlisting>
which returns:
- <programlisting>
-+----------+----------+
-|name | altitude |
-+----------+----------+
-|Las Vegas | 2174 |
-+----------+----------+
-|Mariposa | 1953 |
-+----------+----------+
-|Madison | 845 |
-+----------+----------+
- </programlisting>
+<programlisting>
+ name | altitude
+-----------+----------
+ Las Vegas | 2174
+ Mariposa | 1953
+ Madison | 845
+</programlisting>
Here the <quote>*</quote> after cities indicates that the query should
be run over cities and all classes below cities in the
diff --git a/doc/src/sgml/manage-ag.sgml b/doc/src/sgml/manage-ag.sgml
index 6f62234313c..6b66ff6d14c 100644
--- a/doc/src/sgml/manage-ag.sgml
+++ b/doc/src/sgml/manage-ag.sgml
@@ -65,22 +65,23 @@
to try out the examples in this manual. It can be activated for the
<replaceable class="parameter">dbname</replaceable> database by typing the command:
- <programlisting>
-% psql <replaceable class="parameter">dbname</replaceable>
- </programlisting>
+<programlisting>
+psql <replaceable class="parameter">dbname</replaceable>
+</programlisting>
You will be greeted with the following message:
- <programlisting>
-Welcome to the Postgres interactive sql monitor:
+<programlisting>
+Welcome to psql, the PostgreSQL interactive terminal.
- type \? for help on slash commands
- type \q to quit
- type \g or terminate with semicolon to execute query
-You are currently connected to the database: <replaceable>dbname</replaceable>
+Type: \copyright for distribution terms
+ \h for help with SQL commands
+ \? for help on internal slash commands
+ \g or terminate with semicolon to execute query
+ \q to quit
<replaceable>dbname</replaceable>=&gt;
- </programlisting>
+</programlisting>
</para>
<para>
diff --git a/doc/src/sgml/manage.sgml b/doc/src/sgml/manage.sgml
index d4acd9d7bd3..c2d44e546f7 100644
--- a/doc/src/sgml/manage.sgml
+++ b/doc/src/sgml/manage.sgml
@@ -43,24 +43,22 @@
<Para>
To create a new database named <Quote>mydb</Quote> from the command line, type
- <ProgramListing>
+<ProgramListing>
% createdb mydb
- </ProgramListing>
+</ProgramListing>
and to do the same from within <Application>psql</Application> type
- <ProgramListing>
-* CREATE DATABASE mydb;
- </ProgramListing>
+<ProgramListing>
+=> CREATE DATABASE mydb;
+</ProgramListing>
</Para>
<Para>
If you do not have the privileges required to create a database, you will see
the following:
- <ProgramListing>
-% createdb mydb
-WARN:user "your username" is not allowed to create/destroy databases
-createdb: database creation failed on mydb.
- </ProgramListing>
+<ProgramListing>
+ERROR: CREATE DATABASE: Permission denied.
+</ProgramListing>
</Para>
<Para>
@@ -123,45 +121,41 @@ createdb: database creation failed on mydb.
ensure that <FileName>/alt/postgres</FileName> already exists and is writable by
the Postgres administrator account.
Then, from the command line, type
- <ProgramListing>
-% initlocation $PGDATA2
+<ProgramListing>
+% initlocation PGDATA2
Creating Postgres database system directory /alt/postgres/data
Creating Postgres database system directory /alt/postgres/data/base
- </ProgramListing>
+</ProgramListing>
</Para>
<Para>
To create a database in the alternate storage area <envar>PGDATA2</envar>
from the command line, use the following command:
- <ProgramListing>
+<ProgramListing>
% createdb -D PGDATA2 mydb
- </ProgramListing>
+</ProgramListing>
and to do the same from within <Application>psql</Application> type
- <ProgramListing>
-* CREATE DATABASE mydb WITH LOCATION = 'PGDATA2';
- </ProgramListing>
+<ProgramListing>
+=> CREATE DATABASE mydb WITH LOCATION = 'PGDATA2';
+</ProgramListing>
</Para>
<Para>
If you do not have the privileges required to create a database, you will see
the following:
- <ProgramListing>
-% createdb mydb
-WARN:user "your username" is not allowed to create/destroy databases
-createdb: database creation failed on mydb.
- </ProgramListing>
+<ProgramListing>
+ERROR: CREATE DATABASE: permission denied
+</ProgramListing>
</Para>
<Para>
If the specified location does not exist or the database backend does not have
permission to access it or to write to directories under it, you will see
the following:
- <ProgramListing>
-% createdb -D /alt/postgres/data mydb
-ERROR: Unable to create database directory /alt/postgres/data/base/mydb
-createdb: database creation failed on mydb.
- </ProgramListing>
+<ProgramListing>
+ERROR: The database path '/no/where' is invalid. This may be due to a character that is not allowed or because the chosen path isn't permitted for databases.
+</ProgramListing>
</Para>
</Sect1>
@@ -176,9 +170,9 @@ createdb: database creation failed on mydb.
<ItemizedList Mark="bullet" Spacing="compact">
<ListItem>
<Para>
-running the <ProductName>Postgres</ProductName> terminal monitor programs (e.g.
- <Application>psql</Application>) which allows you to interactively
- enter, edit, and execute <Acronym>SQL</Acronym> commands.
+running the <ProductName>PostgreSQL</ProductName> interactive terminal
+<Application>psql</Application> which allows you to interactively
+enter, edit, and execute <Acronym>SQL</Acronym> commands.
</Para>
</ListItem>
<ListItem>
@@ -202,26 +196,26 @@ to try out the examples in this manual.
You will be greeted with the following message:
<ProgramListing>
-Welcome to the POSTGRESQL interactive sql monitor:
- Please read the file COPYRIGHT for copyright terms of POSTGRESQL
-
- type \? for help on slash commands
- type \q to quit
- type \g or terminate with semicolon to execute query
- You are currently connected to the database: template1
+Welcome to psql, the PostgreSQL interactive terminal.
+
+Type: \copyright for distribution terms
+ \h for help with SQL commands
+ \? for help on internal slash commands
+ \g or terminate with semicolon to execute query
+ \q to quit
mydb=>
</ProgramListing>
</Para>
<Para>
-This prompt indicates that the terminal monitor is listening
+This prompt indicates that psql is listening
to you and that you can type <Acronym>SQL</Acronym> queries into a
workspace maintained by the terminal monitor.
The <Application>psql</Application> program responds to escape codes that begin
with the backslash character, <Quote>\</Quote> For example, you
can get help on the syntax of various
- <ProductName>Postgres</ProductName> <Acronym>SQL</Acronym> commands by typing:
+ <ProductName>PostgreSQL</ProductName> <Acronym>SQL</Acronym> commands by typing:
<ProgramListing>
mydb=> \h
</ProgramListing>
@@ -249,7 +243,7 @@ mydb=> \q
</ProgramListing>
and <Application>psql</Application> will quit and return you to your command
- shell. (For more escape codes, type <Command>\h</Command> at the monitor
+ shell. (For more escape codes, type <Command>\?</Command> at the psql
prompt.)
White space (i.e., spaces, tabs and newlines) may be
used freely in <Acronym>SQL</Acronym> queries. Single-line comments are denoted by
@@ -280,14 +274,14 @@ TBD
<Title>Destroying a Database</Title>
<Para>
- If you are the database administrator for the database
+ If you are the owner of the database
<Database>mydb</Database>, you can destroy it using the following Unix command:
<ProgramListing>
% dropdb mydb
</ProgramListing>
- This action physically removes all of the Unix files
+ This action physically removes all of the Unix files
associated with the database and cannot be undone, so
- this should only be done with a great deal of forethought.
+ this should only be done with a great deal of forethought.
</Para>
</Sect1>
diff --git a/doc/src/sgml/ref/abort.sgml b/doc/src/sgml/ref/abort.sgml
index c31fcb2acbf..062e6603322 100644
--- a/doc/src/sgml/ref/abort.sgml
+++ b/doc/src/sgml/ref/abort.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/abort.sgml,v 1.5 2000/01/29 16:58:27 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/abort.sgml,v 1.6 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -63,7 +63,6 @@ ROLLBACK
<varlistentry>
<term><computeroutput>
NOTICE: ROLLBACK: no transaction in progress
-ROLLBACK
</computeroutput></term>
<listitem>
<para>
diff --git a/doc/src/sgml/ref/create_database.sgml b/doc/src/sgml/ref/create_database.sgml
index 5dc6dca9bce..c8de74eee51 100644
--- a/doc/src/sgml/ref/create_database.sgml
+++ b/doc/src/sgml/ref/create_database.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.11 1999/12/12 05:15:09 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.12 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -245,13 +245,15 @@ comment from Olly; response from Thomas...
<computeroutput>Creating Postgres database system directory /home/olly/private_db/base</computeroutput>
<prompt>$</prompt> <userinput>psql olly</userinput>
-<computeroutput>Welcome to psql, the PostgreSQL interactive terminal.
-(Please type \copyright to see the distribution terms of PostgreSQL.)
+<computeroutput>
+Welcome to psql, the PostgreSQL interactive terminal.
-Type \h for help with SQL commands,
- \? for help on internal slash commands,
- \q to quit,
- \g or terminate with semicolon to execute query.
+Type: \copyright for distribution terms
+ \h for help with SQL commands
+ \? for help on internal slash commands
+ \g or terminate with semicolon to execute query
+ \q to quit
+
<prompt>olly=></prompt></computeroutput> <userinput>CREATE DATABASE elsewhere WITH LOCATION = '/home/olly/private_db';</userinput>
<computeroutput>CREATE DATABASE</computeroutput>
</programlisting>
@@ -272,7 +274,7 @@ Type \h for help with SQL commands,
</title>
<para>
There is no <command>CREATE DATABASE</command> statement in SQL92.
- The equivalent command in standard SQL is <command>CREATE SCHEMA</command>.
+ Databases are equivalent to catalogs whose creation is implementation-defined.
</para>
</refsect2>
</refsect1>
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml
index 3fb87b57f83..3333171319b 100644
--- a/doc/src/sgml/ref/create_function.sgml
+++ b/doc/src/sgml/ref/create_function.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.11 1999/10/02 21:27:49 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.12 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -242,18 +242,18 @@ CREATE
<para>
To create a simple SQL function:
- <programlisting>
+<programlisting>
CREATE FUNCTION one() RETURNS int4
AS 'SELECT 1 AS RESULT'
LANGUAGE 'sql';
SELECT one() AS answer;
- <computeroutput>
- answer
- ------
- 1
- </computeroutput>
- </programlisting>
+<computeroutput>
+ answer
+--------
+ 1
+</computeroutput>
+</programlisting>
</para>
<para>
diff --git a/doc/src/sgml/ref/create_language.sgml b/doc/src/sgml/ref/create_language.sgml
index 7cdb4038256..580490b3570 100644
--- a/doc/src/sgml/ref/create_language.sgml
+++ b/doc/src/sgml/ref/create_language.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.8 1999/07/22 15:09:07 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.9 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -231,24 +231,24 @@ ERROR: PL handler function <replaceable class="parameter">funcname</replaceable
<para>
Refer to the table <filename>pg_language</filename>
for further information:
- <programlisting>
- <computeroutput>
-Table = pg_language
-+--------------------------+--------------------------+-------+
-| Field | Type | Length|
-+--------------------------+--------------------------+-------+
-| lanname | name | 32 |
-| lancompiler | text | var |
-+--------------------------+--------------------------+-------+
+<programlisting>
+<computeroutput>
+ Table "pg_language"
+ Attribute | Type | Modifier
+---------------+---------+----------
+ lanname | name |
+ lanispl | boolean |
+ lanpltrusted | boolean |
+ lanplcallfoid | oid |
+ lancompiler | text |
-lanname |lancompiler
---------+--------------
-internal|n/a
-lisp |/usr/ucb/liszt
-C |/bin/cc
-sql |postgres
- </computeroutput>
- </programlisting>
+ lanname | lanispl | lanpltrusted | lanplcallfoid | lancompiler
+----------+---------+--------------+---------------+-------------
+ internal | f | f | 0 | n/a
+ C | f | f | 0 | /bin/cc
+ sql | f | f | 0 | postgres
+</computeroutput>
+</programlisting>
</para>
<para>
diff --git a/doc/src/sgml/ref/create_view.sgml b/doc/src/sgml/ref/create_view.sgml
index dbfdc5261a2..aa25b0746db 100644
--- a/doc/src/sgml/ref/create_view.sgml
+++ b/doc/src/sgml/ref/create_view.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_view.sgml,v 1.7 1999/07/22 15:09:08 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_view.sgml,v 1.8 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -160,10 +160,11 @@ CREATE VIEW kinds AS
SELECT * FROM kinds;
-code |title |did| date_prod|kind |len
------+-------------------------+---+----------+----------+------
-UA502|Bananas |105|1971-07-13|Comedy | 01:22
-C_701|There's a Girl in my Soup|107|1970-06-11|Comedy | 01:36
+ code | title | did | date_prod | kind | len
+-------+---------------------------+-----+------------+--------+-------
+ UA502 | Bananas | 105 | 1971-07-13 | Comedy | 01:22
+ C_701 | There's a Girl in my Soup | 107 | 1970-06-11 | Comedy | 01:36
+(2 rows)
</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/delete.sgml b/doc/src/sgml/ref/delete.sgml
index c27a4b9a013..f53b87280df 100644
--- a/doc/src/sgml/ref/delete.sgml
+++ b/doc/src/sgml/ref/delete.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/delete.sgml,v 1.9 1999/10/04 04:37:46 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/delete.sgml,v 1.10 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -131,33 +131,33 @@ DELETE <replaceable class="parameter">count</replaceable>
</title>
<para>
Remove all films but musicals:
- <programlisting>
+<programlisting>
DELETE FROM films WHERE kind &lt;&gt; 'Musical';
SELECT * FROM films;
- <computeroutput>
-code |title |did| date_prod|kind |len
------+-------------------------+---+----------+----------+------
-UA501|West Side Story |105|1961-01-03|Musical | 02:32
-TC901|The King and I |109|1956-08-11|Musical | 02:13
-WD101|Bed Knobs and Broomsticks|111| |Musical | 01:57
+<computeroutput>
+ code | title | did | date_prod | kind | len
+-------+---------------------------+-----+------------+---------+-------
+ UA501 | West Side Story | 105 | 1961-01-03 | Musical | 02:32
+ TC901 | The King and I | 109 | 1956-08-11 | Musical | 02:13
+ WD101 | Bed Knobs and Broomsticks | 111 | | Musical | 01:57
(3 rows)
- </computeroutput>
- </programlisting>
+</computeroutput>
+</programlisting>
</para>
<para>
Clear the table <literal>films</literal>:
- <programlisting>
+<programlisting>
DELETE FROM films;
SELECT * FROM films;
- <computeroutput>
-code|title|did|date_prod|kind|len
-----+-----+---+---------+----+---
+<computeroutput>
+ code | title | did | date_prod | kind | len
+------+-------+-----+-----------+------+-----
(0 rows)
- </computeroutput>
- </programlisting>
+</computeroutput>
+</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/fetch.sgml b/doc/src/sgml/ref/fetch.sgml
index db072d9f5fa..1fa025361e0 100644
--- a/doc/src/sgml/ref/fetch.sgml
+++ b/doc/src/sgml/ref/fetch.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/fetch.sgml,v 1.7 1999/07/22 15:09:12 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/fetch.sgml,v 1.8 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -299,42 +299,39 @@ FETCH RELATIVE 0 FROM <replaceable class="PARAMETER">cursor</replaceable>
<para>
The following examples traverses a table using a cursor.
- <programlisting>
- --set up and use a cursor:
- --
- BEGIN WORK;
- DECLARE liahona CURSOR
- FOR SELECT * FROM films;
-
- --Fetch first 5 rows in the cursor liahona:
- --
- FETCH FORWARD 5 IN liahona;
-
- <computeroutput>
- code |title |did| date_prod|kind |len
- -----+-----------------------+---+----------+----------+------
- BL101|The Third Man |101|1949-12-23|Drama | 01:44
- BL102|The African Queen |101|1951-08-11|Romantic | 01:43
- JL201|Une Femme est une Femme|102|1961-03-12|Romantic | 01:25
- P_301|Vertigo |103|1958-11-14|Action | 02:08
- P_302|Becket |103|1964-02-03|Drama | 02:28
- </computeroutput>
-
- --Fetch previous row:
- --
- FETCH BACKWARD 1 IN liahona;
-
- <computeroutput>
- code |title |did| date_prod|kind |len
- -----+-----------------------+---+----------+----------+------
- P_301|Vertigo |103|1958-11-14|Action | 02:08
- </computeroutput>
-
- -- close the cursor and commit work:
- --
- CLOSE liahona;
- COMMIT WORK;
- </programlisting>
+<programlisting>
+-- set up and use a cursor:
+
+BEGIN WORK;
+DECLARE liahona CURSOR FOR SELECT * FROM films;
+
+-- Fetch first 5 rows in the cursor liahona:
+FETCH FORWARD 5 IN liahona;
+
+<computeroutput>
+ code | title | did | date_prod | kind | len
+-------+-------------------------+-----+------------+----------+-------
+ BL101 | The Third Man | 101 | 1949-12-23 | Drama | 01:44
+ BL102 | The African Queen | 101 | 1951-08-11 | Romantic | 01:43
+ JL201 | Une Femme est une Femme | 102 | 1961-03-12 | Romantic | 01:25
+ P_301 | Vertigo | 103 | 1958-11-14 | Action | 02:08
+ P_302 | Becket | 103 | 1964-02-03 | Drama | 02:28
+</computeroutput>
+
+-- Fetch previous row:
+FETCH BACKWARD 1 IN liahona;
+
+<computeroutput>
+ code | title | did | date_prod | kind | len
+-------+---------+-----+------------+--------+-------
+ P_301 | Vertigo | 103 | 1958-11-14 | Action | 02:08
+</computeroutput>
+
+-- close the cursor and commit work:
+
+CLOSE liahona;
+COMMIT WORK;
+</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/initlocation.sgml b/doc/src/sgml/ref/initlocation.sgml
index 2a123498663..e5228e8138b 100644
--- a/doc/src/sgml/ref/initlocation.sgml
+++ b/doc/src/sgml/ref/initlocation.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/initlocation.sgml,v 1.5 2000/01/18 00:03:34 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/initlocation.sgml,v 1.6 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -96,7 +96,7 @@ initlocation <replaceable class="parameter">directory</replaceable>
<programlisting>
$ export PGDATA2=/opt/postgres/data
$ initlocation PGDATA2
-$ createdb 'testdb' -D 'PGDATA2/testdb'
+$ createdb 'testdb' -D 'PGDATA2'
</programlisting>
</para>
@@ -104,7 +104,7 @@ $ createdb 'testdb' -D 'PGDATA2/testdb'
Alternatively, if you allow absolute paths you could write:
<programlisting>
$ initlocation /opt/postgres/data
-$ createdb 'testdb' -D '/opt/postgres/data/testdb'
+$ createdb testdb -D '/opt/postgres/data/testdb'
</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/listen.sgml b/doc/src/sgml/ref/listen.sgml
index b03ea67808f..4908ab44ab9 100644
--- a/doc/src/sgml/ref/listen.sgml
+++ b/doc/src/sgml/ref/listen.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/listen.sgml,v 1.7 1999/07/22 15:09:12 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/listen.sgml,v 1.8 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -166,12 +166,12 @@ NOTICE Async_Listen: We are already listening on <replaceable class="PARAMETER">
</title>
<para>
Configure and execute a listen/notify sequence from <application>psql</application>:
- <programlisting>
+<programlisting>
LISTEN virtual;
NOTIFY virtual;
-ASYNC NOTIFY of 'virtual' from backend pid '11239' received
- </programlisting>
+Asynchronous NOTIFY 'virtual' from backend with pid '8448' received.
+</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/move.sgml b/doc/src/sgml/ref/move.sgml
index eeb74bd9aae..8e6a3b014db 100644
--- a/doc/src/sgml/ref/move.sgml
+++ b/doc/src/sgml/ref/move.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/move.sgml,v 1.6 1999/07/22 15:09:13 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/move.sgml,v 1.7 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -86,28 +86,28 @@ MOVE [ <replaceable class="PARAMETER">selector</replaceable> ] [ <replaceable cl
<para>
Set up and use a cursor:
- <programlisting>
+<programlisting>
BEGIN WORK;
DECLARE liahona CURSOR FOR SELECT * FROM films;
---Skip first 5 rows:
+-- Skip first 5 rows:
MOVE FORWARD 5 IN liahona;
<computeroutput>
MOVE
</computeroutput>
---Fetch 6th row in the cursor liahona:
+-- Fetch 6th row in the cursor liahona:
FETCH 1 IN liahona;
<computeroutput>
FETCH
- code |title |did| date_prod|kind |len
- -----+------+---+----------+----------+------
- P_303|48 Hrs|103|1982-10-22|Action | 01:37
- (1 row)
+ code | title | did | date_prod | kind | len
+-------+--------+-----+-----------+--------+-------
+ P_303 | 48 Hrs | 103 | 1982-10-22| Action | 01:37
+(1 row)
</computeroutput>
-- close the cursor liahona and commit work:
CLOSE liahona;
COMMIT WORK;
- </programlisting>
+</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/notify.sgml b/doc/src/sgml/ref/notify.sgml
index 91dc5f4a100..eb506985748 100644
--- a/doc/src/sgml/ref/notify.sgml
+++ b/doc/src/sgml/ref/notify.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/notify.sgml,v 1.10 1999/07/22 15:09:13 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/notify.sgml,v 1.11 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -208,11 +208,11 @@ NOTIFY
Configure and execute a listen/notify sequence from
<application>psql</application>:
- <programlisting>
-LISTEN virtual;
-NOTIFY virtual;
-ASYNC NOTIFY of 'virtual' from backend pid '11239' received
- </programlisting>
+<programlisting>
+=> LISTEN virtual;
+=> NOTIFY virtual;
+Asynchronous NOTIFY 'virtual' from backend with pid '8448' received.
+</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml
index c88d9b54f92..2aa6b8369b3 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.26 2000/03/15 23:31:19 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.27 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -609,43 +609,45 @@ SELECT f.title, f.did, d.name, f.date_prod, f.kind
FROM distributors d, films f
WHERE f.did = d.did
-title |did|name | date_prod|kind
--------------------------+---+----------------+----------+----------
-The Third Man |101|British Lion |1949-12-23|Drama
-The African Queen |101|British Lion |1951-08-11|Romantic
-Une Femme est une Femme |102|Jean Luc Godard |1961-03-12|Romantic
-Vertigo |103|Paramount |1958-11-14|Action
-Becket |103|Paramount |1964-02-03|Drama
-48 Hrs |103|Paramount |1982-10-22|Action
-War and Peace |104|Mosfilm |1967-02-12|Drama
-West Side Story |105|United Artists |1961-01-03|Musical
-Bananas |105|United Artists |1971-07-13|Comedy
-Yojimbo |106|Toho |1961-06-16|Drama
-There's a Girl in my Soup|107|Columbia |1970-06-11|Comedy
-Taxi Driver |107|Columbia |1975-05-15|Action
-Absence of Malice |107|Columbia |1981-11-15|Action
-Storia di una donna |108|Westward |1970-08-15|Romantic
-The King and I |109|20th Century Fox|1956-08-11|Musical
-Das Boot |110|Bavaria Atelier |1981-11-11|Drama
-Bed Knobs and Broomsticks|111|Walt Disney | |Musical
- </programlisting>
+ title | did | name | date_prod | kind
+---------------------------+-----+------------------+------------+----------
+ The Third Man | 101 | British Lion | 1949-12-23 | Drama
+ The African Queen | 101 | British Lion | 1951-08-11 | Romantic
+ Une Femme est une Femme | 102 | Jean Luc Godard | 1961-03-12 | Romantic
+ Vertigo | 103 | Paramount | 1958-11-14 | Action
+ Becket | 103 | Paramount | 1964-02-03 | Drama
+ 48 Hrs | 103 | Paramount | 1982-10-22 | Action
+ War and Peace | 104 | Mosfilm | 1967-02-12 | Drama
+ West Side Story | 105 | United Artists | 1961-01-03 | Musical
+ Bananas | 105 | United Artists | 1971-07-13 | Comedy
+ Yojimbo | 106 | Toho | 1961-06-16 | Drama
+ There's a Girl in my Soup | 107 | Columbia | 1970-06-11 | Comedy
+ Taxi Driver | 107 | Columbia | 1975-05-15 | Action
+ Absence of Malice | 107 | Columbia | 1981-11-15 | Action
+ Storia di una donna | 108 | Westward | 1970-08-15 | Romantic
+ The King and I | 109 | 20th Century Fox | 1956-08-11 | Musical
+ Das Boot | 110 | Bavaria Atelier | 1981-11-11 | Drama
+ Bed Knobs and Broomsticks | 111 | Walt Disney | | Musical
+(17 rows)
+</programlisting>
</para>
<para>
To sum the column <literal>len</literal> of all films and group
the results by <literal>kind</literal>:
- <programlisting>
+<programlisting>
SELECT kind, SUM(len) AS total FROM films GROUP BY kind;
- kind |total
- ----------+------
- Action | 07:34
- Comedy | 02:58
- Drama | 14:28
- Musical | 06:42
- Romantic | 04:38
- </programlisting>
+ kind | total
+----------+-------
+ Action | 07:34
+ Comedy | 02:58
+ Drama | 14:28
+ Musical | 06:42
+ Romantic | 04:38
+(5 rows)
+</programlisting>
</para>
<para>
@@ -653,17 +655,18 @@ SELECT kind, SUM(len) AS total FROM films GROUP BY kind;
the results by <literal>kind</literal> and show those group totals
that are less than 5 hours:
- <programlisting>
+<programlisting>
SELECT kind, SUM(len) AS total
FROM films
GROUP BY kind
HAVING SUM(len) < INTERVAL '5 hour';
- kind |total
- ----------+------
- Comedy | 02:58
- Romantic | 04:38
- </programlisting>
+ kind | total
+----------+-------
+ Comedy | 02:58
+ Romantic | 04:38
+(2 rows)
+</programlisting>
</para>
<para>
@@ -675,22 +678,23 @@ SELECT kind, SUM(len) AS total
SELECT * FROM distributors ORDER BY name;
SELECT * FROM distributors ORDER BY 2;
- did|name
- ---+----------------
- 109|20th Century Fox
- 110|Bavaria Atelier
- 101|British Lion
- 107|Columbia
- 102|Jean Luc Godard
- 113|Luso films
- 104|Mosfilm
- 103|Paramount
- 106|Toho
- 105|United Artists
- 111|Walt Disney
- 112|Warner Bros.
- 108|Westward
- </programlisting>
+ did | name
+-----+------------------
+ 109 | 20th Century Fox
+ 110 | Bavaria Atelier
+ 101 | British Lion
+ 107 | Columbia
+ 102 | Jean Luc Godard
+ 113 | Luso films
+ 104 | Mosfilm
+ 103 | Paramount
+ 106 | Toho
+ 105 | United Artists
+ 111 | Walt Disney
+ 112 | Warner Bros.
+ 108 | Westward
+(13 rows)
+</programlisting>
</para>
<para>
@@ -700,14 +704,14 @@ SELECT * FROM distributors ORDER BY 2;
with letter W in each table. Only distinct rows are wanted, so the
ALL keyword is omitted:
- <programlisting>
- -- distributors: actors:
- -- did|name id|name
- -- ---+------------ --+--------------
- -- 108|Westward 1|Woody Allen
- -- 111|Walt Disney 2|Warren Beatty
- -- 112|Warner Bros. 3|Walter Matthau
- -- ... ...
+<programlisting>
+distributors: actors:
+ did | name id | name
+-----+-------------- ----+----------------
+ 108 | Westward 1 | Woody Allen
+ 111 | Walt Disney 2 | Warren Beatty
+ 112 | Warner Bros. 3 | Walter Matthau
+ ... ...
SELECT distributors.name
FROM distributors
@@ -717,15 +721,15 @@ SELECT actors.name
FROM actors
WHERE actors.name LIKE 'W%'
-name
---------------
-Walt Disney
-Walter Matthau
-Warner Bros.
-Warren Beatty
-Westward
-Woody Allen
- </programlisting>
+ name
+----------------
+ Walt Disney
+ Walter Matthau
+ Warner Bros.
+ Warren Beatty
+ Westward
+ Woody Allen
+</programlisting>
</para>
</refsect1>
@@ -749,9 +753,9 @@ was retained from the original PostQuel query language:
<programlisting>
SELECT distributors.* WHERE name = 'Westwood';
- did|name
- ---+----------------
- 108|Westward
+ did | name
+-----+----------
+ 108 | Westward
</programlisting>
</para>
</refsect2>
diff --git a/doc/src/sgml/ref/set.sgml b/doc/src/sgml/ref/set.sgml
index cd6265eed6a..b02440ecf53 100644
--- a/doc/src/sgml/ref/set.sgml
+++ b/doc/src/sgml/ref/set.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.32 2000/03/17 05:29:03 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.33 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -905,25 +905,25 @@ SET GEQO = DEFAULT;
Set the timezone for Berkeley, California:
- <programlisting>
+<programlisting>
SET TIME ZONE 'PST8PDT';
SELECT CURRENT_TIMESTAMP AS today;
- today
- ----------------------
- 1998-03-31 07:41:21-08
- </programlisting>
+ today
+------------------------
+ 1998-03-31 07:41:21-08
+</programlisting>
- Set the timezone for Italy:
+Set the timezone for Italy:
- <programlisting>
+<programlisting>
SET TIME ZONE 'Europe/Rome';
SELECT CURRENT_TIMESTAMP AS today;
- today
- ----------------------
- 1998-03-31 17:41:31+02
- </programlisting>
+ today
+------------------------
+ 1998-03-31 17:41:31+02
+</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/unlisten.sgml b/doc/src/sgml/ref/unlisten.sgml
index d872dd98a0e..76bd4f805a5 100644
--- a/doc/src/sgml/ref/unlisten.sgml
+++ b/doc/src/sgml/ref/unlisten.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/unlisten.sgml,v 1.8 1999/07/22 15:09:15 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/unlisten.sgml,v 1.9 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -142,26 +142,26 @@ UNLISTEN { <replaceable class="PARAMETER">notifyname</replaceable> | * }
<para>
To subscribe to an existing registration:
- <programlisting>
+<programlisting>
postgres=> LISTEN virtual;
LISTEN
postgres=> NOTIFY virtual;
NOTIFY
-ASYNC NOTIFY of 'virtual' from backend pid '12317' received
- </programlisting>
+Asynchronous NOTIFY 'virtual' from backend with pid '8448' received
+</programlisting>
</para>
<para>
Once UNLISTEN has been executed, further NOTIFY commands will be
ignored:
- <programlisting>
+<programlisting>
postgres=> UNLISTEN virtual;
UNLISTEN
postgres=> NOTIFY virtual;
NOTIFY
-- notice no NOTIFY event is received
- </programlisting>
+</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/update.sgml b/doc/src/sgml/ref/update.sgml
index 7c33e31e37f..8f4858de3bd 100644
--- a/doc/src/sgml/ref/update.sgml
+++ b/doc/src/sgml/ref/update.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/update.sgml,v 1.7 2000/01/29 16:58:27 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/update.sgml,v 1.8 2000/03/26 18:32:27 petere Exp $
Postgres documentation
-->
@@ -150,20 +150,18 @@ UPDATE <replaceable class="parameter">#</replaceable>
<para>
Change word "Drama" with "Dramatic" on column kind:
- <programlisting>
-UPDATE films
- SET kind = 'Dramatic'
- WHERE kind = 'Drama';
+<programlisting>
+UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';
SELECT * FROM films WHERE kind = 'Dramatic' OR kind = 'Drama';
- code |title |did| date_prod|kind |len
- -----+-------------+---+----------+----------+------
- BL101|The Third Man|101|1949-12-23|Dramatic | 01:44
- P_302|Becket |103|1964-02-03|Dramatic | 02:28
- M_401|War and Peace|104|1967-02-12|Dramatic | 05:57
- T_601|Yojimbo |106|1961-06-16|Dramatic | 01:50
- DA101|Das Boot |110|1981-11-11|Dramatic | 02:29
- </programlisting>
+ code | title | did | date_prod | kind | len
+-------+---------------+-----+------------+----------+-------
+ BL101 | The Third Man | 101 | 1949-12-23 | Dramatic | 01:44
+ P_302 | Becket | 103 | 1964-02-03 | Dramatic | 02:28
+ M_401 | War and Peace | 104 | 1967-02-12 | Dramatic | 05:57
+ T_601 | Yojimbo | 106 | 1961-06-16 | Dramatic | 01:50
+ DA101 | Das Boot | 110 | 1981-11-11 | Dramatic | 02:29
+</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/typeconv.sgml b/doc/src/sgml/typeconv.sgml
index 12388f43390..eda42522ccc 100644
--- a/doc/src/sgml/typeconv.sgml
+++ b/doc/src/sgml/typeconv.sgml
@@ -52,9 +52,9 @@ to start the parser down the correct path. For example, the query
<programlisting>
tgl=> SELECT text 'Origin' AS "Label", point '(0,0)' AS "Value";
-Label |Value
-------+-----
-Origin|(0,0)
+ Label | Value
+--------+-------
+ Origin | (0,0)
(1 row)
</programlisting>
@@ -295,9 +295,9 @@ The scanner assigns an initial type of <type>int4</type> to both arguments
of this query expression:
<programlisting>
tgl=> select 2 ^ 3 AS "Exp";
-Exp
----
- 8
+ Exp
+-----
+ 8
(1 row)
</programlisting>
@@ -306,9 +306,9 @@ is equivalent to
<programlisting>
tgl=> select float8(2) ^ float8(3) AS "Exp";
-Exp
----
- 8
+ Exp
+-----
+ 8
(1 row)
</programlisting>
@@ -316,9 +316,9 @@ or
<programlisting>
tgl=> select 2.0 ^ 3.0 AS "Exp";
-Exp
----
- 8
+ Exp
+-----
+ 8
(1 row)
</programlisting>
@@ -345,9 +345,9 @@ Strings with unspecified type are matched with likely operator candidates.
One unspecified argument:
<programlisting>
tgl=> SELECT text 'abc' || 'def' AS "Text and Unknown";
-Text and Unknown
-----------------
-abcdef
+ Text and Unknown
+------------------
+ abcdef
(1 row)
</programlisting>
</para>
@@ -362,9 +362,9 @@ be interpreted as of type <type>text</type>.
Concatenation on unspecified types:
<programlisting>
tgl=> SELECT 'abc' || 'def' AS "Unspecified";
-Unspecified
------------
-abcdef
+ Unspecified
+-------------
+ abcdef
(1 row)
</programlisting>
</para>
@@ -398,9 +398,9 @@ factorial.
<programlisting>
tgl=> select (4.3 !);
-?column?
---------
- 24
+ ?column?
+----------
+ 24
(1 row)
</programlisting>
@@ -481,18 +481,18 @@ to <type>int4</type>:
<programlisting>
tgl=> select int4fac(int2 '4');
-int4fac
--------
- 24
+ int4fac
+---------
+ 24
(1 row)
</programlisting>
and is actually transformed by the parser to
<programlisting>
tgl=> select int4fac(int4(int2 '4'));
-int4fac
--------
- 24
+ int4fac
+---------
+ 24
(1 row)
</programlisting>
</para>
@@ -511,9 +511,9 @@ If called with a string constant of unspecified type, the type is matched up
directly with the only candidate function type:
<programlisting>
tgl=> select substr('1234', 3);
-substr
-------
- 34
+ substr
+--------
+ 34
(1 row)
</programlisting>
</para>
@@ -523,17 +523,17 @@ If the string is declared to be of type <type>varchar</type>, as might be the ca
if it comes from a table, then the parser will try to coerce it to become <type>text</type>:
<programlisting>
tgl=> select substr(varchar '1234', 3);
-substr
-------
- 34
+ substr
+--------
+ 34
(1 row)
</programlisting>
which is transformed by the parser to become
<programlisting>
tgl=> select substr(text(varchar '1234'), 3);
-substr
-------
- 34
+ substr
+--------
+ 34
(1 row)
</programlisting>
</para>
@@ -551,17 +551,17 @@ And, if the function is called with an <type>int4</type>, the parser will
try to convert that to <type>text</type>:
<programlisting>
tgl=> select substr(1234, 3);
-substr
-------
- 34
+ substr
+--------
+ 34
(1 row)
</programlisting>
actually executes as
<programlisting>
tgl=> select substr(text(1234), 3);
-substr
-------
- 34
+ substr
+--------
+ 34
(1 row)
</programlisting>
</para>
@@ -609,11 +609,11 @@ tgl=> CREATE TABLE vv (v varchar(4));
CREATE
tgl=> INSERT INTO vv SELECT 'abc' || 'def';
INSERT 392905 1
-tgl=> select * from vv;
-v
-----
-abcd
-(1 row)
+tgl=> SELECT * FROM vv;
+ v
+------
+ abcd
+(1 row)
</programlisting>
</para>
</sect3>
@@ -651,10 +651,10 @@ first SELECT clause or the target column.
<para>
<programlisting>
tgl=> SELECT text 'a' AS "Text" UNION SELECT 'b';
-Text
-----
-a
-b
+ Text
+------
+ a
+ b
(2 rows)
</programlisting>
</para>
@@ -665,11 +665,11 @@ b
<para>
<programlisting>
-tgl=> SELECT 1.2 AS Float8 UNION SELECT 1;
-Float8
-------
- 1
- 1.2
+tgl=> SELECT 1.2 AS "Float8" UNION SELECT 1;
+ Float8
+--------
+ 1
+ 1.2
(2 rows)
</programlisting>
</para>
@@ -686,11 +686,11 @@ the first/top clause in the union:
tgl=> SELECT 1 AS "All integers"
tgl-> UNION SELECT '2.2'::float4
tgl-> UNION SELECT 3.3;
-All integers
-------------
- 1
- 2
- 3
+ All integers
+--------------
+ 1
+ 2
+ 3
(3 rows)
</programlisting>
</para>
@@ -710,10 +710,10 @@ tgl-> UNION SELECT 3.3;
INSERT 0 3
tgl=> SELECT f AS "Floating point" from ff;
Floating point
-----------------
- 1
-2.20000004768372
- 3.3
+------------------
+ 1
+ 2.20000004768372
+ 3.3
(3 rows)
</programlisting>
</para>
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 5cda0f07913..d4e88ec2dde 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.51 2000/03/15 06:50:51 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.52 2000/03/26 18:32:28 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -61,6 +61,7 @@ createdb(const char *dbname, const char *dbpath, int encoding)
{
char buf[2 * MAXPGPATH + 100];
char *loc;
+ char locbuf[512];
int4 user_id;
bool use_super, use_createdb;
Relation pg_database_rel;
@@ -70,23 +71,25 @@ createdb(const char *dbname, const char *dbpath, int encoding)
char new_record_nulls[Natts_pg_database] = { ' ', ' ', ' ', ' ' };
if (!get_user_info(GetPgUserName(), &user_id, &use_super, &use_createdb))
- elog(ERROR, "Current user name is invalid");
+ elog(ERROR, "current user name is invalid");
if (!use_createdb && !use_super)
- elog(ERROR, "CREATE DATABASE: Permission denied");
+ elog(ERROR, "CREATE DATABASE: permission denied");
if (get_db_info(dbname, NULL, NULL, NULL))
- elog(ERROR, "CREATE DATABASE: Database \"%s\" already exists", dbname);
+ elog(ERROR, "CREATE DATABASE: database \"%s\" already exists", dbname);
/* don't call this in a transaction block */
if (IsTransactionBlock())
- elog(ERROR, "CREATE DATABASE: May not be called in a transaction block");
+ elog(ERROR, "CREATE DATABASE: may not be called in a transaction block");
/* Generate directory name for the new database */
- if (dbpath == NULL)
- dbpath = dbname;
+ if (dbpath == NULL || strcmp(dbpath, dbname)==0)
+ strcpy(locbuf, dbname);
+ else
+ snprintf(locbuf, sizeof(locbuf), "%s/%s", dbpath, dbname);
- loc = ExpandDatabasePath(dbpath);
+ loc = ExpandDatabasePath(locbuf);
if (loc == NULL)
elog(ERROR,
@@ -105,10 +108,10 @@ createdb(const char *dbname, const char *dbpath, int encoding)
pg_database_dsc = RelationGetDescr(pg_database_rel);
/* Form tuple */
- new_record[Anum_pg_database_datname-1] = NameGetDatum(dbname);
+ new_record[Anum_pg_database_datname-1] = NameGetDatum(namein(dbname));
new_record[Anum_pg_database_datdba-1] = Int32GetDatum(user_id);
new_record[Anum_pg_database_encoding-1] = Int32GetDatum(encoding);
- new_record[Anum_pg_database_datpath-1] = PointerGetDatum(textin((char *)dbpath));
+ new_record[Anum_pg_database_datpath-1] = PointerGetDatum(textin(locbuf));
tuple = heap_formtuple(pg_database_dsc, new_record, new_record_nulls);
@@ -137,7 +140,7 @@ createdb(const char *dbname, const char *dbpath, int encoding)
/* Copy the template database to the new location */
if (mkdir(loc, S_IRWXU) != 0) {
- elog(ERROR, "CREATE DATABASE: Unable to create database directory '%s': %s", loc, strerror(errno));
+ elog(ERROR, "CREATE DATABASE: unable to create database directory '%s': %s", loc, strerror(errno));
}
snprintf(buf, sizeof(buf), "cp %s%cbase%ctemplate1%c* '%s'",
@@ -147,7 +150,7 @@ createdb(const char *dbname, const char *dbpath, int encoding)
snprintf(buf, sizeof(buf), "rm -rf '%s'", loc);
ret = system(buf);
if (ret == 0)
- elog(ERROR, "CREATE DATABASE: Could not initialize database directory");
+ elog(ERROR, "CREATE DATABASE: could not initialize database directory");
else
elog(ERROR, "CREATE DATABASE: Could not initialize database directory. Delete failed as well");
}
diff --git a/src/bin/initlocation/initlocation.sh b/src/bin/initlocation/initlocation.sh
index e9ccf43fa98..d2f77783479 100644
--- a/src/bin/initlocation/initlocation.sh
+++ b/src/bin/initlocation/initlocation.sh
@@ -8,7 +8,7 @@
#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/bin/initlocation/Attic/initlocation.sh,v 1.6 2000/03/25 19:01:48 tgl Exp $
+# $Header: /cvsroot/pgsql/src/bin/initlocation/Attic/initlocation.sh,v 1.7 2000/03/26 18:32:30 petere Exp $
#
#-------------------------------------------------------------------------
@@ -156,9 +156,9 @@ echo "$CMDNAME is complete."
# path, which the backend won't allow by default.
if [ "$haveenv" = "t" ]; then
echo "You can now create a database using"
- echo " CREATE DATABASE <name> WITH LOCATION = '$Location/<name>'"
+ echo " CREATE DATABASE <name> WITH LOCATION = '$Location'"
echo "in SQL, or"
- echo " createdb <name> -D '$Location/<name>'"
+ echo " createdb <name> -D '$Location'"
echo "from the shell."
fi
echo