Clickhouse version: 21.2.5.5

Got wrong result when excuting mutation on Memory table engine.

```sql
CREATE TABLE mem_test(id Int64) ENGINE=Memory();
INSERT INTO mem_test VALUES (1), (2), (3);
ALTER TABLE mem_test UPDATE id=4 WHERE id=1;
SELECT count(*) FROM mem_test;

┌─count()─┐
│      24 │
└─────────┘

SELECT * FROM mem_test;

┌─id─┐
│  4 │
│  2 │
│  3 │
└────┘

3 rows in set. Elapsed: 0.001 sec.
```

{
    std::lock_guard lock(mutex);
    auto metadata_snapshot = getInMemoryMetadataPtr();
    auto storage = getStorageID();
    auto storage_ptr = DatabaseCatalog::instance().getTable(storage, context);
    auto interpreter = std::make_unique<MutationsInterpreter>(storage_ptr, metadata_snapshot, commands, context, true);
    auto in = interpreter->execute();
    in->readPrefix();
    Blocks out;
    while (Block block = in->read())
    {
        if (compress)
            for (auto & elem : block)
                elem.column = elem.column->compress();
        out.push_back(block);
    }
    in->readSuffix();
    std::unique_ptr<Blocks> new_data;
    
    if (interpreter->isAffectingAllColumns())
    {
        new_data = std::make_unique<Blocks>(out);
    }
    else
    {
        
        new_data = std::make_unique<Blocks>(*(data.get()));
        auto data_it = new_data->begin();