**Use case**

ClickHouse already throws exception if the data for INSERT is empty:

```
Code: 108. DB::Exception: No data to insert
```

Let's introduce a setting, enabled by default, to control this behavior.
The user will be able to disable it to allow empty INSERTs.

This is useful in some batch scripts.
};
        rows_by_name[id] = src_row;
    }
    /// Filter out snapshots
    std::seer_mask;
    for (size_t i = 0; i < src_array_thread_id.size( ++i)
    {
        if (src_array_thread_id[i] != 0)
        {
            thread_id_filter_mask.emplace(i
        }
    }
    /// 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))
            {
                continue;
            }
            dst_array_current_time[dst_row] = src_array_current_time[src_row];
            switch (dst_array_type[dst_row])
            {
                case ProfileEvents::Type::INCREMENT: