mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
Inheritance overhaul by Chris Bitmead <chris@bitmead.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.12 2000/04/11 14:43:54 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.13 2000/06/09 01:43:57 momjian Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@@ -23,10 +23,10 @@ Postgres documentation
|
||||
<date>1999-07-20</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
ALTER TABLE <replaceable class="PARAMETER">table</replaceable> [ * ]
|
||||
ALTER TABLE [ ONLY ]<replaceable class="PARAMETER">table</replaceable> [ * ]
|
||||
ADD [ COLUMN ] <replaceable class="PARAMETER">column</replaceable> <replaceable
|
||||
class="PARAMETER">type</replaceable>
|
||||
ALTER TABLE <replaceable class="PARAMETER">table</replaceable> [ * ]
|
||||
ALTER TABLE [ ONLY ]<replaceable class="PARAMETER">table</replaceable> [ * ]
|
||||
ALTER [ COLUMN ] <replaceable class="PARAMETER">column</replaceable> { SET DEFAULT <replaceable
|
||||
class="PARAMETER">value</replaceable> | DROP DEFAULT }
|
||||
ALTER TABLE <replaceable class="PARAMETER">table</replaceable> [ * ]
|
||||
@@ -175,24 +175,6 @@ ALTER TABLE <replaceable class="PARAMETER">table</replaceable>
|
||||
The keyword <literal>COLUMN</literal> is noise and can be omitted.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<quote>*</quote> following a name of a table indicates that the statement
|
||||
should be run over that table and all tables below it in the
|
||||
inheritance hierarchy;
|
||||
by default, the attribute will not be added to or renamed in any of the subclasses.
|
||||
|
||||
This should always be done when adding or modifying an attribute in a
|
||||
superclass. If it is not, queries on the inheritance hierarchy
|
||||
such as
|
||||
|
||||
<programlisting>
|
||||
SELECT <replaceable>NewColumn</replaceable> FROM <replaceable>SuperClass</replaceable>*
|
||||
</programlisting>
|
||||
|
||||
will not work because the subclasses will be missing an attribute
|
||||
found in the superclass.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In the current implementation, default and constraint clauses for the
|
||||
new column will be ignored. You can use the <literal>SET DEFAULT</literal>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.29 2000/05/02 20:02:03 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.30 2000/06/09 01:43:57 momjian Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@@ -31,7 +31,7 @@ CREATE [ TEMPORARY | TEMP ] TABLE <replaceable class="PARAMETER">table</replacea
|
||||
[, PRIMARY KEY ( <replaceable class="PARAMETER">column</replaceable> [, ...] ) ]
|
||||
[, CHECK ( <replaceable class="PARAMETER">condition</replaceable> ) ]
|
||||
[, <replaceable>table_constraint_clause</replaceable> ]
|
||||
) [ INHERITS ( <replaceable>inherited_table</replaceable> [, ...] ) ]
|
||||
) [ UNDER <replaceable>inherited_table</replaceable> [, ...] ]
|
||||
</synopsis>
|
||||
|
||||
<refsect2 id="R2-SQL-CREATETABLE-1">
|
||||
@@ -130,10 +130,10 @@ CREATE [ TEMPORARY | TEMP ] TABLE <replaceable class="PARAMETER">table</replacea
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>INHERITS <replaceable class="PARAMETER">inherited_table</replaceable></term>
|
||||
<term>UNDER <replaceable class="PARAMETER">inherited_table</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The optional INHERITS clause specifies a collection of table
|
||||
The optional UNDER clause specifies a collection of table
|
||||
names from which this table automatically inherits all fields.
|
||||
If any inherited field name appears more than once,
|
||||
<productname>Postgres</productname>
|
||||
@@ -229,7 +229,7 @@ ERROR: DEFAULT: type mismatched
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The optional INHERITS
|
||||
The optional UNDER
|
||||
clause specifies a collection of class names from which this class
|
||||
automatically inherits all fields. If any inherited field name
|
||||
appears more than once, Postgres reports an error. Postgres automatically
|
||||
@@ -1838,8 +1838,8 @@ CREATE TABLE distributors (
|
||||
Notes
|
||||
</title>
|
||||
<para>
|
||||
CREATE TABLE/INHERITS is a <productname>Postgres</productname>
|
||||
language extension.
|
||||
CREATE TABLE/UNDER is defined by SQL3. Multiple inheritance is a
|
||||
<productname>Postgres</productname> language extension.
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/delete.sgml,v 1.10 2000/03/26 18:32:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/delete.sgml,v 1.11 2000/06/09 01:44:00 momjian Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@@ -24,7 +24,7 @@ Postgres documentation
|
||||
<date>1999-07-20</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
DELETE FROM <replaceable class="PARAMETER">table</replaceable> [ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
|
||||
DELETE FROM [ ONLY ] <replaceable class="PARAMETER">table</replaceable> [ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
|
||||
</synopsis>
|
||||
|
||||
<refsect2 id="R2-SQL-DELETE-1">
|
||||
@@ -118,6 +118,12 @@ DELETE <replaceable class="parameter">count</replaceable>
|
||||
</tip>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
By default DELETE will delete tuples in the table specified
|
||||
and all its sub-classes. If you wish to only update the
|
||||
specific table mentioned, you should use the ONLY clause.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You must have write access to the table in order to modify
|
||||
it, as well as read access to any table whose values are
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.28 2000/03/27 17:14:43 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.29 2000/06/09 01:44:00 momjian Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@@ -25,7 +25,7 @@ Postgres documentation
|
||||
SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replaceable> [, ...] ) ] ]
|
||||
<replaceable class="PARAMETER">expression</replaceable> [ AS <replaceable class="PARAMETER">name</replaceable> ] [, ...]
|
||||
[ INTO [ TEMPORARY | TEMP ] [ TABLE ] <replaceable class="PARAMETER">new_table</replaceable> ]
|
||||
[ FROM <replaceable class="PARAMETER">table</replaceable> [ <replaceable class="PARAMETER">alias</replaceable> ] [, ...] ]
|
||||
[ FROM [ ONLY ]<replaceable class="PARAMETER">table</replaceable> [ <replaceable class="PARAMETER">alias</replaceable> ] [, ...] ]
|
||||
[ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
|
||||
[ GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...] ]
|
||||
[ HAVING <replaceable class="PARAMETER">condition</replaceable> [, ...] ]
|
||||
@@ -203,6 +203,13 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac
|
||||
if WHERE is omitted, all rows are candidates.
|
||||
(See <xref linkend="sql-where" endterm="sql-where-title">.)
|
||||
</para>
|
||||
<para>
|
||||
<command>ONLY</command> will eliminate rows from subclasses of the table.
|
||||
This was previously the default result, and getting subclasses was
|
||||
obtained by appending <command>*</command> to the table name.
|
||||
The old behaviour is available via the command
|
||||
<command>SET EXAMINE_SUBCLASS TO 'on';</command>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>DISTINCT</command> will eliminate duplicate rows from the
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.43 2000/05/18 14:24:33 momjian Exp $
|
||||
<<<<<<< set.sgml
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.44 2000/06/09 01:44:00 momjian Exp $
|
||||
=======
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.44 2000/06/09 01:44:00 momjian Exp $
|
||||
>>>>>>> 1.43
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@@ -553,6 +557,39 @@ SELECT setseed(<replaceable>value</replaceable>);
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>EXAMINE_SUBCLASS</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Changes the behaviour of SELECT so that it no longer automatically
|
||||
examines sub-classes. (See SELECT). By default a SELECT on a table
|
||||
will also return subclass tuples unless specifying ONLY tablename.
|
||||
Setting this returns postgres to the traditional behaviour of
|
||||
only returning subclasses when appending "*" to the tablename.
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>ON</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Returns SELECT to the behaviour of automatically returning
|
||||
results from sub-classes.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>OFF</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Prevents SELECT from returning sub-classes unless the "*" follows the table name
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ENABLE_SEQSCAN</term>
|
||||
<listitem>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/update.sgml,v 1.9 2000/04/11 05:39:15 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/update.sgml,v 1.10 2000/06/09 01:44:00 momjian Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@@ -23,7 +23,7 @@ Postgres documentation
|
||||
<date>1999-07-20</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
UPDATE <replaceable class="PARAMETER">table</replaceable> SET <replaceable class="PARAMETER">col</replaceable> = <replaceable class="PARAMETER">expression</replaceable> [, ...]
|
||||
UPDATE [ ONLY ] <replaceable class="PARAMETER">table</replaceable> SET <replaceable class="PARAMETER">col</replaceable> = <replaceable class="PARAMETER">expression</replaceable> [, ...]
|
||||
[ FROM <replaceable class="PARAMETER">fromlist</replaceable> ]
|
||||
[ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
|
||||
</synopsis>
|
||||
@@ -140,6 +140,12 @@ UPDATE <replaceable class="parameter">#</replaceable>
|
||||
it, as well as read access to any table whose values are
|
||||
mentioned in the WHERE condition.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
By default UPDATE will update tuples in the table specified
|
||||
and all its sub-classes. If you wish to only update the
|
||||
specific table mentioned, you should use the ONLY clause.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="R1-SQL-UPDATE-2">
|
||||
|
||||
Reference in New Issue
Block a user