Looks like https://github.com/ClickHouse/ClickHouse/pull/21303 is broke also "clear column" for such columns.

How to reproduce:

```
CREATE TABLE test.TTAdmLog
(
    `ts` DateTime,
    `event_date` Date DEFAULT toDate(ts),
    `impression_id` String DEFAULT '',
    `creative_id` String DEFAULT '',
    `creative_adm` String DEFAULT '',
    `impression_id_compressed` FixedString(16) DEFAULT UUIDStringToNum(impression_id),
    `impression_id_hashed` UInt16 DEFAULT reinterpretAsUInt16(impression_id_compressed),
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/TTAdmLogTest', '{replica}')
PARTITION BY toMonday(event_date)
ORDER BY (event_date, impression_id_hashed)
SAMPLE BY impression_id_hashed
SETTINGS replicated_deduplication_window = 1000, replicated_deduplication_window_seconds = 864000, index_granularity = 8192

CREATE MATERIALIZED VIEW test.TTView
(
    `event_date` Date,
    `creative_id` String,
    `creative_adm` AggregateFunction(anyLast, String),
)
ENGINE = ReplicatedAggregatingMergeTree('/clickhouse/tables/{shard}/TTViewTest', '{replica}', event_date, (event_date, creative_id), 8192) AS
SELECT 
    toStartOfMonth(event_date) AS event_date,
    arrayJoin(splitByChar(',', creative_id)) AS creative_id,
    anyLastState(creative_adm) AS creative_adm,
FROM test.TTAdmLog
GROUP BY 
    event_date,
    creative_id,

```


ClickHouse server version 20.9.3 revision 54439.

```
alter table test.TTAdmLog clear column creative_adm in partition '2021-03-22'

OK

```
ClickHouse server version 21.4.3 revision 54447.

```
alter table test.TTAdmLog  clear column creative_adm in partition '2021-03-22'

DB::Exception: Trying to ALTER DROP column creative_adm which is referenced by materialized view ['TTView'].

```

if (!column.type->equals(*dst_col.type))
            {
                LOG_WARNING(log, "Destination table {} have different type of column {} ({} != {}). Block of data is converted.", destination_id.getNameForLogs(), backQuoteIfNeed(column.name), dst_col.type->getName(), column.type->getName());
                column.column = castColumn(column, dst_col.type);
                column.type = dst_col.type;
            }
            block_to_write.insert(column);
        }
    }
    if (block_to_write.columns() == 0)
    {
        LOG_ERROR(log, "Destination table {} have no common columns with block in buffer. Block of data is discarded.", destination_id.getNameForLogs());
        return;
    }
    if (block_to_write.columns() != block.columns())
        LOG_WARNING(log, "Not all columns from block in buffer exist in destination table {}. Some columns are discarded.", destination_id.getNameForLogs());
    auto list_of_columns = std::make_shared<ASTExpressionList>();
    insert->columns = list_of_columns;
    list_of_columns->children.reserve(block_to_write.columns());
    for (const auto & column : block_to_write)
        list_of_columns->children.push_back(std::make_shared<ASTIdentifier>(column.name));
    auto insert_context = Context::createCopy(getContext());
    insert_context->makeQueryContext();
    InterpreterInsertQuery interpreter{insert, insert_context, allow_materialized};
    auto block_io = interpreter.execute();
    block_io.out->writePrefix();
    block_io.out->write(block_to_write);
    block_io.out->writeSuffix();
}
void StorageBuffer::backgroundFlush()