```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');

```

pool.scheduleOrThrowOnError([&, thread_group = CurrentThread::getGroup()]
            {
                SCOPE_EXIT_SAFE(
                    if (thread_group)
                        CurrentThread::detachQueryIfNotDetached();
                );
                if (thread_group)
                    CurrentThread::attachToIfDetached(thread_group);
                preparePartForRemoval(part)->remove();
                if (part_names_succeed)
                {
                    std::lock_guard lock(part_names_mutex);
                    part_names_succeed->insert(part->name);
                }
            });
        }
        pool.wait();
    }
    else if (!parts_to_remove.empty())
    {
        LOG_DEBUG(log, "Removing {} parts from filesystem: {}", parts_to_remove.size(), fmt::join(parts_to_remove, ", "));
        for (const DataPartPtr & part : parts_to_remove)
        {
            preparePartForRemoval(part)->remove();
            if (part_names_succeed)
                part_names_succeed->insert(part->name);
        }
    }
}
size_t MergeTreeData::clearOldBrokenPartsFromDetachedDirectory()