fn derive_column_type(
    seen_messages: &mut BTreeSet<String>,
    field: &FieldDescriptor
) -> Result<ColumnType, Error>