```sql
drop table if exists src;

create table src( A Int64, B String, C String) Engine=MergeTree order by A
SETTINGS min_bytes_for_wide_part=0;
insert into src values(1, 'one', 'test');

alter table src detach partition tuple();

alter table src modify column B Nullable(String);

alter table src attach partition tuple();
select * from src;
┌─A─┬─B───┬─C────┐
│ 1 │ one │ test │
└───┴─────┴──────┘

alter table src update C = 'test1' where 1 settings mutations_sync=2;

select * from src;
┌─A─┬─B────┬─C─────┐
│ 1 │ ᴺᵁᴸᴸ │ test1 │   -- expected B='one'
└───┴──────┴───────┘
```

```sql
drop table if exists src;
create table src( A String, B String, C String) Engine=MergeTree order by A
SETTINGS min_bytes_for_wide_part=0;
insert into src values('one', 'one', 'test');

alter table src detach partition tuple();

alter table src modify column A LowCardinality(String);

alter table src attach partition tuple();

select * from src;
┌─A───┬─B───┬─C────┐
│ one │ one │ test │
└─────┴─────┴──────┘

alter table src update C = 'test1' where 1 settings mutations_sync=2;

select * from src;

Received exception from server (version 22.9.1):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: 
Got empty stream for SerializationLowCardinality keys.: (while reading column A): 
(while reading from part /var/lib/clickhouse/store/11b/11b74812-48b9-4c1f-9bdc-3e7a28137a9e/all_3_3_0_4/ from mark 0 with max_rows_to_read = 1): 
While executing MergeTreeInOrder. (LOGICAL_ERROR)

```

```sql
drop table if exists src;
create table src( A String, B String, C String) Engine=MergeTree order by A
SETTINGS min_bytes_for_wide_part=0;
insert into src values('one', 'one', 'test');

alter table src detach partition tuple();

alter table src modify column A LowCardinality(String);

alter table src attach partition tuple();

select * from src;
┌─A───┬─B───┬─C────┐
│ one │ one │ test │
└─────┴─────┴──────┘

alter table src modify column C LowCardinality(String);

select * from src;

Received exception from server (version 22.9.3):
Code: 49. DB::Exception: Received from localhost:9000. 
DB::Exception: Got empty stream for SerializationLowCardinality keys.: 
```

related https://github.com/ClickHouse/ClickHouse/issues/42083 , https://github.com/ClickHouse/ClickHouse/issues/42074
(basically it's the same one issue, but I opened this one, because I think the root issue is in `alter update`.

it seems `alter update` updates columns.txt for all columns even if they are not participated in the `alter update`.
for (auto & status : replicas_status_futures)
        if (status.get().error == Coordination::Error::ZOK)
            ++active_replicas;
    size_t replicas_number = replicas.size();
    size_t quorum_size = getQuorumSize(replicas_number);
    if (active_replicas < quorum_size)
        throw Exception(ErrorCodes::TOO_FEW_LIVE_REPLICAS, "Number of alive replicas ({}) is less than requested quorum ({}/{}).",
                        active_replicas, quorum_size, replicas_number);
    /** Is there a quorum for the last part for which a quorum is needed?
        * Write of all the parts with the included quorum is linearly ordered.
        * This means that at any time there can be only one part,
        *  for which you need, but not yet reach the quorum.
        * Information about this part will be located in `/quorum/status` node.
        * If the quorum is reached, then the node is deleted.
        */
    String quorum_status;
    if (!quorum_parallel && zookeeper->tryGet(quorum_info.status_path, quorum_status))
        throw Exception("Quorum for previous write has not been satisfied yet. Status: " + quorum_status,
                        ErrorCodes::UNSATISFIED_QUORUM_FOR_PREVIOUS_WRITE);
    
    auto is_active = is_active_future.get();
    auto host = host_future.get();
    if (is_active.error == Coordination::Error::ZNONODE || host.error == Coordination::Error::ZNONODE)
        throw Exception("Replica is not active right now", ErrorCodes::READONLY);
    quorum_info.is_active_node_value = is_active.data;
    quorum_info.is_active_node_version = is_active.stat.version;
    quorum_info.host_node_version = host.stat.version;
    return replicas_number;
}
void ReplicatedMergeTreeSink::consume(Chunk chunk)