]> granicus.if.org Git - postgresql/commitdiff
Updated user's guide to match new psql's output format
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 26 Mar 2000 18:32:30 +0000 (18:32 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 26 Mar 2000 18:32:30 +0000 (18:32 +0000)
Fixed bug in createdb/alternative location

23 files changed:
doc/src/sgml/array.sgml
doc/src/sgml/datatype.sgml
doc/src/sgml/inherit.sgml
doc/src/sgml/manage-ag.sgml
doc/src/sgml/manage.sgml
doc/src/sgml/ref/abort.sgml
doc/src/sgml/ref/create_database.sgml
doc/src/sgml/ref/create_function.sgml
doc/src/sgml/ref/create_language.sgml
doc/src/sgml/ref/create_view.sgml
doc/src/sgml/ref/delete.sgml
doc/src/sgml/ref/fetch.sgml
doc/src/sgml/ref/initlocation.sgml
doc/src/sgml/ref/listen.sgml
doc/src/sgml/ref/move.sgml
doc/src/sgml/ref/notify.sgml
doc/src/sgml/ref/select.sgml
doc/src/sgml/ref/set.sgml
doc/src/sgml/ref/unlisten.sgml
doc/src/sgml/ref/update.sgml
doc/src/sgml/typeconv.sgml
src/backend/commands/dbcommands.c
src/bin/initlocation/initlocation.sh

index e6f54b675ace4a67322659e7ebdfeb6209b99cea..bbc0a07f5601b0758c0e80bf124953007dc344d6 100644 (file)
@@ -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>
 
index 1bd7d6125cdbb89a839c6f7c5bcddf40a8ea22ad..1199b20b6a4eed1e21904a58e514a44275dfef43 100644 (file)
@@ -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>
index 0593da09155579ce5ad08dab0c865e8bad5f5ca5..0a49df2c510ae3507e48dc89f28b7ac3f4fa7ad6 100644 (file)
@@ -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
index 6f62234313c751775dee9165260e8607bf96b1df..6b66ff6d14cfe99252ee1653b48fa382f774cfb2 100644 (file)
     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>
index d4acd9d7bd39075e966d7edbdfcfc9127ab807b4..c2d44e546f7b4b5067988d312bc2caf0dcdcab5c 100644 (file)
 
    <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>
 
index c31fcb2acbf8d0c4a4127c777c256df2b4e058cb..062e660332279b87b8e952e8d1b9f0b34ca5f5d2 100644 (file)
@@ -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>
index 5dc6dca9bceb4f5333ad31e7daf9e27667d9a712..c8de74eee51f1a74d50554c0bca398647b3b199d 100644 (file)
@@ -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>
index 3fb87b57f83b0e701bc4cc6a973b2164a1b4eab9..3333171319bbc5c4ea8b6ec42a6f78d6f112ce42 100644 (file)
@@ -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>
index 7cdb40382567b5a43cecd0fa23aef7fb2a298d47..580490b3570be017f9f05464d983b046066df130 100644 (file)
@@ -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>
index dbfdc5261a2dbaaa3de1041725193bd5de42294e..aa25b0746db0d4534b99e6ff4b3e436ddeaa61be 100644 (file)
@@ -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>
index c27a4b9a0133c1bb3f57783ea884d474d5a31a1b..f53b87280df33be1bc0c0aee3380d586b59366e0 100644 (file)
@@ -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>
 
index db072d9f5fa06a1b431552337a067caa6ad2644c..1fa025361e03b64e9b060e64f12b6b32f763f465 100644 (file)
@@ -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>
 
index 2a1234986635982b89d5eef2fb7f83a35a57d018..e5228e8138b3bda39701ec93bad544f1c4e4154b 100644 (file)
@@ -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>
index b03ea67808f9f4e5308f48660a0aa11dcec1bdc0..4908ab44ab98b140cd1aebfd7c1315a82aa137ee 100644 (file)
@@ -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>
 
index eeb74bd9aaedeab4e2e97ffe90fd18cc75669258..8e6a3b014db569101e3f022a0ff3f4a64af7352e 100644 (file)
@@ -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>
 
index 91dc5f4a10017ceebb9cafb6404d0827e4b6e5ff..eb506985748f98e9fcc6ebb9695dcc61d75f2d43 100644 (file)
@@ -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>
 
index c88d9b54f920ecc113f4a40fd38991eab2012f2a..2aa6b8369b3d98355441eee8354562507d1e74f4 100644 (file)
@@ -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>
index cd6265eed6a7cad2c4ee9b9f5c8d7f43e62593df..b02440ecf53e49bb18983190c29f996e8a7b9cd0 100644 (file)
@@ -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>
 
index d872dd98a0ed7973be186e2d024037088192be47..76bd4f805a532d222da7ff9d95c9ca57b9053f4f 100644 (file)
@@ -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>
 
index 7c33e31e37f566402e23a069941e504f88ed5bfe..8f4858de3bd7064162cdf9e9b06955016c816141 100644 (file)
@@ -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>
 
index 12388f4339085b9544f9f7838eabbf1997cc2d3b..eda42522cccc58b926ca21aa548a883f0d8d3a09 100644 (file)
@@ -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>
index 5cda0f07913d922a60818470934802829accb86b..d4e88ec2dde4d237b3fc03fa07c0d7c57793b668 100644 (file)
@@ -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");
     }
index e9ccf43fa9838283e1cdf48cbd32768d6d8f0472..d2f77783479492bcf7f6d8dc36f8483fc7b15bb5 100644 (file)
@@ -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