Re: [HACKERS] path toward faster partition pruning
От | Robert Haas |
---|---|
Тема | Re: [HACKERS] path toward faster partition pruning |
Дата | |
Msg-id | CA+Tgmoaid2uHiHobCbhwLqbhAgUU-L-d6G-85OFmwEYwBqCs_w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] path toward faster partition pruning (David Rowley <david.rowley@2ndquadrant.com>) |
Ответы |
Re: [HACKERS] path toward faster partition pruning
|
Список | pgsql-hackers |
On Thu, Sep 28, 2017 at 5:16 AM, David Rowley <david.rowley@2ndquadrant.com> wrote: > I'd imagine, for > each partition key, you'd want to store a Datum with the minimum and > maximum possible value based on the quals processed. If either the > minimum or maximum is still set to NULL, then it's unbounded at that > end. If you encounter partkey = Const, then minimum and maximum can be > set to the value of that Const. From there you can likely ignore any > other quals for that partition key, as if the query did contain > another qual with partkey = SomeOtherConst, then that would have > become a gating qual during the constant folding process. This way if > the user had written WHERE partkey >= 1 AND partkey <= 1 the > evaluation would end up the same as if they'd written WHERE partkey = > 1 as the minimum and maximum would be the same value in both cases, > and when those two values are the same then it would mean just one > theoretical binary search on a partition range to find the correct > partition instead of two. I have not looked at the code submitted here in detail yet but I do think we should try to avoid wasting cycles in the presumably-quite-common case where equality is being tested. The whole idea of thinking of this as minimum/maximum seems like it might be off precisely for that reason. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
В списке pgsql-hackers по дате отправления: