```sql
CREATE TABLE t
(
   id Int64, 
   d String,
   p Map(String, String)
   
)
ENGINE = ReplacingMergeTree order by id settings index_granularity  = 0;


insert into t values (1,  's', {'a':'b'});

CH starts eating RAM until it crashes

the same with

insert into t select 1,  's', map('a','b');

```

{
            if ((*it)->info.min_block < pos)
                continue;
            if (!is_appropriate_state((*it)->getState()))
            {
                update_error(it);
                continue;
            }
            if ((*it)->info.min_block > pos)
                update_error(it);
            if ((*it)->getState() != DataPartState::Active)
                activate_part(it);
            pos = (*it)->info.max_block + 1;
            restored.push_back((*it)->name);
        }
        if (pos != part->info.max_block + 1)
            error = true;
        for (const String & name : restored)
        {
            LOG_INFO(log, "Activated part {}", name);
        }
        if (error)
        {
            LOG_ERROR(log, "The set of parts restored in place of {} looks incomplete. There might or might not be a data loss.{}", part->name, (error_parts.empty() ? "" : " Suspicious parts: " + error_parts));
        }
    }
    if (removed_active_part || restored_active_part)
        resetObjectColumnsFromActiveParts(lock);
}
void MergeTreeData::tryRemovePartImmediately(DataPartPtr && part)