```
SELECT
    CAST(([2, 1, 1023], ['', '']), 'Map(UInt8, String)') AS map,
    map[10]
```

Triggers `Assertion 'n < size()' failed` in `DB::ColumnString::operator[](unsigned long)`
https://clickhouse-test-reports.s3.yandex.net/18481/64c4ade5b0e0c9a13d6c2475431daf431fc97554/fuzzer/fuzzer.log

Introduced here: #17829
First found here: #18481
*/
struct ToDateTime64Transform
{
    static constexpr auto name = "toDateTime64";
    const DateTime64::NativeType scale_multiplier = 1;
    ToDateTime64Transform(UInt32 scale = 0)
        : scale_multiplier(DecimalUtils::scaleMultiplier<DateTime64::NativeType>(scale))
    {}
    inline DateTime64::NativeType execute(UInt16 d, const DateLUTImpl & time_zone) const
    {
        const auto dt = ToDateTimeImpl::execute(d, time_zone);
        return execute(dt, time_zone);
    }
    inline DateTime64::NativeType execute(UInt32 dt, const DateLUTImpl & ) const
    {
        return DecimalUtils::decimalFromComponentsWithMultiplier<DateTime64>(dt, 0, scale_multiplier);
    }
};
template <typename Name> struct ConvertImpl<DataTypeDate, DataTypeDateTime64, Name, ConvertDefaultBehaviorTag>
    : DateTimeTransformImpl<DataTypeDate, DataTypeDateTime64, ToDateTime64Transform> {};
template <typename Name> struct ConvertImpl<DataTypeDateTime, DataTypeDateTime64, Name, ConvertDefaultBehaviorTag>
    : DateTimeTransformImpl<DataTypeDateTime, DataTypeDateTime64, ToDateTime64Transform> {};
/** Conversion of DateTime64 to Date or DateTime: discards fractional part.
 */
template <typename Transform>
struct FromDateTime64Transform
{
    static constexpr auto name = Transform::name;
    const DateTime64::NativeType scale_multiplier = 1;
    FromDateTime64Transform(UInt32 scale)