> and they rebutted by claiming that PKs created some kind of "special" index
Maybe they were thinking about something like the "clustered indexes" from SQL Server, and mistakenly thought PostgreSQL also worked like that:
> "When you create a PRIMARY KEY constraint, a unique clustered index on the column or columns is automatically created if a clustered index on the table doesn't already exist and you don't specify a unique nonclustered index." [1]
> "Clustered indexes sort and store the data rows in the table or view based on their key values." [2]
So I'm guessing you could squeeze some extra performance for certain access patterns, maybe? I have not worked at any place where I had needed to worry about low level details like this, though, so obligatory disclaimer to take this comment with a grain of salt due to my lack of first-hand experience.
[1]: https://learn.microsoft.com/en-us/sql/relational-databases/i...
[2]: https://learn.microsoft.com/en-us/sql/relational-databases/i...
In index oriented tables, primary keys are special. Table is organized by primary key and secondary indexes point to primary.
In postgres, primary key is basically unique index with some special semantics.