summaryrefslogtreecommitdiff
path: root/sql/sql_partition.cc
diff options
context:
space:
mode:
authorunknown <gshchepa/uchum@gleb.loc>2007-07-05 03:37:41 +0500
committerunknown <gshchepa/uchum@gleb.loc>2007-07-05 03:37:41 +0500
commit95c5287664a0538af5b49b2c58f027028779ef03 (patch)
tree6aba922cfa41f2f0966e02b94e451c81c978fa3c /sql/sql_partition.cc
parent48782e344c4410ad05ac0a2244aff7c943aa3c39 (diff)
parent285acf57ea2f08cdec214c4530e51394e8fe6b34 (diff)
downloadmariadb-git-95c5287664a0538af5b49b2c58f027028779ef03.tar.gz
Merge gleb.loc:/home/uchum/work/bk/5.1
into gleb.loc:/home/uchum/work/bk/5.1-opt sql/item.h: Auto merged sql/sql_class.h: Auto merged sql/sql_partition.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r--sql/sql_partition.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc
index f3253e5b086..cba1394a15f 100644
--- a/sql/sql_partition.cc
+++ b/sql/sql_partition.cc
@@ -2869,6 +2869,8 @@ uint32 get_partition_id_range_for_endpoint(partition_info *part_info,
}
if (unsigned_flag)
part_func_value-= 0x8000000000000000ULL;
+ if (left_endpoint && !include_endpoint)
+ part_func_value++;
while (max_part_id > min_part_id)
{
loc_part_id= (max_part_id + min_part_id + 1) >> 1;
@@ -3294,7 +3296,9 @@ static uint32 get_sub_part_id_from_key(const TABLE *table,uchar *buf,
key_restore(buf, (uchar*)key_spec->key, key_info, key_spec->length);
if (likely(rec0 == buf))
+ {
part_id= part_info->get_subpartition_id(part_info);
+ }
else
{
Field **part_field_array= part_info->subpart_field_array;
@@ -3337,8 +3341,10 @@ bool get_part_id_from_key(const TABLE *table, uchar *buf, KEY *key_info,
key_restore(buf, (uchar*)key_spec->key, key_info, key_spec->length);
if (likely(rec0 == buf))
+ {
result= part_info->get_part_partition_id(part_info, part_id,
&func_value);
+ }
else
{
Field **part_field_array= part_info->part_field_array;
@@ -3384,8 +3390,10 @@ void get_full_part_id_from_key(const TABLE *table, uchar *buf,
key_restore(buf, (uchar*)key_spec->key, key_info, key_spec->length);
if (likely(rec0 == buf))
+ {
result= part_info->get_partition_id(part_info, &part_spec->start_part,
&func_value);
+ }
else
{
Field **part_field_array= part_info->full_part_field_array;