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.
{
    Block block = modifyRightBlock(src_block);
    sortBlock(block, right_sort_description);
    return saveRightBlock(std::move(block));
}
void MergeJoin::joinBlock(Block & block, ExtraBlockPtr & not_processed)
{
    Names lowcard_keys = lowcard_right_keys;
    if (block)
    {
        JoinCommon::checkTypesOfKeys(block, table_join->keyNamesLeft(), right_table_keys, table_join->keyNamesRight());
        materializeBlockInplace(block);
        for (const auto & column_name : table_join->keyNamesLeft())
        {
            if (block.getByName(column_name).type->lowCardinality())
                lowcard_keys.push_back(column_name);
        }
        JoinCommon::removeLowCardinalityInplace(block, table_join->keyNamesLeft(), false);
        sortBlock(block, left_sort_description);
        if (nullable_left_side)
            JoinCommon::convertColumnsToNullable(block);
    }
    if (!not_processed && left_blocks_buffer)
    {
        if (!block || block.rows())
            block = left_blocks_buffer->exchange(std::move(block));
        if (!block)