Commit 1c42c973 authored by svoj@may.pils.ru's avatar svoj@may.pils.ru

Merge may.pils.ru:/home/svoj/devel/mysql/BUG18036/mysql-5.0

into  may.pils.ru:/home/svoj/devel/mysql/BUG18036/mysql-5.1
parents 34d82f0b 2c28b3cb
...@@ -747,6 +747,14 @@ select count(id1) from t1 where id2 = 10; ...@@ -747,6 +747,14 @@ select count(id1) from t1 where id2 = 10;
count(id1) count(id1)
5 5
drop table t1; drop table t1;
CREATE TABLE t1(a CHAR(9), b VARCHAR(7)) ENGINE=MyISAM;
INSERT INTO t1(a) VALUES('xxxxxxxxx'),('xxxxxxxxx');
UPDATE t1 AS ta1,t1 AS ta2 SET ta1.b='aaaaaa',ta2.b='bbbbbb';
SELECT * FROM t1;
a b
xxxxxxxxx bbbbbb
xxxxxxxxx bbbbbb
DROP TABLE t1;
set storage_engine=MyISAM; set storage_engine=MyISAM;
drop table if exists t1,t2,t3; drop table if exists t1,t2,t3;
--- Testing varchar --- --- Testing varchar ---
......
...@@ -697,6 +697,15 @@ select count(*) from t1 where id2 = 10; ...@@ -697,6 +697,15 @@ select count(*) from t1 where id2 = 10;
select count(id1) from t1 where id2 = 10; select count(id1) from t1 where id2 = 10;
drop table t1; drop table t1;
#
# BUG#18036 - update of table joined to self reports table as crashed
#
CREATE TABLE t1(a CHAR(9), b VARCHAR(7)) ENGINE=MyISAM;
INSERT INTO t1(a) VALUES('xxxxxxxxx'),('xxxxxxxxx');
UPDATE t1 AS ta1,t1 AS ta2 SET ta1.b='aaaaaa',ta2.b='bbbbbb';
SELECT * FROM t1;
DROP TABLE t1;
# End of 4.1 tests # End of 4.1 tests
# #
...@@ -869,4 +878,3 @@ drop table t1; ...@@ -869,4 +878,3 @@ drop table t1;
create table t1 (a int not null, key key_block_size=1024 (a)); create table t1 (a int not null, key key_block_size=1024 (a));
--error 1064 --error 1064
create table t1 (a int not null, key `a` key_block_size=1024 (a)); create table t1 (a int not null, key `a` key_block_size=1024 (a));
...@@ -985,7 +985,12 @@ reopen_tables: ...@@ -985,7 +985,12 @@ reopen_tables:
} }
} }
} }
/*
Set exclude_from_table_unique_test value back to FALSE. It is needed for
further check in multi_update::prepare whether to use record cache.
*/
lex->select_lex.exclude_from_table_unique_test= FALSE;
if (thd->fill_derived_tables() && if (thd->fill_derived_tables() &&
mysql_handle_derived(lex, &mysql_derived_filling)) mysql_handle_derived(lex, &mysql_derived_filling))
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
...@@ -1164,7 +1169,7 @@ int multi_update::prepare(List<Item> &not_used_values, ...@@ -1164,7 +1169,7 @@ int multi_update::prepare(List<Item> &not_used_values,
for (table_ref= leaves; table_ref; table_ref= table_ref->next_leaf) for (table_ref= leaves; table_ref; table_ref= table_ref->next_leaf)
{ {
TABLE *table=table_ref->table; TABLE *table=table_ref->table;
if (!(tables_to_update & table->map) && if ((tables_to_update & table->map) &&
unique_table(thd, table_ref, update_tables)) unique_table(thd, table_ref, update_tables))
table->no_cache= 1; // Disable row cache table->no_cache= 1; // Disable row cache
} }
......
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