aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-04-14 18:08:58 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-04-14 18:08:58 +0000
commit3f4f235f791a4dfed43b2e2bffdcd850545ef211 (patch)
tree00080d213f7da9f5b14d2700b782a5a5fc5787c7
parent0851e122441e33d21022540857581b857293aa67 (diff)
downloadpostgresql-3f4f235f791a4dfed43b2e2bffdcd850545ef211.tar.gz
postgresql-3f4f235f791a4dfed43b2e2bffdcd850545ef211.zip
Another try at correctly explaining the difference between Postgres and
SQL92 temp tables. Possibly I got it right this time.
-rw-r--r--doc/src/sgml/ref/create_table.sgml25
1 files changed, 16 insertions, 9 deletions
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml
index c4f5ea138cf..9ee71705f96 100644
--- a/doc/src/sgml/ref/create_table.sgml
+++ b/doc/src/sgml/ref/create_table.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.65 2003/04/14 15:40:02 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.66 2003/04/14 18:08:58 tgl Exp $
PostgreSQL documentation
-->
@@ -828,14 +828,14 @@ CREATE TABLE distributors (
<para>
Although the syntax of <literal>CREATE TEMPORARY TABLE</literal>
resembles that of SQL92, the effect is not the same. In the standard,
- temporary tables are associated with modules; a temporary table is created
- just once and automatically exists (starting with empty contents) in every
- session that uses the module.
- <productname>PostgreSQL</productname> does not have modules, and
+ temporary tables are defined just once and automatically exist (starting
+ with empty contents) in every session that needs them.
+ <productname>PostgreSQL</productname> instead
requires each session to issue its own <literal>CREATE TEMPORARY
- TABLE</literal> command for each temporary table to be used.
- The notion of <literal>GLOBAL</literal> temporary tables found in SQL92
- is not in <productname>PostgreSQL</productname> at all.
+ TABLE</literal> command for each temporary table to be used. This allows
+ different sessions to use the same temporary table name for different
+ purposes, whereas the spec's approach constrains all instances of a
+ given temporary table name to have the same table structure.
</para>
<note>
@@ -847,13 +847,20 @@ CREATE TABLE distributors (
</note>
<para>
+ SQL92's distinction between global and local temporary tables
+ is not in <productname>PostgreSQL</productname>, since that distinction
+ depends on the concept of modules, which
+ <productname>PostgreSQL</productname> does not have.
+ </para>
+
+ <para>
The <literal>ON COMMIT</literal> clause for temporary tables
also resembles SQL92, but has some differences.
If the <literal>ON COMMIT</> clause is omitted, SQL92 specifies that the
default behavior is <literal>ON COMMIT DELETE ROWS</>. However, the
default behavior in <productname>PostgreSQL</productname> is
<literal>ON COMMIT PRESERVE ROWS</literal>. The <literal>ON COMMIT
- DROP</literal> option does not exist in SQL92 at all.
+ DROP</literal> option does not exist in SQL92.
</para>
</refsect2>