Commit b7179123 authored by unknown's avatar unknown

handler+alter table


mysql-test/r/handler.result:
  alter table test
mysql-test/t/handler.test:
  alter table test
sql/sql_handler.cc:
  bugfix
parent f8de8fa2
...@@ -129,6 +129,7 @@ a b ...@@ -129,6 +129,7 @@ a b
handler t2 read next; handler t2 read next;
a b a b
18 eee 18 eee
alter table t1 type=MyISAM;
handler t2 read next; handler t2 read next;
a b a b
19 fff 19 fff
......
...@@ -58,8 +58,10 @@ handler t2 read a=(19) where b="yyy"; ...@@ -58,8 +58,10 @@ handler t2 read a=(19) where b="yyy";
handler t2 read first; handler t2 read first;
handler t2 read next; handler t2 read next;
alter table t1 type=MyISAM;
handler t2 read next; handler t2 read next;
!$1064 handler t2 read last; !$1064 handler t2 read last;
handler t2 close; handler t2 close;
drop table if exists t1; drop table if exists t1;
...@@ -130,7 +130,11 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables, ...@@ -130,7 +130,11 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
select_limit+=offset_limit; select_limit+=offset_limit;
send_fields(thd,list,1); send_fields(thd,list,1);
HANDLER_TABLES_HACK(thd);
MYSQL_LOCK *lock=mysql_lock_tables(thd,&tables->table,1); MYSQL_LOCK *lock=mysql_lock_tables(thd,&tables->table,1);
HANDLER_TABLES_HACK(thd);
if (!lock)
goto err0; // mysql_lock_tables() printed error message already
for (uint num_rows=0; num_rows < select_limit; ) for (uint num_rows=0; num_rows < select_limit; )
{ {
...@@ -238,6 +242,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables, ...@@ -238,6 +242,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
return 0; return 0;
err: err:
mysql_unlock_tables(thd,lock); mysql_unlock_tables(thd,lock);
err0:
return -1; return -1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment