summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2005-10-28 23:31:32 +0400
committerunknown <sergefp@mysql.com>2005-10-28 23:31:32 +0400
commit81882f7127b9d52cd46c92006e1a2231a70c8849 (patch)
tree9303ffec88f27b8195b9e023a8cb898af6e3ee1b /myisam
parent5e8515d9f2ccada3e19b109196fb5654e7c9db92 (diff)
downloadmariadb-git-81882f7127b9d52cd46c92006e1a2231a70c8849.tar.gz
Fix for BUG#13814: in mi_pack_key(), when processing NULL value for TINYBLOB key segment,
do advance the source pointer over 2 bytes that specify value length. myisam/mi_key.c: Fix for BUG#13814: in mi_pack_key(), when processing NULL value for TINYBLOB key segment, do advance the source pointer over 2 bytes that specify value length (for NULL value the format is: null_marker 0x01, value length 0x00 0x00, data: 0x00 keyseg->length times). We need to advance over 2 bytes separately as keyseg->length doesn't include them. mysql-test/r/myisam.result: Testcase for BUG#13814 mysql-test/t/myisam.test: Testcase for BUG#13814
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_key.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/myisam/mi_key.c b/myisam/mi_key.c
index 9df22889b22..f4b92f969db 100644
--- a/myisam/mi_key.c
+++ b/myisam/mi_key.c
@@ -217,7 +217,10 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old,
{
k_length-=length;
if (keyseg->flag & (HA_VAR_LENGTH | HA_BLOB_PART))
+ {
+ old+= 2;
k_length-=2; /* Skip length */
+ }
continue; /* Found NULL */
}
}