Commit 6d5afc20 authored by Peter Eisentraut's avatar Peter Eisentraut

<example> is a floating element, so it's use is inappropriate when the

surrounding text refers to the example inline.
parent 20bf5e03
<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.255 2010/07/29 19:34:40 petere Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.256 2010/08/10 20:41:27 petere Exp $ -->
<chapter id="datatype"> <chapter id="datatype">
<title>Data Types</title> <title>Data Types</title>
...@@ -2877,10 +2877,6 @@ CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy'); ...@@ -2877,10 +2877,6 @@ CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
Once created, the enum type can be used in table and function Once created, the enum type can be used in table and function
definitions much like any other type: definitions much like any other type:
</para>
<example>
<title>Basic Enum Usage</title>
<programlisting> <programlisting>
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy'); CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TABLE person ( CREATE TABLE person (
...@@ -2894,7 +2890,7 @@ SELECT * FROM person WHERE current_mood = 'happy'; ...@@ -2894,7 +2890,7 @@ SELECT * FROM person WHERE current_mood = 'happy';
Moe | happy Moe | happy
(1 row) (1 row)
</programlisting> </programlisting>
</example> </para>
</sect2> </sect2>
<sect2> <sect2>
...@@ -2905,10 +2901,7 @@ SELECT * FROM person WHERE current_mood = 'happy'; ...@@ -2905,10 +2901,7 @@ SELECT * FROM person WHERE current_mood = 'happy';
order in which the values were listed when the type was created. order in which the values were listed when the type was created.
All standard comparison operators and related All standard comparison operators and related
aggregate functions are supported for enums. For example: aggregate functions are supported for enums. For example:
</para>
<example>
<title>Enum Ordering</title>
<programlisting> <programlisting>
INSERT INTO person VALUES ('Larry', 'sad'); INSERT INTO person VALUES ('Larry', 'sad');
INSERT INTO person VALUES ('Curly', 'ok'); INSERT INTO person VALUES ('Curly', 'ok');
...@@ -2934,7 +2927,7 @@ WHERE current_mood = (SELECT MIN(current_mood) FROM person); ...@@ -2934,7 +2927,7 @@ WHERE current_mood = (SELECT MIN(current_mood) FROM person);
Larry Larry
(1 row) (1 row)
</programlisting> </programlisting>
</example> </para>
</sect2> </sect2>
<sect2> <sect2>
...@@ -2942,11 +2935,8 @@ WHERE current_mood = (SELECT MIN(current_mood) FROM person); ...@@ -2942,11 +2935,8 @@ WHERE current_mood = (SELECT MIN(current_mood) FROM person);
<para> <para>
Each enumerated data type is separate and cannot Each enumerated data type is separate and cannot
be compared with other enumerated types. be compared with other enumerated types. See this example:
</para>
<example>
<title>Lack of Casting</title>
<programlisting> <programlisting>
CREATE TYPE happiness AS ENUM ('happy', 'very happy', 'ecstatic'); CREATE TYPE happiness AS ENUM ('happy', 'very happy', 'ecstatic');
CREATE TABLE holidays ( CREATE TABLE holidays (
...@@ -2962,15 +2952,12 @@ SELECT person.name, holidays.num_weeks FROM person, holidays ...@@ -2962,15 +2952,12 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
WHERE person.current_mood = holidays.happiness; WHERE person.current_mood = holidays.happiness;
ERROR: operator does not exist: mood = happiness ERROR: operator does not exist: mood = happiness
</programlisting> </programlisting>
</example> </para>
<para> <para>
If you really need to do something like that, you can either If you really need to do something like that, you can either
write a custom operator or add explicit casts to your query: write a custom operator or add explicit casts to your query:
</para>
<example>
<title>Comparing Different Enums by Casting to Text</title>
<programlisting> <programlisting>
SELECT person.name, holidays.num_weeks FROM person, holidays SELECT person.name, holidays.num_weeks FROM person, holidays
WHERE person.current_mood::text = holidays.happiness::text; WHERE person.current_mood::text = holidays.happiness::text;
...@@ -2980,7 +2967,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays ...@@ -2980,7 +2967,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
(1 row) (1 row)
</programlisting> </programlisting>
</example> </para>
</sect2> </sect2>
<sect2> <sect2>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment