**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.
{
    initGRPCLogging(iserver.config());
    grpc::ServerBuilder builder;
    builder.AddListeningPort(address_to_listen.toString(), makeCredentials(iserver.config()));
    builder.RegisterService(&grpc_service);
    builder.SetMaxSendMessageSize(iserver.config().getInt("grpc.max_send_message_size", -1));
    builder.SetMaxReceiveMessageSize(iserver.config().getInt("grpc.max_receive_message_size", -1));
    auto default_transport_compression = TransportCompression::fromConfiguration(iserver.config());
    builder.SetDefaultCompressionAlgorithm(default_transport_compression.algorithm);
    builder.SetDefaultCompressionLevel(default_transport_compression.level);
    queue = builder.AddCompletionQueue();
    grpc_server = builder.BuildAndStart();
    runner->start();
}
void GRPCServer::stop()
{
    
    runner->stop();
}
size_t GRPCServer::currentConnections() const
{
    return runner->getNumCurrentCalls();
}
}
#endif