Re: [HACKERS] Runtime Partition Pruning
От | David Rowley |
---|---|
Тема | Re: [HACKERS] Runtime Partition Pruning |
Дата | |
Msg-id | CAKJS1f99JnkbOshdV_4zoJZ96DPtKeHMHv43JRL_ZdHRkkVKCA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Runtime Partition Pruning (David Rowley <david.rowley@2ndquadrant.com>) |
Ответы |
Re: [HACKERS] Runtime Partition Pruning
|
Список | pgsql-hackers |
On 7 April 2018 at 10:45, David Rowley <david.rowley@2ndquadrant.com> wrote: > I'm looking over the rebased patches now. I've made a complete read of 0001 and 0002 so far. Your rebase looks fine. After the complete read, I only have the following comments: 0001: 1. missing "the" before "partition key": * Extract Params matching partition key and record if we got any. 2. Is this the property name we're going to stick with: ExplainPropertyInteger("Subplans Pruned", NULL, nplans - nsubnodes, es); Other ideas are: "Subplans Removed" 3. In the following comment I've used the word "hierarchy", but maybe we need to add the word "flattened" before it. * PartitionPruning - Encapsulates a hierarchy of PartitionRelPruning 4. Comment mentions "after init plan", but really we can only know the value of an exec param during actual execution. So: * Parameters that are safe to be used for partition pruning. execparams * are not safe to use until after init plan. maybe better as: * Parameters that are safe to be used for partition pruning. execparams * are not safe to use until the executor is running. 0002: Looks fine. But if I was committing this, to give me confidence, I'd want to know how the left_most_one table was generated. I used: #include <stdio.h> int main(void) { int i = 1; printf("0, "); while (i < 256) { printf("%d, ", 31 - __builtin_clz(i)); if ((i & 0xf) == 0xf) putchar('\n'); i++; } return 0; } Continuing to read 0003 and 0004 now. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: