**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.
query->table_function = table_function;
        query->partition_by = partition_by_expr;
    }
    else
    {
        query->database = database;
        query->table = table;
        if (database)
            query->children.push_back(database);
        if (table)
            query->children.push_back(table);
    }
    query->columns = columns;
    query->format = std::move(format_str);
    query->select = select;
    query->watch = watch;
    query->settings_ast = settings_ast;
    query->data = data != end ? data : nullptr;
    query->end = end;
    if (columns)
        query->children.push_back(columns);
    if (select)
        query->children.push_back(select);
    if (watch)
        query->children.push_back(watch);
    if (settings_ast)
        query->children.push_back(settings_ast);
    return true;
}
bool ParserInsertElement::parseImpl(Pos & pos, ASTPtr & node, Expected & expected)