**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 (allow_settings_after_format_in_insert && s_settings.ignore(pos, expected))
    {
        if (settings_ast)
            throw Exception("You have SETTINGS before and after FORMAT, "
                            "this is not allowed. "
                            "Consider switching to SETTINGS before FORMAT "
                            "and disable allow_settings_after_format_in_insert.",
                            ErrorCodes::SYNTAX_ERROR);
        
        ParserSetQuery parser_settings(true);
        if (!parser_settings.parse(pos, settings_ast, expected))
            return false;
        
        
        if (data != nullptr)
            data = pos->begin;
    }
    if (select)
    {
        
        InsertQuerySettingsPushDownVisitor::Data visitor_data{settings_ast};
        InsertQuerySettingsPushDownVisitor(visitor_data).visit(select);
    }
    
    if (format && !infile)
    {
        Pos last_token = pos;
        --last_token;