Loading mysql-test/r/update.result +15 −0 Original line number Diff line number Diff line Loading @@ -358,6 +358,21 @@ update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1; affected rows: 3 info: Rows matched: 3 Changed: 3 Warnings: 0 drop table t1,t2; create table t1 (a int); insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t2 (a int, filler1 char(200), filler2 char(200), key(a)); insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B; flush status; update t2 set a=3 where a=2; show status like 'handler_read%'; Variable_name Value Handler_read_first 0 Handler_read_key 1 Handler_read_next 1 Handler_read_prev 0 Handler_read_rnd 1 Handler_read_rnd_next 0 drop table t1, t2; create table t1(f1 int, `*f2` int); insert into t1 values (1,1); update t1 set `*f2`=1; Loading mysql-test/t/update.test +11 −0 Original line number Diff line number Diff line Loading @@ -288,6 +288,17 @@ update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1; --disable_info drop table t1,t2; # BUG#15935 create table t1 (a int); insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t2 (a int, filler1 char(200), filler2 char(200), key(a)); insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B; flush status; update t2 set a=3 where a=2; show status like 'handler_read%'; drop table t1, t2; # # Bug #16510 Updating field named like '*name' caused server crash # Loading sql/sql_update.cc +1 −2 Original line number Diff line number Diff line Loading @@ -212,7 +212,6 @@ int mysql_update(THD *thd, SORT_FIELD *sortorder; ha_rows examined_rows; used_index= MAX_KEY; // For call to init_read_record() table->sort.io_cache = (IO_CACHE *) my_malloc(sizeof(IO_CACHE), MYF(MY_FAE | MY_ZEROFILL)); if (!(sortorder=make_unireg_sortorder(order, &length)) || Loading Loading @@ -244,7 +243,7 @@ int mysql_update(THD *thd, DISK_BUFFER_SIZE, MYF(MY_WME))) goto err; if (used_index == MAX_KEY) if (used_index == MAX_KEY || (select && select->quick)) init_read_record(&info,thd,table,select,0,1); else init_read_record_idx(&info, thd, table, 1, used_index); Loading Loading
mysql-test/r/update.result +15 −0 Original line number Diff line number Diff line Loading @@ -358,6 +358,21 @@ update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1; affected rows: 3 info: Rows matched: 3 Changed: 3 Warnings: 0 drop table t1,t2; create table t1 (a int); insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t2 (a int, filler1 char(200), filler2 char(200), key(a)); insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B; flush status; update t2 set a=3 where a=2; show status like 'handler_read%'; Variable_name Value Handler_read_first 0 Handler_read_key 1 Handler_read_next 1 Handler_read_prev 0 Handler_read_rnd 1 Handler_read_rnd_next 0 drop table t1, t2; create table t1(f1 int, `*f2` int); insert into t1 values (1,1); update t1 set `*f2`=1; Loading
mysql-test/t/update.test +11 −0 Original line number Diff line number Diff line Loading @@ -288,6 +288,17 @@ update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1; --disable_info drop table t1,t2; # BUG#15935 create table t1 (a int); insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t2 (a int, filler1 char(200), filler2 char(200), key(a)); insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B; flush status; update t2 set a=3 where a=2; show status like 'handler_read%'; drop table t1, t2; # # Bug #16510 Updating field named like '*name' caused server crash # Loading
sql/sql_update.cc +1 −2 Original line number Diff line number Diff line Loading @@ -212,7 +212,6 @@ int mysql_update(THD *thd, SORT_FIELD *sortorder; ha_rows examined_rows; used_index= MAX_KEY; // For call to init_read_record() table->sort.io_cache = (IO_CACHE *) my_malloc(sizeof(IO_CACHE), MYF(MY_FAE | MY_ZEROFILL)); if (!(sortorder=make_unireg_sortorder(order, &length)) || Loading Loading @@ -244,7 +243,7 @@ int mysql_update(THD *thd, DISK_BUFFER_SIZE, MYF(MY_WME))) goto err; if (used_index == MAX_KEY) if (used_index == MAX_KEY || (select && select->quick)) init_read_record(&info,thd,table,select,0,1); else init_read_record_idx(&info, thd, table, 1, used_index); Loading