Re: Record a Bitmapset of non-pruned partitions

Amit Langote <amitlangote09@gmail.com>

From: Amit Langote <amitlangote09@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2021-10-01T00:37:27Z
Lists: pgsql-hackers
On Fri, Oct 1, 2021 at 7:07 AM David Rowley <dgrowleyml@gmail.com> wrote:
> On Thu, 30 Sept 2021 at 20:25, Amit Langote <amitlangote09@gmail.com> wrote:
> > Related to the above, I noticed while looking at
> > build_merged_partition_bounds() that db632fbca3 missed adding a line
> > to that function to set interleaved_parts to NULL.  Because the
> > PartitionBoundInfo is only palloc'd (not palloc0'd), interleaved_parts
> > of a "merged" bounds struct ends up pointing to garbage, so let's fix
> > that.  Attached a patch.
>
> Thanks for the patch.
>
> I think we also need to document that interleaved_parts is not set for
> join relations, otherwise someone may in the future try to use that
> field for an optimisation for join relations.  At the moment, per
> generate_orderedappend_paths, we only handle IS_SIMPLE_REL type
> relations.
>
> I've attached a patch that updates the comments to mention this.

Looks good to me.  Thanks.

-- 
Amit Langote
EDB: http://www.enterprisedb.com



Commits

  1. Ensure interleaved_parts field is always initialized

  2. Allow ordered partition scans in more cases

  3. Track a Bitmapset of non-pruned partitions in RelOptInfo