Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:
> What about using the dense allocation even for the skew buckets, but not
> one context for all skew buckets but one per bucket? Then when we delete
> a bucket, we simply destroy the context (and free the chunks, just like
> we do with the current dense allocator).
Yeah, I was wondering about that too, but it only works if you have quite
a few tuples per skew bucket, else you waste a lot of space. And you were
right upthread that what we're collecting is keys expected to be common in
the outer table, not the inner table. So it's entirely likely that the
typical case is just one inner tuple per skew bucket. (Should check that
out though ...)
regards, tom lane