**Describe the bug**
`SELECT i FROM generateRandom('i Array(Int8)', 1048575, 10, 1048577) LIMIT 1048575`

Memory limit should be respected.
if (skip_indices_aggregators[i]->empty())
                {
                    skip_indices_aggregators[i] = index_helper->createIndexAggregator();
                    skip_index_filling[i] = 0;
                    if (stream.compressed.offset() >= settings.min_compress_block_size)
                        stream.compressed.next();
                    writeIntBinary(stream.plain_hashing.count(), stream.marks);
                    writeIntBinary(stream.compressed.offset(), stream.marks);
                    
                    
                    if (settings.can_use_adaptive_granularity)
                        writeIntBinary(1UL, stream.marks);
                }
                
                skip_index_current_data_mark++;
            }
            size_t pos = prev_pos;
            skip_indices_aggregators[i]->update(skip_indexes_block, &pos, limit);
            if (pos == prev_pos + limit)
            {
                ++skip_index_filling[i];
                
                if (skip_index_filling[i] == index_helper->index.granularity)
                {
                    skip_indices_aggregators[i]->getGranuleAndReset()->serializeBinary(stream.compressed);
                    skip_index_filling[i] = 0;
                }
            }
            prev_pos = pos;
        }