aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-01-02 00:41:26 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-01-02 00:41:26 +0000
commite274325e02cffacf9e0e0717fcdffe7641de9049 (patch)
treecd43ed277286c3625bdfe98a5a03dece12242e56 /doc/src
parent4764ae823b78a602ebfe01a91084c4b1ec931554 (diff)
downloadpostgresql-e274325e02cffacf9e0e0717fcdffe7641de9049.tar.gz
postgresql-e274325e02cffacf9e0e0717fcdffe7641de9049.zip
Fix incorrect description of rowtype variable declarations. Eventually
(IMHO) the code should be fixed to do what the documentation formerly claimed, and then revert this change.
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/plsql.sgml32
1 files changed, 23 insertions, 9 deletions
diff --git a/doc/src/sgml/plsql.sgml b/doc/src/sgml/plsql.sgml
index a7c9b12c1b0..7ec861d8505 100644
--- a/doc/src/sgml/plsql.sgml
+++ b/doc/src/sgml/plsql.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.51 2001/11/28 04:18:46 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.52 2002/01/02 00:41:26 tgl Exp $
-->
<chapter id="plpgsql">
@@ -457,21 +457,28 @@ END;
<para>
<synopsis>
-<replaceable>name</replaceable> <replaceable>table-datatype</replaceable>;
+<replaceable>name</replaceable> <replaceable>tablename</replaceable><literal>%ROWTYPE</literal>;
</synopsis>
</para>
<para>
- A variable declared with a composite type (referenced by the name of
- the table that defines that type) is called a <firstterm>row</>
- variable. Such a variable can hold a whole row of a SELECT or FOR
+ A variable of a composite type is called a <firstterm>row</>
+ variable (or <firstterm>rowtype</> variable). Such a variable can hold a
+ whole row of a SELECT or FOR
query result, so long as that query's column set matches the declared
- rowtype of the variable. The individual fields of the row value are
+ type of the variable. The individual fields of the row value are
accessed using the usual dot notation, for example
<literal>rowvar.field</literal>.
</para>
<para>
+ Presently, a row variable can only be declared using the
+ <literal>%ROWTYPE</literal> notation; although one might expect a
+ bare table name to work as a type declaration, it won't be accepted
+ within <application>PL/pgSQL</application> functions.
+ </para>
+
+ <para>
Parameters to a function can be
composite types (complete table rows). In that case, the
corresponding identifier $n will be a row variable, and fields can
@@ -563,9 +570,7 @@ user_id users.user_id%TYPE;
<type>%ROWTYPE</type> provides the composite data type corresponding
to a whole row of the specified table.
<replaceable>table</replaceable> must be an existing
- table or view name of the database. A row variable declared
- in this way acts the same as a row variable explicitly declared using
- the same composite (row) datatype.
+ table or view name of the database.
</para>
<programlisting>
@@ -616,6 +621,15 @@ RENAME id TO user_id;
RENAME this_var TO that_var;
</programlisting>
</para>
+
+ <note>
+ <para>
+ RENAME appears to be broken as of PostgreSQL 7.2. Fixing this is
+ of low priority, since ALIAS covers most of the practical uses of
+ RENAME.
+ </para>
+ </note>
+
</sect2>
</sect1>