diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-04-14 18:08:58 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-04-14 18:08:58 +0000 |
commit | 3f4f235f791a4dfed43b2e2bffdcd850545ef211 (patch) | |
tree | 00080d213f7da9f5b14d2700b782a5a5fc5787c7 | |
parent | 0851e122441e33d21022540857581b857293aa67 (diff) | |
download | postgresql-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.sgml | 25 |
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> |