summaryrefslogtreecommitdiff
path: root/sql/opt_sum.cc
diff options
context:
space:
mode:
authormonty@donna.mysql.fi <>2001-03-06 15:24:08 +0200
committermonty@donna.mysql.fi <>2001-03-06 15:24:08 +0200
commitbda3e099358ddcad825c1231f2a0f14697abd59c (patch)
tree54c7bf220f9e21e9f04e2ff2e8a018cf4e33e837 /sql/opt_sum.cc
parent7b275cf2ec780057c004726d9d96fda8447b1287 (diff)
downloadmariadb-git-bda3e099358ddcad825c1231f2a0f14697abd59c.tar.gz
Merged some functions and removed some unused client functions.
Remember UNION for ALTER TABLE Added test for if we are supporting transactions. Don't allow REPLACE to replace a row when we have generated an auto_increment key Fixed bug when using BLOB keys Fixed bug in SET @variable=user.
Diffstat (limited to 'sql/opt_sum.cc')
-rw-r--r--sql/opt_sum.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc
index beac829bb74..d56bf68db62 100644
--- a/sql/opt_sum.cc
+++ b/sql/opt_sum.cc
@@ -331,16 +331,15 @@ static bool find_range_key(TABLE_REF *ref, Field* field, COND *cond)
part != part_end ;
part++)
{
- if (!part_of_cond(cond,part->field))
+ if (!part_of_cond(cond,part->field) ||
+ left_length < part->store_length)
break;
// Save found constant
if (part->null_bit)
*key_ptr++= (byte) test(part->field->is_null());
- if (left_length - part->length < 0)
- break; // Can't use this key
- part->field->get_image((char*) key_ptr,part->length);
- key_ptr+=part->length;
- left_length-=part->length;
+ part->field->get_key_image((char*) key_ptr,part->length);
+ key_ptr+=part->store_length - test(part->null_bit);
+ left_length-=part->store_length;
}
if (part == part_end && part->field == field)
{