**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.
ASTPtr format;
    ASTPtr select;
    ASTPtr watch;
    ASTPtr table_function;
    ASTPtr settings_ast;
    ASTPtr partition_by_expr;
    ASTPtr compression;
    
    const char * data = nullptr;
    
    if (!s_insert_into.ignore(pos, expected))
        return false;
    
    s_table.ignore(pos, expected);
    
    
    
    if (s_function.ignore(pos, expected))
    {
        
        if (!table_function_p.parse(pos, table_function, expected))
            return false;
        
        if (s_partition_by.ignore(pos, expected))
        {
            if (!exp_elem_p.parse(pos, partition_by_expr, expected))
                return false;
        }
    }
    else