I’m wondering if, in Postgres, there are any downsides to piggybacking extra fields into the index implicitly created for the primary key in order to not have to create more indices.
This is a common technique in creating clustered indices in SQL Server.
edit
Good article on Postgres indexing. Seems Postgres indexing dynamics are different to SQL server.
No this is not possible.
PostgreSQL cannot “include” columns without making them “active” in the index.
Currently PostgreSQL does not support index only scans. This will be included in the upcoming 9.2 release though.
But adding columns to an index that you don’t need might impose a performance penalty for updates because a non-indexed column is much more efficient to update than an indexed column.