summaryrefslogtreecommitdiff
path: root/mysql-test
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 /mysql-test
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 'mysql-test')
-rw-r--r--mysql-test/r/myisam.result18
-rw-r--r--mysql-test/t/myisam.test18
2 files changed, 36 insertions, 0 deletions
diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result
index 17dba82dc00..55504e8e75b 100644
--- a/mysql-test/r/myisam.result
+++ b/mysql-test/r/myisam.result
@@ -702,3 +702,21 @@ t1 1 a 2 b A 0 NULL NULL YES BTREE
t1 1 a 3 c A 0 NULL NULL YES BTREE
t1 1 a 4 d A 0 NULL NULL YES BTREE
set myisam_stats_method=DEFAULT;
+drop table t1;
+create table t1(
+cip INT NOT NULL,
+time TIME NOT NULL,
+score INT NOT NULL DEFAULT 0,
+bob TINYBLOB
+);
+insert into t1 (cip, time) VALUES (1, '00:01'), (2, '00:02'), (3,'00:03');
+insert into t1 (cip, bob, time) VALUES (4, 'a', '00:04'), (5, 'b', '00:05'),
+(6, 'c', '00:06');
+select * from t1 where bob is null and cip=1;
+cip time score bob
+1 00:01:00 0 NULL
+create index bug on t1 (bob(22), cip, time);
+select * from t1 where bob is null and cip=1;
+cip time score bob
+1 00:01:00 0 NULL
+drop table t1;
diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test
index fbde658660d..8e9862015bc 100644
--- a/mysql-test/t/myisam.test
+++ b/mysql-test/t/myisam.test
@@ -656,4 +656,22 @@ analyze table t1;
show index from t1;
set myisam_stats_method=DEFAULT;
+drop table t1;
+
+# BUG#13814 - key value packed incorrectly for TINYBLOBs
+
+create table t1(
+ cip INT NOT NULL,
+ time TIME NOT NULL,
+ score INT NOT NULL DEFAULT 0,
+ bob TINYBLOB
+);
+
+insert into t1 (cip, time) VALUES (1, '00:01'), (2, '00:02'), (3,'00:03');
+insert into t1 (cip, bob, time) VALUES (4, 'a', '00:04'), (5, 'b', '00:05'),
+ (6, 'c', '00:06');
+select * from t1 where bob is null and cip=1;
+create index bug on t1 (bob(22), cip, time);
+select * from t1 where bob is null and cip=1;
+drop table t1;
# End of 4.1 tests