1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-04-20 09:07:44 +03:00

67 lines
1.8 KiB
Plaintext

#
# 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<ID>
#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<ID>
# 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;