I wonder if it wouldn't be easier to reorder the TupDesc->attrs[] array
according to an attphysid when filling the TupDesc structure, right
after a column was dropped/recreated (before any indexes/constraints are
recreated), so attnum remains, while storage changes.
Example:
before:
attnum attphysid attname attisdropped
1 1 foo f
2 2 bar f
after drop/recreate col:
1 3 foo f
2 2 bar f
3 1 foo_del t
resulting in an attrs array
attrs[0] describing physical col 3
attrs[1] describing physical col 2
attrs[2] describing physical col 1
Regards,
Andreas