This seems overly defensive code to check for  `column.respond_to?(:type) && column.type`.  In the rest of the method column type checks are e.g. `column && column.type == :integer` so the same assumptions can be made and columns always respond to type and always have a non-nil type.