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 ColumnConst * col_array = checkAndGetColumnConst<ColumnArray>(
                columns[arguments[0]].column.get());
        if (!col_array)
            return false;
        Array arr = col_array->getValue<Array>();
        const IColumn * item_arg = columns[arguments[1]].column.get();
        if (isColumnConst(*item_arg))
        {
            ResultType current = 0;
            const auto & value = (*item_arg)[0];
            for (size_t i = 0, size = arr.size(); i < size; ++i)
            {
                if (!applyVisitor(FieldVisitorAccurateEquals(), arr[i], value))
                    continue;
                ConcreteAction::apply(current, i);
                if constexpr (!ConcreteAction::resume_execution)
                    break;
            }
            columns[result].column = columns[result].type->createColumnConst(
                item_arg->size(), static_cast<ResultType>(current));
        }
        else
        {
            
            const NullMap * null_map = nullptr;
            if (arguments.size() > 2)