https://clickhouse-test-reports.s3.yandex.net/8367/333ec2e496f4fe4addd22d5fa7c5c2a499099c57/fuzzer/fuzzer.log#fail1
}
            else
            {
                memcpy(key_start, keys[j].data, keys[j].size);
                key_start += keys[j].size;
            }
        }
        return KeyRef(place);
    }
    KeyRef copyKeyFrom(const KeyRef & key)
    {
        char * data = arena.alloc(key.fullSize());
        memcpy(data, key.fullData(), key.fullSize());
        return KeyRef(data);
    }
    void freeKey(const KeyRef & key)
    {
        if constexpr (std::is_same_v<A, ArenaWithFreeLists>)
            arena.free(key.fullData(), key.fullSize());
    }
    void rollback(const KeyRef & key)
    {
        if constexpr (std::is_same_v<A, Arena>)
            arena.rollback(key.fullSize());
    }
    void writeKey(const KeyRef & key, WriteBuffer & buf)
    {
        buf.write(key.fullData(), key.fullSize());
    }
    void readKey(KeyRef & key, ReadBuffer & buf)