**Describe the issue**
We have a table with URL table engine like described below.
And we want to insert into that table via a remote table function.
And if we used a non-existent column name, clickhouse would produce misleading error messages about that table not existing.

**How to reproduce**
Table ddl:
https://github.com/AlexAkulov/clickhouse-backup/releases/tag/v0.6.2
And if we try to execute query with wrong column name:
```
INSERT INTO TABLE FUNCTION remote('chi-backtest1-backtest1-0-0', 'system.backup_actions') (common) values ('create shard1-xxx');

Code: 60, e.displayText() = DB::Exception: Both table name and UUID are empty (version 20.8.7.15 (official build)
```

**Expected behavior**
Clickhouse would produce an error: "that column does not exist in destination table".

**Error message and/or stacktrace**
```
Code: 60, e.displayText() = DB::Exception: Both table name and UUID are empty (version 20.8.7.15 (official build)
```

{
    if (auto * select_query = select->as<ASTSelectQuery>())
    {
        const auto & tables = select_query->tables();
        if (!tables)
            return false;
        const auto & tables_in_select_query = tables->as<ASTTablesInSelectQuery &>();
        if (tables_in_select_query.children.size() != 1)
            return false;
        const auto & child = tables_in_select_query.children.front();
        const auto & table_element = child->as<ASTTablesInSelectQueryElement &>();
        const auto & table_expr = table_element.table_expression->as<ASTTableExpression &>();
        if (table_expr.subquery)
            return false;
        
        return (!select_query->distinct
            && !select_query->limit_with_ties
            && !select_query->prewhere()
            && !select_query->where()
            && !select_query->groupBy()
            && !select_query->having()
            && !select_query->orderBy()
            && !select_query->limitBy());
    }
    
    return false;
};
BlockIO InterpreterInsertQuery::execute()