```sql
select 1 from numbers(10) intersect select 1 from numbers(10)

SELECT 1
FROM numbers(10)
INTERSECT
SELECT 1
FROM numbers(10)

Query id: 9f2d11c5-269c-41dc-9b4c-8f1423aafcc7

┌─1─┐
│ 1 │
│ 1 │
│ 1 │
│ 1 │
│ 1 │
│ 1 │
│ 1 │
│ 1 │
└───┘

8 rows in set. Elapsed: 0.002 sec. 
```
#include <Processors/Transforms/IntersectOrExceptTransform.h>
namespace DB
{
IntersectOrExceptTransform::IntersectOrExceptTransform(const Block & header_, Operator operator_)
    : IProcessor(InputPorts(2, header_), {header_})
    , current_operator(operator_)
{
    const Names & columns = header_.getNames();
    size_t num_columns = columns.empty() ? header_.columns() : columns.size();
    key_columns_pos.reserve(columns.size());
    for (size_t i = 0; i < num_columns; ++i)
    {
        auto pos = columns.empty() ? i : header_.getPositionByName(columns[i]);
        key_columns_pos.emplace_back(pos);
    }
}
IntersectOrExceptTransform::Status IntersectOrExceptTransform::prepare()