```
milovidov-desktop :) CREATE TABLE hits2 AS hits

CREATE TABLE hits2 AS hits

Query id: ef73b907-c73b-42ba-8194-db88c88cc85b

Ok.

0 rows in set. Elapsed: 0.024 sec. 

milovidov-desktop :) INSERT INTO hits2 FROM INFILE 'hits.tsv'

INSERT INTO hits2 FROM INFILE 'hits.tsv'

Query id: 0588941e-ff9e-4741-97ce-7784aee1e253

↓ Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.)
```

Two problems:
- no progress;
- it is displaying a fractional number of rows (`0.00`).
}
    /// Merge src into dst.
    for (sizw < dst_rows; ++dst_row)
    {
        Id id{
            dst_column_name.getDataAt(dst_row),
            dst_column_host_name.getDataAt(dst_row),
        };
        if (auto it = rows_by_name.find(id); it != rows_by_name.end())
        {
            size_t src_row = it->second;
            if (thread_id_filter_mask.contains(src_row))
            {
                conue;
            }
            dst_array_current_time[dst_row] = src_array_current_time[src_row];
            switch (dst_array_type[dst_row])
            {
                case ProfileEvents::Type::INCREMENT:
                    dst_array_value[dst_row] += src_array_value[src_row];
                    break;
                case ProfileEvents::Type::GAUGE:
                    dst_array_value[dst_row] = src_array_value[src_row];
                    break;
            }
            rows_by_name.erase(it);
        }
    }
    /// Copy rows from src that dst does not contains.
    for (const auto & [id, pos] : rows_by_name)