On 16 January 2018 at 09:17, David Rowley <david.row...@2ndquadrant.com> wrote: > 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.
Right. I agree. And also a function call for knowing whether required or not. Overall, I think especially because the data structure will be used heavily whenever it is set up, it's better to make it an array. In the latest patch, I have retained it as an array -- Thanks, -Amit Khandekar EnterpriseDB Corporation The Postgres Database Company