**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.
sample.getNames(),
                        storage->getStorageSnapshot(metadata, global_context),
                        query_info,
                        global_context,
                        {},
                        global_context->getSettingsRef().max_block_size,
                        getNumberOfPhysicalCPUCores()
                    ),
                parsed_query
            
        }
        catch (Exception & e)
        {
            e.addMessage("data for INSERT was parsed from file"
            throw;
        }
    }
    else if (parsed_insert_query->data)
    {
        /// Send data contained in the query.
        ReadBufferFromMemory data_in(parsed_insert_query->data, parsed_insert_query->end - parsed_insert_query->data
        try
        {
            sendDataFrom(data_in, sample, columns_description_for_query, parsed_query
        }
        catch (Exception & e)
        {
            /// The following query will use data from input
            //      "INSERT INTO data FORMAT TSV\n " < data.csv
            //  And may be pretty hard to debug, so add information about data source to make it easier.