**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.
reading_query_info.set(false);
            });
        };
        auto finish_reading = [&]
        {
            if (reading_query_info.get())
            {
                Stopwatch client_writing_watch;
                reading_query_info.wait(false);
                waited_for_client_writing += client_writing_watch.elapsedNanoseconds();
            }
            throwIfFailedToReadQueryInfo();
            query_info = std::move(next_query_info_while_reading);
            initial_query_info_read = true;
        };
        if (!initial_query_info_read)
        {
            
            start_reading();
        }
        
        finish_reading();
        if (isInputStreaming(call_type))
        {
            
            
            start_reading();
        }
    }
    void Call::throwIfFailedToReadQueryInfo()