Don't require the `--structure` argument.
{
        const ColumnString & column_string = assert_cast<const ColumnString &>(column);
        size_t size = column_string.size();
        auto res_column = ColumnString::create();
        res_column->reserve(size);
        std::string new_string;
        for (size_t i = 0; i < size; ++i)
        {
            StringRef src_string = column_string.getDataAt(i);
            size_t desired_string_size = transform(src_string.size, seed);
            new_string.resize(desired_string_size * 2);
            size_t actual_size = 0;
            if (desired_string_size != 0)
                actual_size = markov_model.generate(new_string.data(), desired_string_size, new_string.size(), seed, src_string.data, src_string.size);
            res_column->insertData(new_string.data(), actual_size);
        }
        return res_column;
    }
    void updateSeed() override
    {
        seed = hash(seed);
    }
    void serialize(WriteBuffer & out) const override
    {
        markov_model.serialize(out);
    }
    void deserialize(ReadBuffer & in) override