# # Some basic UPDATE statements # # Author: Susil, susil.behera@mariadb.com # -- source ../include/have_columnstore.inc # --disable_warnings DROP DATABASE IF EXISTS mcs30_db1; --enable_warnings CREATE DATABASE mcs30_db1; USE mcs30_db1; CREATE TABLE t1 ( c1 INT, c2 CHAR(10), c3 TEXT DEFAULT 'ccc' ) ENGINE=Columnstore; INSERT INTO t1 (c1, c2) VALUES (1, 'a'), (1, 'b'), (2, 'b'); UPDATE t1 SET c2 = 'b', c3 = 'bbb' WHERE c1 = 2; SELECT * FROM t1; INSERT INTO t1 VALUES (NULL, NULL, NULL); INSERT INTO t1 (c1, c2) VALUES (NULL, NULL); UPDATE t1 SET c1 = c1+1, c3 = 'bbb' WHERE c2 = 'b'; SELECT * FROM t1; UPDATE t1 SET c2 = 'd' WHERE c3 IN ('bbb', 'ccc'); SELECT * FROM t1; UPDATE t1 SET c2 = 'e', c3 = 'eee' WHERE c1 > 1 AND c3 = 'bbb'; SELECT * FROM t1; UPDATE t1 SET c2 = NULL WHERE c3 = 'ccc'; SELECT * FROM t1; #BUG #Looks like a bug as result deffers from innodb #UPDATE t1 SET c3 = NULL WHERE c1 IS NULL; #SELECT * FROM t1; DROP TABLE t1; # Test variables CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL) ENGINE=Columnstore; INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(3,1),(3,2),(3,3),(3,1),(3,2),(3,3),(2,1),(2,2),(2,3); SET @tmp=0; UPDATE t1 SET b=(@tmp:=@tmp+1); SELECT * FROM t1 ORDER BY a, b; # Update by select from another Columnstore table CREATE TABLE t2 (a INT NOT NULL, b INT NOT NULL) ENGINE=Columnstore; INSERT INTO t2 VALUES (1,1),(1,2),(1,3); UPDATE t1 SET b=(SELECT 5); SELECT * FROM t1 ORDER BY a, b; UPDATE t1 SET b=(SELECT b FROM t2 ORDER BY b LIMIT 1); SELECT * FROM t1 ORDER BY a, b; SELECT * FROM t2 ORDER BY a, b; #BUG # Update by select from another Innodb table #CREATE TABLE t3 (a INT NOT NULL, b INT NOT NULL) ENGINE=Innodb; #INSERT INTO t3 VALUES (1,1),(1,2),(1,3); #UPDATE t1 SET b=(SELECT b FROM t3 ORDER BY b LIMIT 1); # Clean up DROP DATABASE IF EXISTS mcs30_db1;