Currently executing queries like: 

```
SELECT * FROM system.tables LIMIT 10;\G 
SELECT * FROM system.tables LIMIT 10\G;
```

Ends up with a syntax error.

From the documentation, it should not be an error:

> You can specify \G instead of or after the semicolon.


/// INSERT query for which data transfer is needed (not an INSERT SELECT or input()) is processed separately.
        if (insert && (!insert->select || input_function) && !insert->watch && !is_async_insert)
        {
            if (input_function && insert->format.empty())
                throw Exception("FORMAT must be specified for function input()", ErrorCodes::INVALID_USAGE_OF_INPUT
            processInsertQuery(query_to_execute, parsed_query
        }
        else
            processOrdinaryQuery(query_to_execute, parsed_query
    }
    /// Do not change context (current DB, settings) in case of an exception.
    if (!have_error)
    {
        if (const auto * set_query = parsed_query->as<ASTSetQuery>())
        {
            /// Save all changes in settings to avoid losing them if the connection is lost.
            for (const auto & change : set_query->changes)
            {
                if (change.name == "profile")
                    current_profile = change.value.safeGet<String>(
                else
                    global_context->applySettingChange(change
            }
        }
        if (const auto * use_query = parsed_query->as<ASTUseQuery>())
        {
            const String & new_database = use_query->database;
            /// If the client initiates the reconnection, it takes the settings from the config.
            config().setString("database", new_database
            /// If the connection initiates the reconnection, it uses its variable.