codekingpro/portable-devtools
115k
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>53.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="53.19. pg_description" /><link rel="next" href="catalog-pg-event-trigger.html" title="53.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">53.20. <code class="structname">pg_enum</code></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="catalog-pg-description.html" title="53.19. pg_description">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="catalogs.html" title="Chapter 53. System Catalogs">Up</a></td><th width="60%" align="center">Chapter 53. System Catalogs</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 16.3 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="catalog-pg-event-trigger.html" title="53.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">53.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 entries4 showing the values and labels for each enum type. The5 internal representation of a given enum value is actually the OID6 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 53.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">8 Column Type9 </p>10 <p>11 Description12 </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>14 </p>15 <p>16 Row identifier17 </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="53.64. pg_type"><code class="structname">pg_type</code></a>.<code class="structfield">oid</code>)20 </p>21 <p>22 The OID of the <a class="link" href="catalog-pg-type.html" title="53.64. pg_type"><code class="structname">pg_type</code></a> entry owning this enum value23 </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">24 <code class="structfield">enumsortorder</code> <code class="type">float4</code>25 </p>26 <p>27 The sort position of this enum value within its enum type28 </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">29 <code class="structfield">enumlabel</code> <code class="type">name</code>30 </p>31 <p>32 The textual label for this enum value33 </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 special35 rule: even-numbered OIDs are guaranteed to be ordered in the same way36 as the sort ordering of their enum type. That is, if two even OIDs37 belong to the same enum type, the smaller OID must have the smaller38 <code class="structfield">enumsortorder</code> value. Odd-numbered OID values39 need bear no relationship to the sort order. This rule allows the40 enum comparison routines to avoid catalog lookups in many common cases.41 The routines that create and alter enum types attempt to assign even42 OIDs to enum values whenever possible.43 </p><p>44 When an enum type is created, its members are assigned sort-order45 positions 1..<em class="replaceable"><code>n</code></em>. But members added later might be given46 negative or fractional values of <code class="structfield">enumsortorder</code>.47 The only requirement on these values is that they be correctly48 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="53.19. pg_description">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="catalogs.html" title="Chapter 53. System Catalogs">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="catalog-pg-event-trigger.html" title="53.21. pg_event_trigger">Next</a></td></tr><tr><td width="40%" align="left" valign="top">53.19. <code class="structname">pg_description</code> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 16.3 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 53.21. <code class="structname">pg_event_trigger</code></td></tr></table></div></body></html>