**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.
{
                /// Use stderr by default
                :make_unique<WriteBufferFromFileDescriptor>(STDERR_FILENO
                wb = out_logs_buf.get(
            }
            else if (server_logs_file == "-")
            {
                /// Use stdout if --server_logs_file=- specified
                wb = &std_out;
            }
            else
            {
                out_logs_buf
                    = std::make_unique<WriteBufferFromFile>(server_logs_file, DBMS_DEFAULT_BUFFER_SIZE, O_WRONLY | O_APPEND | O_CREAT
                wb = out_logs_buf.get(
            }
        }
        logs_out_stream = std::make_unique<InternalTextLogs>(*wb, stdout_is_a_tty
    }
}
void ClientBase::updateSuggest(const ASTCreateQuery & ast_create)
{
    std::vector<std::string> new_words;
    if (ast_create.database)
        new_words.push_back(ast_create.getDatabase()
    new_words.push_back(ast_create.getTable()
    if (ast_create.columns_list && ast_create.columns_list->columns)
    {
        for (const auto & elem : ast_create.columns_list->columns->children)
        {