mirror of
https://github.com/postgres/postgres.git
synced 2025-05-29 16:21:20 +03:00
<example> is a floating element, so it's use is inappropriate when the
surrounding text refers to the example inline.
This commit is contained in:
parent
20bf5e03e5
commit
6d5afc2003
@ -1,4 +1,4 @@
|
|||||||
<!-- $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');
|
|||||||
|
|
||||||
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';
|
|||||||
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';
|
|||||||
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);
|
|||||||
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);
|
|||||||
|
|
||||||
<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
|
|||||||
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
|
|||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</example>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user