Proposed patch adds PostgreSQLColumn < Column class, and has some workarounds and fixes:
1. recognition of arrays
2. resolution of field length using PostgreSQL specific features (typmod)
3. recognises domains as base types
4. default now() is evaluated by request, and not once on column load
4. kludge: default now() dumped in db_schema_dump as "now()", that works not correctly, but makes it easier to locate (grep 'default => "now()"' schema.rb)
5. fix for PostgreSQLAdapter#tables method - correctly uses schema names.
6. private methods default_value, translate_field_type moved to PostgreSQLColumn
Related tickets: #3277, #3272, #3232, #2257