mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
fix and test case for the bug #787: HANDLER without INDEX doesn't work with deleted rows
This commit is contained in:
@ -146,6 +146,25 @@ alter table t1 type=MyISAM;
|
||||
handler t2 read first;
|
||||
Unknown table 't2' in HANDLER
|
||||
drop table t1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2),(3),(4),(5),(6);
|
||||
delete from t1 limit 2;
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
a
|
||||
3
|
||||
handler t1 read first limit 1,1;
|
||||
a
|
||||
4
|
||||
handler t1 read first limit 2,2;
|
||||
a
|
||||
5
|
||||
6
|
||||
delete from t1 limit 3;
|
||||
handler t1 read first;
|
||||
a
|
||||
6
|
||||
drop table t1;
|
||||
create table t1(a int, index(a));
|
||||
insert into t1 values (1), (2), (3);
|
||||
handler t1 open;
|
||||
|
@ -80,6 +80,21 @@ alter table t1 type=MyISAM;
|
||||
handler t2 read first;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# test case for the bug #787
|
||||
#
|
||||
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2),(3),(4),(5),(6);
|
||||
delete from t1 limit 2;
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
handler t1 read first limit 1,1;
|
||||
handler t1 read first limit 2,2;
|
||||
delete from t1 limit 3;
|
||||
handler t1 read first;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
#test for #751
|
||||
#
|
||||
|
@ -219,6 +219,8 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (err == HA_ERR_RECORD_DELETED)
|
||||
continue;
|
||||
if (err)
|
||||
{
|
||||
if (err != HA_ERR_KEY_NOT_FOUND && err != HA_ERR_END_OF_FILE)
|
||||
@ -230,15 +232,9 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
|
||||
}
|
||||
goto ok;
|
||||
}
|
||||
if (cond)
|
||||
{
|
||||
err=err;
|
||||
if (!cond->val_int())
|
||||
if (cond && !cond->val_int())
|
||||
continue;
|
||||
}
|
||||
if (num_rows>=offset_limit)
|
||||
{
|
||||
if (!err)
|
||||
if (!err && num_rows >= offset_limit)
|
||||
{
|
||||
String *packet = &thd->packet;
|
||||
Item *item;
|
||||
@ -255,7 +251,6 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
|
||||
}
|
||||
my_net_write(&thd->net, (char*)packet->ptr(), packet->length());
|
||||
}
|
||||
}
|
||||
num_rows++;
|
||||
}
|
||||
ok:
|
||||
|
Reference in New Issue
Block a user