`CREATE TABLE test (x Int32, y Int32, s String, PRIMARY KEY (x, y)) ENGINE = MergeTree;`
should be equivalent to
`CREATE TABLE test (x Int32, y Int32, s String) ENGINE = MergeTree PRIMARY KEY (x, y);`
{
    static constexpr auto MAX_THRESHOLD_FOR_ROWS = 100000;
    static constexpr auto MAX_THRESHOLD_FOR_BYTES = 1024 * 1024 * 10;
    
    if (thread_local_rng() % 3 == 0)
    {
        storage_settings->min_rows_for_wide_part = 0;
        storage_settings->min_bytes_for_wide_part = 0;
    }
    else
    {
        storage_settings->min_rows_for_wide_part = std::uniform_int_distribution{0, MAX_THRESHOLD_FOR_ROWS}(thread_local_rng);
        storage_settings->min_bytes_for_wide_part = std::uniform_int_distribution{0, MAX_THRESHOLD_FOR_BYTES}(thread_local_rng);
    }
}
static StoragePtr create(const StorageFactory::Arguments & args)
{
    /** [Replicated][|Summing|Collapsing|Aggregating|Replacing|Graphite]MergeTree (2 * 7 combinations) engines
        * The argument for the engine should be:
        *  - (for Replicated) The path to the table in ZooKeeper
        *  - (for Replicated) Replica name in ZooKeeper