bool SingleFieldIndexConfig::CheckFieldType()

in aios/storage/indexlib/legacy/config/single_field_index_config.cpp [140:163]


bool SingleFieldIndexConfig::CheckFieldType(FieldType ft) const
{
#define DO_CHECK(flag)                                                                                                 \
    if (flag)                                                                                                          \
        return true;

    InvertedIndexType it = GetInvertedIndexType();
    DO_CHECK(it == it_trie);

    DO_CHECK(ft == ft_text && it == it_text);
    DO_CHECK(ft == ft_uint64 && it == it_datetime);
    DO_CHECK(ft == ft_date && it == it_datetime);
    DO_CHECK(ft == ft_time && it == it_datetime);
    DO_CHECK(ft == ft_timestamp && it == it_datetime);
    DO_CHECK(ft == ft_string && (it == it_string));
    DO_CHECK((it == it_number_int8 && ft == ft_int8) || (it == it_number_uint8 && ft == ft_uint8) ||
             (it == it_number_int16 && ft == ft_int16) || (it == it_number_uint16 && ft == ft_uint16) ||
             (it == it_number_int32 && ft == ft_int32) || (it == it_number_uint32 && ft == ft_uint32) ||
             (it == it_number_int64 && ft == ft_int64) || (it == it_number_uint64 && ft == ft_uint64));
    DO_CHECK((it == it_number || it == it_range) &&
             (ft == ft_int8 || ft == ft_uint8 || ft == ft_int16 || ft == ft_uint16 || ft == ft_integer ||
              ft == ft_uint32 || ft == ft_long || ft == ft_uint64));
    return false;
}