On 21 February 2018 at 14:53, Amit Langote
<Langote_Amit_f8@lab.ntt.co.jp> wrote:
> On 2018/02/21 10:19, David Rowley wrote:
>> v30-0004-Faster-partition-pruning.patch contains:
>>
>> +create table coll_pruning_multi (a text) partition by range
>> (substr(a, 1) collate "en_GB", substr(a, 1) collate "en_US");
>>
>> This'll likely work okay on Linux. Other collate tests seem to use
>> COLLATE "POSIX or "C" so that work cross-platform.
>
> Thanks. I completely forgot about that. I've rewritten those tests to
> use "POSIX" and "C" in the attached.
Thanks for fixing. I made a pass over v31 and only see a few small things:
1. In get_partitions_for_keys() why is the
get_partitions_excluded_by_ne_datums call not part of
get_partitions_for_keys_list?
2. Still a stray "minoff += 1;" in get_partitions_for_keys_range
3. You're also preferring to minoff--/++, but maxoff -= 1/maxoff += 1;
would be nice to see the style unified here.
4. "other other"
* that is, each of its fields other other than clauseinfo must be valid before
5. "a IS NULL" -> "an IS NULL":
* Based on a IS NULL or IS NOT NULL clause that was matched to a partition
6. Can you add a warning in the header comment for
extract_partition_clauses() to explain "Note: the 'clauses' List may
be modified inside this function. Callers may like to make a copy of
important lists before passing them to this function.", or something
like that...
7. "null" -> "nulls"
* Only allow strict operators. This will guarantee null are
8. "dicard" -> "discard"
* contains a <= 2, then because 3 <= 2 is false, we dicard a < 3 as
--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services