**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)
```

res.in = std::make_shared<InputStreamFromASTInsertQuery>(query_ptr, nullptr, query_sample_block, context, nullptr);
        res.in = std::make_shared<NullAndDoCopyBlockInputStream>(res.in, out_streams.at(0));
    }
    else
        res.out = std::move(out_streams.at(0));
    res.pipeline.addStorageHolder(table);
    if (const auto * mv = dynamic_cast<const StorageMaterializedView *>(table.get()))
    {
        if (auto inner_table = mv->tryGetTargetTable())
            res.pipeline.addStorageHolder(inner_table);
    }
    return res;
}
StorageID InterpreterInsertQuery::getDatabaseTable() const
{
    return query_ptr->as<ASTInsertQuery &>().table_id;
}
void InterpreterInsertQuery::extendQueryLogElemImpl(QueryLogElement & elem, const ASTPtr &, const Context & context_) const
{
    elem.query_kind = "Insert";
    const auto & insert_table = context_.getInsertionTable();
    if (!insert_table.empty())
    {
        elem.query_databases.insert(insert_table.getDatabaseName());
        elem.query_tables.insert(insert_table.getFullNameNotQuoted());
    }
}
}