I has wasted a lot of time today has trying to find my autogenerated indexes for primary keys, which are not shown in PGAdmin III browser tree, until write and execute SELECT * FROM pg_indexes i WHERE i.tablename = <my table>; end have seen a real state of things.
I expect from database admin tool to display clearly database objects which are in database, without trying to hide some of them by some ridiculous reasons like a executability of generated script. Please DO NOT HIDE ANYTHING! When You hide something, I can't trust your tool!
In SQL pane you can show DDL for object's like this inside a comment brackets /* and */ with preamble inside 'This index are automatically generated with constraint:'
In late answer to:
Because if any generated SQL contains both object, it will be an invalid script, not to mention the fact that you cannot properly recreate constraints just by recreating the indexes.
Constraint is something logical, index is a way to implement it. When I 'connect' a trigger to a table, there is trigger as a function, and trigger usage for a table. Yes, index is more tightly connected with its table, but in a case of a constraint it is still an index but system-generated.
Yes, which is exactly why it's hidden - in the same way we hide the rules that implement views.
And if it would be an option to show such indexes, such duplication is not a problem at all - if you turn this option on (it may be off by default), you know what you are doing and know that some constraints may be duplicated as indexes.
There speaks someone who doesn't provide support on these lists :-)
It will be a problem. People would switch on such an option whilst playing and forget about it. We would then get lots of emails.