**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 (input.ends_with("\\G"))
                input.resize(input.size() - 2
            else if (input.ends_with("\\G;"))
                input.resize(input.size() - 3
            has_vertical_output_suffix = true;
        }
        for (const auto& [alias, command] : backslash_aliases)
        {
            auto it = std::search(input.begin(), input.end(), alias.begin(), alias.end()
            if (it != input.end() && std::all_of(input.begin(), it, isWhitespaceASCII))
            {
                it += alias.size(
                if (it == input.end() || isWhitespaceASCII(*it))
                {
                    String new_input = command;
                    // append the rest of input to the command
                    // for parameters support, e.g. \c db_name -> USE db_name
                    new_input.append(it, input.end()
                    input = std::move(new_input
                    break;
                }
            }
        }
        try
        {
            if (!processQueryText(input))
                break;
        }
        catch (const Exception & e)
        {