If name of key column equals in both tables in Storage Join `JOIN ON` trows an error:

```
:) CREATE TABLE t1 (x String) ENGINE = TinyLog;

:) CREATE TABLE t2 (x String) ENGINE = Join(ALL, INNER, x);

:) select * from t1 join t2 USING(x);

Ok.

0 rows in set. Elapsed: 0.036 sec.

:) select * from t1 join t2 ON (t1.x == t2.x);

0 rows in set. Elapsed: 0.026 sec.

Received exception from server (version 21.3.1):
Code: 8. DB::Exception: Received from localhost:9000. DB::Exception: Cannot find column `t2.x` in source stream.

```

If secondary column name match we tables cannot be joined with `USING` too:

```
:) CREATE TABLE t1 (x String, y String) ENGINE = TinyLog;

:) CREATE TABLE t2 (x String, y String) ENGINE = Join(ALL, INNER, x);

:) select * from t1 join t2 USING(x);


0 rows in set. Elapsed: 0.027 sec.

Received exception from server (version 21.3.1):
Code: 8. DB::Exception: Received from localhost:9000. DB::Exception: Cannot find column `t2.y` in source stream.

```
{
public:
    JoinSource(HashJoinPtr join_, std::shared_mutex & rwlock, UInt64 max_block_size_, Block sample_block_)
        : SourceWithProgress(sample_block_)
        , join(join_)
        , lock(rwlock)
        , max_block_size(max_block_size_)
        , sample_block(std::move(sample_block_))
    {
        column_indices.resize(sample_block.columns());
        auto & saved_block = join->getJoinedData()->sample_block;
        for (size_t i = 0; i < sample_block.columns(); ++i)
        {
            auto & [_, type, name] = sample_block.getByPosition(i);
            if (join->right_table_keys.has(name))
            {
                key_pos = i;
                const auto & column = join->right_table_keys.getByName(name);
                restored_block.insert(column);
            }
            else
            {
                size_t pos = saved_block.getPositionByName(name);
                column_indices[i] = pos;
                const auto & column = saved_block.getByPosition(pos);
                restored_block.insert(column);
            }
        }
    }
    String getName() const override { return "Join"; }