OK, so let me summarize here (the other posts in this subthread are
discussing the user interface, not the use cases, so I'll respond here).
There are two main use cases:
1) change the order of columns in "SELECT *"
- display columns so that related ones grouped together (irrespectedly whether they were added later, etc.)
- keep columns synced with COPY
- requires user interface (ALTER TABLE _ ALTER COLUMN _ SET ORDER _)
2) optimization of physical order (efficient storage / tuple deforming)
- more efficient order for storage (deforming)
- may be done manually by reordering columns in CREATE TABLE
- should be done automatically (no user interface required)
- seems useful both for on-disk physical tuples, and virtual tuples
Anything else?
--
Tomas Vondra http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services