Thankfully "partial merge join" is disabled by default.

```
milovidov-desktop :) SET max_block_size = 6, join_algorithm = 'partial_merge'

SET max_block_size = 6, join_algorithm = 'partial_merge'

Query id: 600704b7-b455-4726-8a9c-8e45b509f2fb

Ok.

0 rows in set. Elapsed: 0.002 sec. 

milovidov-desktop :) SELECT blockSize() bs FROM (SELECT 1 s) js1 ALL RIGHT JOIN (SELECT arrayJoin([2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3]) s) js2 USING (s) GROUP BY bs ORDER BY bs;

SELECT blockSize() AS bs
FROM
(
    SELECT 1 AS s
) AS js1
ALL RIGHT JOIN
(
    SELECT arrayJoin([2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3]) AS s
) AS js2 USING (s)
GROUP BY bs
ORDER BY bs ASC

Query id: ae51c589-4b69-4e90-a3a9-7ef4ead72af9

→ Progress: 2.00 rows, 2.00 B (18.21 rows/s., 18.21 B/s.)
```

Found by stress test.
{
    if (!initialized)
    {
        initialized = true;
        if (join->alwaysReturnsEmptySet() && !on_totals)
        {
            stop_reading = true;
            chunk.clear();
            return;
        }
    }
    Block block;
    if (on_totals)
    {
        const auto & left_totals = inputs.front().getHeader().cloneWithColumns(chunk.detachColumns());
        const auto & right_totals = join->getTotals();
        
        
        if (default_totals && !right_totals)
            return;
        block = outputs.front().getHeader().cloneEmpty();
        JoinCommon::joinTotals(left_totals, right_totals, join->getTableJoin(), block);
    }
    else
        block = readExecute(chunk);
    auto num_rows = block.rows();
    chunk.setColumns(block.getColumns(), num_rows);
}
Block JoiningTransform::readExecute(Chunk & chunk)