[PATCH] docs: Document the automatically generated names for indices

Поиск
Список
Период
Сортировка
От jadel@mercury.com
Тема [PATCH] docs: Document the automatically generated names for indices
Дата
Msg-id 20220902004710.97903-2-jadel+pgsql@mercury.com
обсуждение исходный текст
Ответ на [PATCH] docs: Document the automatically generated names for indices  (jadel@mercury.com)
Ответы Re: [PATCH] docs: Document the automatically generated names for indices  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-hackers
From: Jade Lovelace <jadel@mercury.com>

I have intentionally been careful to not guarantee that the
automatically generated name *is* what's documented, but instead give
the general idea.

Knowing the format is useful for people writing migrations/ORM tools
which need to name their unique indices and may wish to use the
automatic naming system.

Signed-off-by: Jade Lovelace <jadel@mercury.com>
---
 doc/src/sgml/ref/create_index.sgml |  9 +++++++--
 doc/src/sgml/ref/create_table.sgml | 30 ++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml
index a5bac9f..7354267 100644
--- a/doc/src/sgml/ref/create_index.sgml
+++ b/doc/src/sgml/ref/create_index.sgml
@@ -206,9 +206,14 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
         table.  The name of the index must be distinct from the name of any
         other relation (table, sequence, index, view, materialized view, or
         foreign table) in that schema.
+       </para>
+       <para>
         If the name is omitted, <productname>PostgreSQL</productname> chooses a
-        suitable name based on the parent table's name and the indexed column
-        name(s).
+        suitable name based on the parent table's name and the indexed
+        column name(s). Generally, teh generated name will be something of the
+        shape <literal>tablename_columnname_idx</literal>, but this may vary in
+        the event of long table names, where it is truncated, or if the index
+        already exists, where a number is appended.
        </para>
       </listitem>
      </varlistentry>
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml
index 6bbf15e..bdabd86 100644
--- a/doc/src/sgml/ref/create_table.sgml
+++ b/doc/src/sgml/ref/create_table.sgml
@@ -796,6 +796,36 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
       (Double-quotes are needed to specify constraint names that contain spaces.)
       If a constraint name is not specified, the system generates a name.
      </para>
+     <para>
+      Generally, the generated name will be something of the shape
+      <literal>tablename_columnname_constrainttype</literal>, but this may vary in the
+      event of long table names, where it is truncated, or if the index
+      already exists, where a number is appended.
+      <literal>constrainttype</literal> is one of the following:
+
+      <itemizedlist>
+       <listitem>
+        <para><literal>pkey</literal> in the case of primary keys</para>
+       </listitem>
+       <listitem>
+        <para>
+         <literal>excl</literal> in the case of
+         <link linkend="sql-createtable-exclude">
+          <literal>EXCLUDE</literal>
+         </link> constraints.
+        </para>
+       </listitem>
+       <listitem>
+        <para>
+         <literal>key</literal> in the case of
+         <link linkend="sql-createtrigger"><firstterm>constraint triggers</firstterm></link>.
+        </para>
+       </listitem>
+       <listitem>
+        <para><literal>idx</literal> in other cases.</para>
+       </listitem>
+      </itemizedlist>
+     </para>
     </listitem>
    </varlistentry>
 
-- 
2.37.1




В списке pgsql-hackers по дате отправления:

Предыдущее
От: jadel@mercury.com
Дата:
Сообщение: [PATCH] docs: Document the automatically generated names for indices
Следующее
От: Ranier Vilela
Дата:
Сообщение: Re: Fix possible bogus array out of bonds (src/backend/access/brin/brin_minmax_multi.c)