20.7
```
SELECT indexOf(['a', 'b', 'c'], toLowCardinality('a'))

┌─indexOf(['a', 'b', 'c'], toLowCardinality('a'))─┐
│                                               1 │
└─────────────────────────────────────────────────┘
```

20.8
```
SELECT indexOf(['a', 'b', 'c'], toLowCardinality('a'))


Received exception from server (version 20.8.3):
Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Types of array and 2nd argument of function "indexOf" must be identical up to nullability, cardinality, numeric types, or Enum and numeric type. Passed: Array(String) and LowCardinality(String).. 
```

https://github.com/ClickHouse/ClickHouse/pull/12550

/cc @myrrc 

const Data & data,
        const ArrOffsets & offsets,
        const Target & value,
        ResultArr & result,
        const NullMap * const null_map_data,
        const NullMap * const null_map_item)
    {
        if (!null_map_data && !null_map_item)
            process<1>(data, offsets, value, result, null_map_data, null_map_item);
        else if (!null_map_data && null_map_item)
            process<2>(data, offsets, value, result, null_map_data, null_map_item);
        else if (null_map_data && !null_map_item)
            process<3>(data, offsets, value, result, null_map_data, null_map_item);
        else
            process<4>(data, offsets, value, result, null_map_data, null_map_item);
    }
};
template <class ConcreteAction>
struct Null
{
    using ResultType = typename ConcreteAction::ResultType;
    static void process(