Re: [Sender Address Forgery]Re: path toward faster partition pruning
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
On 2017/11/06 21:52, David Rowley wrote: > On 6 November 2017 at 23:01, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> wrote: >> OK, I have gotten rid of the min/max partition index interface and instead >> adopted the bms_add_range() approach by including your patch to add the >> same in the patch set (which is now 0002 in the whole set). I have to >> admit that it's simpler to understand the new code with just Bitmapsets to >> look at, but I'm still a bit concerned about materializing the whole set >> right within partition.c, although we can perhaps optimize it later. > > Thanks for making that change. The code looks much more simple now. > > For performance, if you're worried about a very large number of > partitions, then I think you're better off using bms_next_member() > rather than bms_first_member(), (likely this applies globally, but you > don't need to worry about those). > > The problem with bms_first_member is that it must always loop over the > 0 words before it finds any bits set for each call, whereas > bms_next_member will start on the word it was last called for. There > will likely be a pretty big performance difference between the two > when processing a large Bitmapset. Ah, thanks for the explanation. I will change it to bms_next_member() in the next version. >> Attached updated set of patches, including the fix to make the new pruning >> code handle Boolean partitioning. > > Thanks. I'll look over it all again starting my Tuesday morning. (UTC+13) Thank you. Regards, Amit
Commits
-
Fix assorted partition pruning bugs
- d758d9702e2f 11.0 landed
-
Make gen_partprune_steps static
- d1e2cac5ff7e 11.0 landed
-
Remove useless 'default' clause
- c775fb9e18ac 11.0 landed
-
Reorganize partitioning code
- da6f3e45ddb6 11.0 landed
-
Use custom hash opclass for hash partition pruning
- fafec4cce814 11.0 landed
-
Blindly attempt to fix sepgsql tests broken due to 9fdb675fc5.
- 4f813c7203e0 11.0 landed
-
Attempt to fix endianess issues in new hash partition test.
- 40e42e1024c5 11.0 landed
-
Faster partition pruning
- 9fdb675fc5d2 11.0 landed
-
For partitionwise join, match on partcollation, not parttypcoll.
- 2af28e603319 11.0 landed
-
Revise API for partition bound search functions.
- f724022d0ae0 11.0 landed
-
Revise API for partition_rbound_cmp/partition_rbound_datum_cmp.
- b0229235564f 11.0 landed
-
Fix possible crash in partition-wise join.
- f069c91a5793 11.0 cited
-
Refactor code for partition bound searching
- 9aef173163ae 11.0 landed
-
New C function: bms_add_range
- 84940644de93 11.0 landed
-
Add extensive tests for partition pruning.
- 8d4e70a63bf8 11.0 landed
-
Add null test to partition constraint for default range partitions.
- 7b88d63a9122 11.0 cited
-
Remove BufFile's isTemp flag.
- 11e264517dff 11.0 cited
-
Make OWNER TO subcommand mention consistent
- bf54c0f05c0a 11.0 cited
-
Fix index matching for operators with mixed collatable/noncollatable inputs.
- cb37c291060d 9.2.0 cited