Enum Functions
This section describes functions and operators for examining and manipulating ENUM values.
The examples assume an enum type created as:
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy', 'anxious');These functions can take NULL or a specific value of the type as argument(s).
Most enum functions return a value that depends only on the type of the argument, and not on its value.
The functions enum_code() and enum_range_boundary() are exceptions; they return a value that depends on the argument value, as well as its type.
| Name | Description |
|---|---|
enum_code(enum_value) |
Returns the (0-based) numeric value backing the given enum value. |
enum_first(enum) |
Returns the first value of the input enum type. |
enum_last(enum) |
Returns the last value of the input enum type. |
enum_range(enum) |
Returns all values of the input enum type as an array. |
enum_range_boundary(enum, enum) |
Returns the range between the two given enum values as an array. |
enum_code(enum_value)
| Description | Returns the (0-based) numeric value backing the given enum value. |
| Example | enum_code('happy'::mood) |
| Result | 2 |
enum_first(enum)
| Description | Returns the first value of the input enum type. |
| Example | enum_first(NULL::mood) |
| Result | sad |
enum_last(enum)
| Description | Returns the last value of the input enum type. |
| Example | enum_last(NULL::mood) |
| Result | anxious |
enum_range(enum)
| Description | Returns all values of the input enum type as an array. |
| Example | enum_range(NULL::mood) |
| Result | [sad, ok, happy, anxious] |
enum_range_boundary(enum, enum)
| Description | Returns the range between the two given enum values as an array. The values must be of the same enum type. When the first parameter is NULL, the result starts with the first value of the enum type. When the second parameter is NULL, the result ends with the last value of the enum type. |
| Example | enum_range_boundary(NULL, 'happy'::mood) |
| Result | [sad, ok, happy] |