https://clickhouse-test-reports.s3.yandex.net/19475/02d28c1f9b9558ca5af267167a542819b9e1d061/fuzzer_debug/report.html#fail1
{
            num_rows += block.rows();
            inputs.emplace_back(std::make_shared<OneBlockInputStream>(block));
        }
        Blocks tmp_blocks;
        MergingSortedBlockInputStream stream(inputs, sort_description, num_rows);
        while (const auto & block = stream.read())
            tmp_blocks.emplace_back(block);
        blocks.swap(tmp_blocks);
    }
    if (blocks.size() == 1)
        return blocks[0];
    Block out = blocks[0].cloneEmpty();
    { 
        MutableColumns columns = out.mutateColumns();
        for (size_t i = 0; i < columns.size(); ++i)
        {
            columns[i]->reserve(num_rows);
            for (const auto & block : blocks)
            {
                const auto & tmp_column = *block.getByPosition(i).column;
                columns[i]->insertRangeFrom(tmp_column, 0, block.rows());
            }
        }
        out.setColumns(std::move(columns));
    }
    return out;
}
}