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.
```

#include <cassert>
#include <Common/Exception.h>
#include <DataStreams/IBlockInputStream.h>
#include <Interpreters/MutationsInterpreter.h>
#include <Storages/StorageFactory.h>
#include <Storages/StorageMemory.h>
#include <Storages/MemorySettings.h>
#include <IO/WriteHelpers.h>
#include <Processors/Sources/SourceWithProgress.h>
#include <Processors/Pipe.h>
namespace DB
{
namespace ErrorCodes
{
    extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH;
}
class MemorySource : public SourceWithProgress