diff --git a/doc/src/sgml/ref/create_type.sgml b/doc/src/sgml/ref/create_type.sgml index ab2e7517f1c998a08e91fe718ec3fac613acb874..319a4824e6fc596e4ca0ee435a459d2adff07d71 100644 --- a/doc/src/sgml/ref/create_type.sgml +++ b/doc/src/sgml/ref/create_type.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v 1.22 2001/09/13 15:55:24 petere Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v 1.23 2001/09/13 19:05:29 petere Exp $ Postgres documentation --> @@ -210,7 +210,7 @@ CREATE <para> <command>CREATE TYPE</command> allows the user to register a new user data - type with Postgres for use in the current data base. The + type with PostgreSQL for use in the current data base. The user who defines a type becomes its owner. <replaceable class="parameter">typename</replaceable> is the name of the new type and must be unique within the @@ -235,9 +235,9 @@ CREATE New base data types can be fixed length, in which case <replaceable class="parameter">internallength</replaceable> is a positive integer, or variable length, - in which case Postgres assumes that the new type has the + in which case PostgreSQL assumes that the new type has the same format - as the Postgres-supplied data type, <type>text</type>. + as the PostgreSQL-supplied data type, <type>text</type>. To indicate that a type is variable length, set <replaceable class="parameter">internallength</replaceable> to <option>VARIABLE</option>. @@ -274,9 +274,9 @@ CREATE The optional arguments <replaceable class="parameter">send_function</replaceable> and <replaceable class="parameter">receive_function</replaceable> - are used when the application program requesting Postgres + are used when the application program requesting PostgreSQL services resides on a different machine. In this case, - the machine on which Postgres runs may use a format for the data + the machine on which PostgreSQL runs may use a format for the data type different from that used on the remote machine. In this case it is appropriate to convert data items to a standard form when sending from the server to the client @@ -327,91 +327,79 @@ CREATE Two generalized built-in functions, array_in and array_out, exist for quick creation of variable-length array types. These functions operate on arrays of any - existing Postgres type. + existing PostgreSQL type. </para> </refsect2> - </refsect1> + <refsect1 id="SQL-CREATETYPE-notes"> + <title>Notes</title> + + <para> + Type names cannot begin with the underscore character + (<quote><literal>_</literal></quote>) and can only be 31 + characters long. This is because PostgreSQL silently creates an + array type for each base type with a name consisting of the base + type's name prepended with an underscore. + </para> + </refsect1> + <refsect1> <title>Examples</title> <para> - This command creates the box data type and then uses the + This command creates the <type>box</type> data type and then uses the type in a table definition: - <programlisting> +<programlisting> CREATE TYPE box (INTERNALLENGTH = 8, INPUT = my_procedure_1, OUTPUT = my_procedure_2); CREATE TABLE myboxes (id INT4, description box); - </programlisting> +</programlisting> </para> <para> This command creates a variable length array type with - integer elements: + <type>integer</type> elements: - <programlisting> +<programlisting> CREATE TYPE int4array (INPUT = array_in, OUTPUT = array_out, INTERNALLENGTH = VARIABLE, ELEMENT = int4); CREATE TABLE myarrays (id int4, numbers int4array); - </programlisting> +</programlisting> </para> <para> This command creates a large object type and uses it in a table definition: - <programlisting> +<programlisting> CREATE TYPE bigobj (INPUT = lo_filein, OUTPUT = lo_fileout, INTERNALLENGTH = VARIABLE); CREATE TABLE big_objs (id int4, obj bigobj); - </programlisting> +</programlisting> </para> + </refsect1> - <refsect2 id="R2-SQL-CREATETYPE-3"> - <refsect2info> - <date>1998-09-21</date> - </refsect2info> - <title> - Notes - </title> - - <para> - Type names cannot begin with the underscore character - ("_") and can only be 31 characters long. This is because - Postgres silently creates an array type for each base type - with a name consisting of the base type's name prepended - with an underscore. - </para> + <refsect1 id="SQL-CREATETYPE-compatibility"> + <title>Compatibility</title> - <para> - Refer to <command>DROP TYPE</command> to remove an existing type. - </para> - <para> - See also <command>CREATE FUNCTION</command>, - <command>CREATE OPERATOR</command> and the chapter on Large Objects - in the <citetitle>PostgreSQL Programmer's Guide</citetitle>. - </para> - </refsect2> + <para> + This <command>CREATE TYPE</command> command is a + <productname>PostgreSQL</productname> extension. There is a + <command>CREATE TYPE</command> statement in SQL99 that is rather + different in detail. + </para> </refsect1> - - - <refsect1 id="R1-SQL-CREATETYPE-3"> - <title> - Compatibility - </title> - <refsect2 id="R2-SQL-CREATETYPE-4"> - <refsect2info> - <date>1998-09-21</date> - </refsect2info> - <title> - SQL3 - </title> - <para> - <command>CREATE TYPE</command> is an <acronym>SQL3</acronym> statement. - </para> - </refsect2> + <refsect1 id="SQL-CREATETYPE-see-also"> + <title>See Also</title> + + <simplelist type="inline"> + <member><xref linkend="sql-createfunction"></member> + <member><xref linkend="sql-droptype"></member> + <member><citetitle>PostgreSQL Programmer's Guide</citetitle></member> + </simplelist> </refsect1> + </refentry> diff --git a/doc/src/sgml/ref/drop_type.sgml b/doc/src/sgml/ref/drop_type.sgml index 8e347906b4bf4e87ff09adccc3569f07abb7a2a9..174119ffc85df9d05115108778958f199ef1612e 100644 --- a/doc/src/sgml/ref/drop_type.sgml +++ b/doc/src/sgml/ref/drop_type.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_type.sgml,v 1.10 2001/09/03 12:57:50 petere Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_type.sgml,v 1.11 2001/09/13 19:05:29 petere Exp $ Postgres documentation --> @@ -95,64 +95,69 @@ ERROR: RemoveType: type '<replaceable class="parameter">typename</replaceable>' <para> Only the owner of a type can remove it. </para> + </refsect1> - <refsect2 id="R2-SQL-DROPTYPE-3"> - <refsect2info> - <date>1998-09-22</date> - </refsect2info> - <title> - Notes - </title> - <para> - DROP TYPE statement is a <productname>Postgres</productname> - language extension. - </para> - <para> - Refer to <command>CREATE TYPE</command> for - information on how to create types. - </para> - <para> - It is the user's responsibility to remove any operators, - functions, aggregates, access methods, subtypes, and tables - that use a deleted type. - </para> + <refsect1 id="SQL-DROPTYPE-notes"> + <title>Notes</title> - <para> - If a built-in type is removed, the behavior of the backend - is unpredictable. - </para> - </refsect2> + <itemizedlist> + <listitem> + <para> + It is the user's responsibility to remove any operators, + functions, aggregates, access methods, subtypes, and tables that + use a deleted type. + </para> + </listitem> + + <listitem> + <para> + If a built-in type is removed, the behavior of the server is + unpredictable. + </para> + </listitem> + </itemizedlist> </refsect1> - <refsect1 id="R1-SQL-DROPTYPE-2"> - <title> - Usage - </title> + <refsect1 id="SQL-DROPTYPE-examples"> + <title>Examples</title> <para> - To remove the <literal>box</literal> type: + To remove the <type>box</type> type: - <programlisting> +<programlisting> DROP TYPE box; - </programlisting> +</programlisting> </para> </refsect1> - <refsect1 id="R1-SQL-DROPTYPE-3"> - <title> - Compatibility - </title> - - <refsect2 id="R2-SQL-DROPTYPE-5"> - <refsect2info> - <date>1998-09-22</date> - </refsect2info> - <title> - SQL3 - </title> - <para> - <command>DROP TYPE</command> is a <acronym>SQL3</acronym> statement. - </para> - </refsect2> + <refsect1 id="SQL-DROPTYPE-compatibility"> + <title>Compatibility</title> + + <para> + A <command>DROP TYPE</command> statement exists in SQL99. As with + most other <quote>drop</quote> commands, <command>DROP + TYPE</command> in SQL99 requires a <quote>drop behavior</quote> + clause to select between dropping all dependent objects or refusing + to drop if dependent objects exist: +<synopsis> +DROP TYPE <replaceable>name</replaceable> { CASCADE | RESTRICT } +</synopsis> + <productname>PostgreSQL</productname> currently ignores + dependencies altogether. + </para> + + <para> + Note that the <command>CREATE TYPE</command> command and the data + type extension mechanisms in <productname>PostgreSQL</productname> + differ from SQL99. + </para> + </refsect1> + + <refsect1 id="SQL-DROPTYPE-see-also"> + <title>See Also</title> + + <simplelist type="inline"> + <member><xref linkend="sql-createtype"></member> + </simplelist> </refsect1> </refentry>