```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. 
```
{
        return std::make_shared<LowCardinalityDictionaryCache>(settings);
    }
    ColumnRawPtrs key_columns;
    const IColumn * positions = nullptr;
    size_t size_of_index_type = 0;
    
    const UInt64 * saved_hash = nullptr;
    
    ColumnPtr dictionary_holder;
    
    columns_hashing_impl::MappedCache<Mapped> mapped_cache;
    PaddedPODArray<VisitValue> visit_cache;
    
    bool is_nullable = false;
    static const ColumnLowCardinality & getLowCardinalityColumn(const IColumn * column)
    {
        const auto * low_cardinality_column = typeid_cast<const ColumnLowCardinality *>(column);
        if (!low_cardinality_column)
            throw Exception("Invalid aggregation key type for HashMethodSingleLowCardinalityColumn method. "
                            "Excepted LowCardinality, got " + column->getName(), ErrorCodes::LOGICAL_ERROR);
        return *low_cardinality_column;
    }
    HashMethodSingleLowCardinalityColumn(