**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.
const auto local_tz = DateLUT::instance().getTimeZone(
    suggest.emplace(
    if (load_suggestions)
    {
        /// Load suggestion data from the server.
        if (global_context->getApplicationType() == Context::ApplicationType::CLIENT)
            suggest->load<Connection>(global_context, connection_parameters, config().getInt("suggestion_limit")
        else if (global_context->getApplicationType() == Context::ApplicationType::LOCAL)
            suggest->load<LocalConnection>(global_context, connection_parameters, config().getInt("suggestion_limit")
    }
    if (home_path.empty())
    {
        const char * home_path_cstr = getenv("HOME"
        if (home_path_cstr)
            home_path = home_path_cstr;
    }
    /// Load command history if present.
    ))
        history_file = config().getString("history_file"
    else
    {
        auto * history_file_from_env = getenv("CLICKHOUSE_HISTORY_FILE"
        if (history_file_from_env)
            history_file = history_file_from_env;
        else if (!home_path.empty())
            history_file = home_path + "/.clickhouse-client-history";
    }
    if (!history_file.empty() && !fs::exists(history_file))
    {
        /// Avoid TOCTOU issue.