1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>52.20. pg_enum</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="catalog-pg-description.html" title="52.19. pg_description" /><link rel="next" href="catalog-pg-event-trigger.html" title="52.21. pg_event_trigger" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">52.20. <code class="structname">pg_enum</code></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="catalog-pg-description.html" title="52.19. pg_description">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="catalogs.html" title="Chapter 52. System Catalogs">Up</a></td><th width="60%" align="center">Chapter 52. System Catalogs</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="catalog-pg-event-trigger.html" title="52.21. pg_event_trigger">Next</a></td></tr></table><hr /></div><div class="sect1" id="CATALOG-PG-ENUM"><div class="titlepage"><div><div><h2 class="title" style="clear: both">52.20. <code class="structname">pg_enum</code> <a href="#CATALOG-PG-ENUM" class="id_link">#</a></h2></div></div></div><a id="id-1.10.4.22.2" class="indexterm"></a><p>
3 The <code class="structname">pg_enum</code> catalog contains entries
4 showing the values and labels for each enum type. The
5 internal representation of a given enum value is actually the OID
6 of its associated row in <code class="structname">pg_enum</code>.
7 </p><div class="table" id="id-1.10.4.22.4"><p class="title"><strong>Table 52.20. <code class="structname">pg_enum</code> Columns</strong></p><div class="table-contents"><table class="table" summary="pg_enum Columns" border="1"><colgroup><col /></colgroup><thead><tr><th class="catalog_table_entry"><p class="column_definition">
12 </p></th></tr></thead><tbody><tr><td class="catalog_table_entry"><p class="column_definition">
13 <code class="structfield">oid</code> <code class="type">oid</code>
17 </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
18 <code class="structfield">enumtypid</code> <code class="type">oid</code>
19 (references <a class="link" href="catalog-pg-type.html" title="52.64. pg_type"><code class="structname">pg_type</code></a>.<code class="structfield">oid</code>)
22 The OID of the <a class="link" href="catalog-pg-type.html" title="52.64. pg_type"><code class="structname">pg_type</code></a> entry owning this enum value
23 </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
24 <code class="structfield">enumsortorder</code> <code class="type">float4</code>
27 The sort position of this enum value within its enum type
28 </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
29 <code class="structfield">enumlabel</code> <code class="type">name</code>
32 The textual label for this enum value
33 </p></td></tr></tbody></table></div></div><br class="table-break" /><p>
34 The OIDs for <code class="structname">pg_enum</code> rows follow a special
35 rule: even-numbered OIDs are guaranteed to be ordered in the same way
36 as the sort ordering of their enum type. That is, if two even OIDs
37 belong to the same enum type, the smaller OID must have the smaller
38 <code class="structfield">enumsortorder</code> value. Odd-numbered OID values
39 need bear no relationship to the sort order. This rule allows the
40 enum comparison routines to avoid catalog lookups in many common cases.
41 The routines that create and alter enum types attempt to assign even
42 OIDs to enum values whenever possible.
44 When an enum type is created, its members are assigned sort-order
45 positions 1..<em class="replaceable"><code>n</code></em>. But members added later might be given
46 negative or fractional values of <code class="structfield">enumsortorder</code>.
47 The only requirement on these values is that they be correctly
48 ordered and unique within each enum type.
49 </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="catalog-pg-description.html" title="52.19. pg_description">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="catalogs.html" title="Chapter 52. System Catalogs">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="catalog-pg-event-trigger.html" title="52.21. pg_event_trigger">Next</a></td></tr><tr><td width="40%" align="left" valign="top">52.19. <code class="structname">pg_description</code> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 52.21. <code class="structname">pg_event_trigger</code></td></tr></table></div></body></html>