Re: create table explicitly mention that unique|primary key constraint will create an

Laurenz Albe <laurenz.albe@cybertec.at>

From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Peter Eisentraut <peter@eisentraut.org>, jian he <jian.universality@gmail.com>, pgsql-docs@lists.postgresql.org
Date: 2024-01-19T10:46:46Z
Lists: pgsql-docs

Attachments

On Thu, 2024-01-18 at 15:54 +0100, Peter Eisentraut wrote:
> On 27.11.23 03:30, Laurenz Albe wrote:
> > True; I don't find it documented that all objects in pg_class share a
> > namespace and that constraints are implemented by indexes of the same
> > name.  But I think that the first part is a property of schemas and had
> > better be documented there.
> 
> It is documented prominently on the CREATE INDEX reference page.  We 
> could document it in more places, of course.  I find the specific change 
> proposal for ddl.sgml a bit weird, though, because this is a very 
> introductory section, and you are referring people to pg_class (what is 
> that?!?) for details.  If we want to put something there, it should 
> respect the order in which that chapter introduces concepts.
> 
> The changes on create_table.sgml seem ok.  Although I had actually 
> expected that the system applies the find-a-unique-name routine rather 
> than taking the constraint name for the index name unaltered.
> 
> Perhaps taking the create_table.sgml changes and combination with the 
> existing text on CREATE INDEX is sufficient.

Ah, I didn't see the CREATE INDEX page.  (As an aside: too much
conceptual stuff is documented in our reference pages, but that's a
different issue.)

For me, the intuitive place to look for information like that is the
"Data Definition" chapter, so I think we should mention it there.
I agree that "pg_class" is too advanced for that chapter, even though
there is an earlier reference to it under "System Columns".

In the attached patch, I have copied the enumeration of relations from
the CREATE INDEX page.  I think this small redundance is alright, but I
wouldn't mind if this gets removed from CREATE INDEX.

The rest is unmodified.

Yours,
Laurenz Albe

Commits

  1. doc: Document more that relations share a namespace

  2. Track LLVM 18 changes.