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 

if (const auto & col = columns[arguments[3]].column; col)
                    null_map = &assert_cast<const ColumnUInt8 &>(*col).getData();
            const size_t size = item_arg->size();
            auto col_res = ResultColumnType::create(size);
            auto & data = col_res->getData();
            for (size_t row = 0; row < size; ++row)
            {
                const auto & value = (*item_arg)[row];
                data[row] = 0;
                for (size_t i = 0, arr_size = arr.size(); i < arr_size; ++i)
                {
                    if (arr[i].isNull())
                    {
                        if (!null_map)
                            continue;
                        if (!(*null_map)[row])
                            continue;
                    }
                    else if (!applyVisitor(FieldVisitorAccurateEquals(), arr[i], value))
                        continue;
                    ConcreteAction::apply(data[row], i);
                    if constexpr (!ConcreteAction::resume_execution)
                        break;
                }
            }
            columns[result].column = std::move(col_res);
        }
        return true;
    }
    static bool executeGeneric(ColumnsWithTypeAndName & columns, const ColumnNumbers & arguments, size_t result)