```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. 
```
{
public:
    
    
    struct DictionaryKey
    {
        UInt128 hash;
        UInt64 size;
        bool operator== (const DictionaryKey & other) const { return hash == other.hash && size == other.size; }
    };
    struct DictionaryKeyHash
    {
        size_t operator()(const DictionaryKey & key) const
        {
            SipHash hash;
            hash.update(key.hash);
            hash.update(key.size);
            return hash.get64();
        }
    };
    struct CachedValues
    {
        
        ColumnPtr dictionary_holder;
        
        const UInt64 * saved_hash = nullptr;
    };
    using CachedValuesPtr = std::shared_ptr<CachedValues>;
    explicit LowCardinalityDictionaryCache(const HashMethodContext::Settings & settings) : cache(settings.max_threads) {}