diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2024-07-26 12:39:45 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2024-07-26 12:39:45 -0400 |
commit | 5d1d8b3c82c2a796bf7d89f2a5785ce9424acab1 (patch) | |
tree | d6151a5c5b809bcfd9653d9d6ec658749abbc15c /doc/src | |
parent | c883453cb29cb40c1e59c3c54d159c5e744da8a9 (diff) | |
download | postgresql-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.sgml | 16 |
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> |