```
SELECT version()
─version()─┐
│ 21.8.5.7  │
└───────────┘
```
We have a request, as a result of which we get an array.
When getting an item using a computed value, there is no value
```
SELECT
    arrayMap(x -> x, [[1], [2], [3]]) AS x,
    toTypeName(x),
    x[3 - 2] AS y,
    x[toInt64(1)] AS yy,
    x[toUInt8(1)] AS yyy

┌─x─────────────┬─toTypeName(arrayMap(lambda(tuple(x), x), [[1], [2], [3]]))─┬─y──┬─yy─┬─yyy─┐
│ [[1],[2],[3]] │ Array(Array(UInt8))                                        │ [] │ [] │ [1] │
└───────────────┴────────────────────────────────────────────────────────────┴────┴────┴─────┘
```
However, when the array is explicitly specified, the value is present.
The types are the same.
```
SELECT
    [[1], [2], [3]] AS x,
    toTypeName(x),
    x[3 - 2] AS y,
    x[toInt64(1)] AS yy,
    x[toInt8(1)] AS yyy

┌─x─────────────┬─toTypeName([[1], [2], [3]])─┬─y───┬─yy──┬─yyy─┐
│ [[1],[2],[3]] │ Array(Array(UInt8))         │ [1] │ [1] │ [1] │
└───────────────┴─────────────────────────────┴─────┴─────┴─────┘
```


ArrayElementNumImpl<DataType>::template vectorConst<true>(
            col_nested->getData(), col_array->getOffsets(), -(static_cast<UInt64>(safeGet<Int64>(index)) + 1), col_res->getData(), builder);
    }
    else
        throw Exception("Illegal type of array index", ErrorCodes::LOGICAL_ERROR);
    return col_res;
}
template <typename IndexType, typename DataType>
ColumnPtr FunctionArrayElement::executeNumber(
    const ColumnsWithTypeAndName & arguments, const PaddedPODArray<IndexType> & indices, ArrayImpl::NullMapBuilder & builder)
{
    const ColumnArray * col_array = checkAndGetColumn<ColumnArray>(arguments[0].column.get());
    if (!col_array)
        return nullptr;
    const ColumnVector<DataType> * col_nested = checkAndGetColumn<ColumnVector<DataType>>(&col_array->getData());
    if (!col_nested)
        return nullptr;
    auto col_res = ColumnVector<DataType>::create();
    ArrayElementNumImpl<DataType>::template vector<IndexType>(
        col_nested->getData(), col_array->getOffsets(), indices, col_res->getData(), builder);
    return col_res;
}
ColumnPtr