CPU usage is misreported.

Currently "0 CPU" means "no CPU metric received in the previous ProfileEvents packet". But there can be many ProfileEvents packets and only a few with CPU increment.

That's why the CPU metric shows something weird like:
```
0
0
0
0
0
1234
0
0
0
...
```

This is unbearable, and the CPU metric should be either fixed or removed altogether.
/// huge problem if suggestion will be added even on error, since this is
    /// just suggestion.
    ///
    /// st, ul suggestion will be ready
    /// (this will avoid extra complexity)
    if (suggest)
        updateSuggest(parsed_query);
    /// An INSERT query may have the data that follows query text.
    /// Send part of the query without data, because data will be sent separately.
    /// But for asynchronous inserts we don't extract data, because it's needed
    /// to be done on server side in that case (for coalescing the data from multiple inserts on server side).
    const auto * insert = parsed_query->as<ASTInsertQuery>();
    if (insert && isSyncInsertWithData(*insert, global_context))
        query_to_execute = full_query.substr(0, insert->data - full_query.data());
    else
        query_to_execute = full_query;
    try
    {
        processParsedSingleQuery(full_query, query_to_execute, parsed_query, echo_queries);
    }
    catch (Exception & e)
    {
        if (!is_interactive)
            e.addMessage("(in query: {})", full_query);
        throw;
    }
    if 
        processError(full_query);
}
void ClientBase::processOrdinaryQuery(const String & query_to_execute, ASTPtr parsed_query)