aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2024-07-26 12:39:45 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2024-07-26 12:39:45 -0400
commit5d1d8b3c82c2a796bf7d89f2a5785ce9424acab1 (patch)
treed6151a5c5b809bcfd9653d9d6ec658749abbc15c /doc/src
parentc883453cb29cb40c1e59c3c54d159c5e744da8a9 (diff)
downloadpostgresql-5d1d8b3c82c2a796bf7d89f2a5785ce9424acab1.tar.gz
postgresql-5d1d8b3c82c2a796bf7d89f2a5785ce9424acab1.zip
Clarify error message and documentation related to typed tables.
We restrict typed tables (those declared as "OF composite_type") to be based on stand-alone composite types, not composite types that are the implicitly-created rowtypes of other tables. But if you tried to do that, you got the very confusing error message "type foo is not a composite type". Provide a more specific message for that case. Also clarify related documentation in the CREATE TABLE man page. Erik Wienhold and David G. Johnston, per complaint from Hannu Krosing. Discussion: https://postgr.es/m/CAMT0RQRysCb_Amy5CTENSc5GfsvXL1a4qX3mv_hx31_v74P==g@mail.gmail.com
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/ref/create_table.sgml16
1 files changed, 8 insertions, 8 deletions
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml
index f19306e7760..93b3f664f21 100644
--- a/doc/src/sgml/ref/create_table.sgml
+++ b/doc/src/sgml/ref/create_table.sgml
@@ -249,18 +249,18 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
<listitem>
<para>
Creates a <firstterm>typed table</firstterm>, which takes its
- structure from the specified composite type (name optionally
- schema-qualified). A typed table is tied to its type; for
- example the table will be dropped if the type is dropped
- (with <literal>DROP TYPE ... CASCADE</literal>).
+ structure from the specified stand-alone composite type (that is,
+ one created using <xref linkend="sql-createtype"/>) though it still
+ produces a new composite type as well. The table will have a
+ dependency on the referenced type, meaning that cascaded alter and
+ drop actions on that type will propagate to the table.
</para>
<para>
- When a typed table is created, then the data types of the
- columns are determined by the underlying composite type and are
- not specified by the <literal>CREATE TABLE</literal> command.
+ A typed table always has the same column names and data types as the
+ type it is derived from, so you cannot specify additional columns.
But the <literal>CREATE TABLE</literal> command can add defaults
- and constraints to the table and can specify storage parameters.
+ and constraints to the table, as well as specify storage parameters.
</para>
</listitem>
</varlistentry>