On 16 January 2018 at 01:09, Robert Haas <robertmh...@gmail.com> wrote: > On Sun, Jan 14, 2018 at 6:57 AM, Amit Khandekar <amitdkhan...@gmail.com> > wrote: >> Even where partitions are present, in the usual case where there are >> Instead of a bool array, we can even make it a Bitmapset. But I think >> access would become slower as compared to array, particularly because >> it is going to be a heavily used function. > > It probably makes little difference -- the Bitmapset will be more > compact (which saves time) but involve function calls (which cost > time).
I'm not arguing in either direction, but you'd also want to factor in how Bitmapsets only allocate words for the maximum stored member, which might mean multiple realloc() calls resulting in palloc/memcpy calls. The array would just be allocated in a single chunk, although it would be more memory and would require a memset too, however, that's likely much cheaper than the palloc() anyway. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services