MDEV-4813 Replication fails on updating a MEMORY table with an index using btree
skip NULL VARCHAR key parts like it's done elsewhere
This commit is contained in:
parent
d2e808025a
commit
e5bc21af37
6
mysql-test/suite/heap/btree_varchar_null.result
Normal file
6
mysql-test/suite/heap/btree_varchar_null.result
Normal file
@ -0,0 +1,6 @@
|
||||
create table t1 (f1 varchar(128), f2 varchar(128), key (f2,f1) using btree) engine=memory;
|
||||
insert into t1 values (null,'not'),('one',null),('two',null),('three','');
|
||||
select * from t1 where f1 = 'one' and f2 is null;
|
||||
f1 f2
|
||||
one NULL
|
||||
drop table t1;
|
7
mysql-test/suite/heap/btree_varchar_null.test
Normal file
7
mysql-test/suite/heap/btree_varchar_null.test
Normal file
@ -0,0 +1,7 @@
|
||||
#
|
||||
# MDEV-4813 Replication fails on updating a MEMORY table with an index using btree
|
||||
#
|
||||
create table t1 (f1 varchar(128), f2 varchar(128), key (f2,f1) using btree) engine=memory;
|
||||
insert into t1 values (null,'not'),('one',null),('two',null),('three','');
|
||||
select * from t1 where f1 = 'one' and f2 is null;
|
||||
drop table t1;
|
@ -876,8 +876,13 @@ uint hp_rb_pack_key(HP_KEYDEF *keydef, uchar *key, const uchar *old,
|
||||
if (seg->null_bit)
|
||||
{
|
||||
if (!(*key++= (char) 1 - *old++))
|
||||
{
|
||||
/* Add key pack length (2) to key for VARCHAR segments */
|
||||
if (seg->type == HA_KEYTYPE_VARTEXT1)
|
||||
old+= 2;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (seg->flag & HA_SWAP_KEY)
|
||||
{
|
||||
uint length= seg->length;
|
||||
|
Loading…
x
Reference in New Issue
Block a user