summaryrefslogtreecommitdiff
path: root/sql/sql_partition.cc
diff options
context:
space:
mode:
authormikael/pappa@dator5.(none) <>2006-08-05 16:12:24 -0400
committermikael/pappa@dator5.(none) <>2006-08-05 16:12:24 -0400
commitdb2c48b08d6487df21fe38cd75bcb9426315fb2b (patch)
treea59f5d5184093db3bb05644321a5bdb8a6ea43d1 /sql/sql_partition.cc
parenta4eb61b88cbe4e8f6e43db2ca841fa60ec73467c (diff)
downloadmariadb-git-db2c48b08d6487df21fe38cd75bcb9426315fb2b.tar.gz
BUG#21339: Crash at EXPLAIN PARTITIONS
Caused by missing check for end of partitions in prune range check
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r--sql/sql_partition.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc
index 73091c0994e..e214b41400a 100644
--- a/sql/sql_partition.cc
+++ b/sql/sql_partition.cc
@@ -2573,10 +2573,13 @@ uint32 get_partition_id_range_for_endpoint(partition_info *part_info,
}
else
{
- if (part_func_value == range_array[loc_part_id])
- loc_part_id += test(include_endpoint);
- else if (part_func_value > range_array[loc_part_id])
- loc_part_id++;
+ if (loc_part_id < max_partition)
+ {
+ if (part_func_value == range_array[loc_part_id])
+ loc_part_id += test(include_endpoint);
+ else if (part_func_value > range_array[loc_part_id])
+ loc_part_id++;
+ }
loc_part_id++;
}
DBUG_RETURN(loc_part_id);