1CREATE TABLE `t1` ( 2`c1` int(11) NOT NULL, 3`c2` datetime DEFAULT NULL, 4PRIMARY KEY (`c1`) 5) ENGINE=InnoDB DEFAULT CHARSET=latin1; 6CREATE TABLE `t2` ( 7`c0` varchar(10) NOT NULL, 8`c1` int(11) NOT NULL, 9`c2` int(11) NOT NULL, 10PRIMARY KEY (`c0`,`c1`), 11KEY `c1` (`c1`), 12KEY `c2` (`c2`) 13) ENGINE=InnoDB DEFAULT CHARSET=latin1; 14CREATE TABLE `t3` ( 15`id` int(11) unsigned NOT NULL AUTO_INCREMENT, 16`c1` datetime NOT NULL, 17`c2` bigint(20) NOT NULL, 18`c3` int(4) unsigned NOT NULL, 19PRIMARY KEY (`id`), 20KEY `c2` (`c2`), 21KEY `c3` (`c3`) 22) ENGINE=InnoDB DEFAULT CHARSET=latin1; 23CREATE TABLE `t4` ( 24`c1` int(11) NOT NULL, 25`c2` bigint(20) DEFAULT NULL, 26`c3` int(11) NOT NULL 27) ENGINE=InnoDB DEFAULT CHARSET=latin1; 28CREATE ALGORITHM=UNDEFINED VIEW `v1` AS select `t4`.`c1` AS `c1`,`t4`.`c2` AS `c2`,`t4`.`c3` AS `c3` from `t4`; 29UPDATE t1 a JOIN t2 b ON a.c1 = b.c1 JOIN v1 vw ON b.c2 = vw.c1 JOIN t3 del ON vw.c2 = del.c2 SET a.c2 = ( SELECT max(t.c1) FROM t3 t, v1 i WHERE del.c2 = t.c2 AND vw.c3 = i.c3 AND t.c3 = 4 ) WHERE a.c2 IS NULL OR a.c2 < '2011-05-01'; 30drop view v1; 31drop table t1,t2,t3,t4; 32# 33# MDEV-14862: Server crashes in Bitmap<64u>::merge / add_key_field 34# 35CREATE TABLE t1 (a INT) ENGINE=InnoDB; 36CREATE VIEW v1 AS SELECT * FROM t1; 37CREATE TABLE t2 (b INT) ENGINE=InnoDB; 38DELETE FROM v1 WHERE a IN ( SELECT a FROM t2 ); 39DELETE FROM v1 WHERE (a,a) IN ( SELECT a,a FROM t2 ); 40drop view v1; 41drop table t1,t2; 42# 43# MDEV-10232 Scalar result of subquery changes after adding an outer select stmt 44# 45CREATE TABLE t1 ( 46a_id INT(20) UNSIGNED NOT NULL AUTO_INCREMENT, 47b_id INT(20) UNSIGNED NULL DEFAULT NULL, 48c_id VARCHAR(255) NULL DEFAULT NULL, 49PRIMARY KEY (a_id))COLLATE = 'utf8_general_ci' ENGINE = InnoDB; 50CREATE TABLE t2 ( 51b_id INT(20) UNSIGNED NOT NULL AUTO_INCREMENT, 52c_id VARCHAR(255) NULL DEFAULT NULL, 53PRIMARY KEY (b_id), 54INDEX idx_c_id (c_id))COLLATE = 'utf8_general_ci' ENGINE = InnoDB; 55INSERT INTO t1 (b_id, c_id) VALUES (NULL, NULL); 56INSERT INTO t2 (c_id) VALUES (NULL); 57INSERT INTO t2 (c_id) VALUES (NULL); 58SELECT * FROM t1; 59a_id b_id c_id 601 NULL NULL 61SELECT t2.b_id FROM t1,t2 WHERE t2.c_id = t1.c_id; 62b_id 63UPDATE t1 SET b_id = (SELECT t2.b_id FROM t2 t2 WHERE t2.c_id = t1.c_id); 64SELECT * FROM t1; 65a_id b_id c_id 661 NULL NULL 67drop table t1,t2; 68# 69# MDEV-18300: ASAN error in Field_blob::get_key_image upon UPDATE with subquery 70# 71set @save_optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity; 72set @save_use_stat_tables= @@use_stat_tables; 73set use_stat_tables=preferably; 74set optimizer_use_condition_selectivity=4; 75CREATE TABLE t1 (a INT, b CHAR(8)) ENGINE=InnoDB; 76insert into t1 values (1,'foo'),(2, 'abc'); 77CREATE TABLE t2 (c CHAR(8), d BLOB) ENGINE=InnoDB; 78insert into t2 values ('abc', 'foo'),('edf', 'food'); 79ANALYZE TABLE t1,t2; 80UPDATE t1 SET a = 1 WHERE b = ( SELECT c FROM t2 WHERE d = 'foo' ); 81SELECT * FROM t1; 82a b 831 foo 841 abc 85DROP TABLE t1, t2; 86create table t1 (a int not null, b int, c int) engine=InnoDB; 87create table t2 (d int, e int) engine=InnoDB; 88update t1, t2 set a=NULL, b=2, c=NULL where b=d and e=200; 89drop table t1,t2; 90set @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity; 91set @@use_stat_tables= @save_use_stat_tables; 92CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY) engine=innodb; 93CREATE TABLE t2 (a INT NOT NULL PRIMARY KEY) engine=innodb; 94INSERT INTO t1 VALUES (1); 95INSERT INTO t2 VALUES (2); 96BEGIN; 97SELECT * FROM t1 UNION 98SELECT * FROM t2 FOR UPDATE; 99a 1001 1012 102connect con2,localhost,root,,; 103BEGIN; 104SELECT * FROM t2 FOR UPDATE;; 105connection default; 106select * from t2; 107a 1082 109update t2 set a=a+100; 110commit; 111connection con2; 112a 113102 114commit; 115connection default; 116drop table t1,t2; 117CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY) engine=innodb; 118CREATE TABLE t2 (a INT NOT NULL PRIMARY KEY) engine=innodb; 119INSERT INTO t1 VALUES (1); 120INSERT INTO t2 VALUES (2); 121BEGIN; 122SELECT * FROM ( 123SELECT * FROM t1 UNION 124SELECT * FROM t2 FOR UPDATE 125) t; 126a 1271 1282 129connection con2; 130BEGIN; 131SELECT * FROM t2 FOR UPDATE;; 132connection default; 133select * from t2; 134a 1352 136update t2 set a=a+100; 137commit; 138connection con2; 139a 140102 141commit; 142connection default; 143disconnect con2; 144drop table t1,t2; 145# End of 10.4 tests 146