diff options
author | sergefp@mysql.com <> | 2006-04-06 21:23:33 +0400 |
---|---|---|
committer | sergefp@mysql.com <> | 2006-04-06 21:23:33 +0400 |
commit | 68bd945ca38046426346f1b22b6e7184c00609b9 (patch) | |
tree | bc2b49b52da1f1748cc430504820ba5c2dde4843 /sql/partition_info.h | |
parent | 679dbc7627f156c6444222c1d9e2a8f6817cfbdc (diff) | |
download | mariadb-git-68bd945ca38046426346f1b22b6e7184c00609b9.tar.gz |
BUG#18558 "Partition pruning results are incorrect for certain class of WHERE clauses" :
* Produce right results for conditions that were transformed to "(partitioning_range) AND
(list_of_subpartitioning_ranges)": make each partition id set iterator auto-reset itself
after it has returned all partition ids in the sequence
* Fix "Range mapping" and "Range mapping" partitioning interval analysis functions to
correctly deal with NULL values.
Diffstat (limited to 'sql/partition_info.h')
-rw-r--r-- | sql/partition_info.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/partition_info.h b/sql/partition_info.h index 08669f8001e..664c8834b0b 100644 --- a/sql/partition_info.h +++ b/sql/partition_info.h @@ -267,7 +267,7 @@ uint32 get_next_partition_id_range(struct st_partition_iter* part_iter); static inline void init_single_partition_iterator(uint32 part_id, PARTITION_ITERATOR *part_iter) { - part_iter->part_nums.start= part_id; + part_iter->part_nums.start= part_iter->part_nums.cur= part_id; part_iter->part_nums.end= part_id+1; part_iter->get_next= get_next_partition_id_range; } @@ -277,7 +277,7 @@ static inline void init_all_partitions_iterator(partition_info *part_info, PARTITION_ITERATOR *part_iter) { - part_iter->part_nums.start= 0; + part_iter->part_nums.start= part_iter->part_nums.cur= 0; part_iter->part_nums.end= part_info->no_parts; part_iter->get_next= get_next_partition_id_range; } |