**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.
{
        if (failed_to_read_query_info)
        {
            if (initial_query_info_read)
                throw Exception("Failed to read extra QueryInfo", ErrorCodes::NETWORK_ERROR);
            else
                throw Exception("Failed to read initial QueryInfo", ErrorCodes::NETWORK_ERROR);
        }
    }
    bool Call::isQueryCancelled()
    {
        if (cancelled)
        {
            result.set_cancelled(true);
            return true;
        }
        if (want_to_cancel)
        {
            LOG_INFO(log, "Query cancelled");
            cancelled = true;
            result.set_cancelled(true);
            return true;
        }
        return false;
    }
    void Call::addQueryDetailsToResult()