DROP DATABASE IF EXISTS mcs63_db; CREATE DATABASE mcs63_db; USE mcs63_db; CREATE USER IF NOT EXISTS'cejuser'@'localhost' IDENTIFIED BY 'Vagrant1|0000001'; GRANT ALL PRIVILEGES ON *.* TO 'cejuser'@'localhost'; FLUSH PRIVILEGES; CREATE TABLE t1 (t1_int INT, t1_char CHAR(5))ENGINE=Innodb; CREATE TABLE t2 (t2_int INT, t2_char CHAR(5))ENGINE=Columnstore; INSERT INTO t1 VALUES (NULL,''),(1,'aaa'),(2,'bbb'),(3,'ccc'),(4,'ddd'),(5,'eee'),(6,'fff'),(7,'gggg'); INSERT INTO t2 VALUES (NULL,''),(1,'hhh'),(3,'iii'),(5,'jjj'),(7,'llll'),(9,'kkkk'),(11,'mm'),(13,'n'); CREATE VIEW v0 AS SELECT * FROM t1, t2 WHERE t1.t1_int = t2.t2_int; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v0' AND TABLE_SCHEMA='mcs63_db'; VIEW_DEFINITION select `mcs63_db`.`t1`.`t1_int` AS `t1_int`,`mcs63_db`.`t1`.`t1_char` AS `t1_char`,`mcs63_db`.`t2`.`t2_int` AS `t2_int`,`mcs63_db`.`t2`.`t2_char` AS `t2_char` from `mcs63_db`.`t1` join `mcs63_db`.`t2` where `mcs63_db`.`t1`.`t1_int` = `mcs63_db`.`t2`.`t2_int` SELECT * FROM v0; t1_int t1_char t2_int t2_char 1 aaa 1 hhh 3 ccc 3 iii 5 eee 5 jjj 7 gggg 7 llll CREATE VIEW v1 AS SELECT t1.t1_int, t2.t2_int, t1.t1_char, t2.t2_char FROM t1, t2 WHERE t1.t1_int = t2.t2_int; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v1' AND TABLE_SCHEMA='mcs63_db'; VIEW_DEFINITION select `mcs63_db`.`t1`.`t1_int` AS `t1_int`,`mcs63_db`.`t2`.`t2_int` AS `t2_int`,`mcs63_db`.`t1`.`t1_char` AS `t1_char`,`mcs63_db`.`t2`.`t2_char` AS `t2_char` from `mcs63_db`.`t1` join `mcs63_db`.`t2` where `mcs63_db`.`t1`.`t1_int` = `mcs63_db`.`t2`.`t2_int` SELECT * FROM v1; t1_int t2_int t1_char t2_char 1 1 aaa hhh 3 3 ccc iii 5 5 eee jjj 7 7 gggg llll CREATE VIEW v2 AS SELECT * FROM t1 LEFT JOIN t2 ON t1.t1_int = t2.t2_int; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v2' AND TABLE_SCHEMA='mcs63_db'; VIEW_DEFINITION select `mcs63_db`.`t1`.`t1_int` AS `t1_int`,`mcs63_db`.`t1`.`t1_char` AS `t1_char`,`mcs63_db`.`t2`.`t2_int` AS `t2_int`,`mcs63_db`.`t2`.`t2_char` AS `t2_char` from (`mcs63_db`.`t1` left join `mcs63_db`.`t2` on(`mcs63_db`.`t1`.`t1_int` = `mcs63_db`.`t2`.`t2_int`)) SELECT * FROM v2; t1_int t1_char t2_int t2_char 1 aaa 1 hhh 3 ccc 3 iii 5 eee 5 jjj 7 gggg 7 llll NULL NULL NULL 2 bbb NULL NULL 4 ddd NULL NULL 6 fff NULL NULL CREATE VIEW v3 AS SELECT t1.t1_int, t2.t2_int FROM t1 LEFT JOIN t2 ON t1.t1_int = t2.t2_int; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v3' AND TABLE_SCHEMA='mcs63_db'; VIEW_DEFINITION select `mcs63_db`.`t1`.`t1_int` AS `t1_int`,`mcs63_db`.`t2`.`t2_int` AS `t2_int` from (`mcs63_db`.`t1` left join `mcs63_db`.`t2` on(`mcs63_db`.`t1`.`t1_int` = `mcs63_db`.`t2`.`t2_int`)) SELECT * FROM v3; t1_int t2_int 1 1 3 3 5 5 7 7 NULL NULL 2 NULL 4 NULL 6 NULL CREATE VIEW v4 AS SELECT * FROM t1 LEFT JOIN t2 ON t1.t1_int = t2.t2_int AND t1.t1_int=1; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v4' AND TABLE_SCHEMA='mcs63_db'; VIEW_DEFINITION select `mcs63_db`.`t1`.`t1_int` AS `t1_int`,`mcs63_db`.`t1`.`t1_char` AS `t1_char`,`mcs63_db`.`t2`.`t2_int` AS `t2_int`,`mcs63_db`.`t2`.`t2_char` AS `t2_char` from (`mcs63_db`.`t1` left join `mcs63_db`.`t2` on(`mcs63_db`.`t1`.`t1_int` = `mcs63_db`.`t2`.`t2_int` and `mcs63_db`.`t1`.`t1_int` = 1)) SELECT * FROM v4; t1_int t1_char t2_int t2_char 1 aaa 1 hhh NULL NULL NULL 2 bbb NULL NULL 3 ccc NULL NULL 4 ddd NULL NULL 5 eee NULL NULL 6 fff NULL NULL 7 gggg NULL NULL CREATE VIEW v5 AS SELECT * FROM t1 RIGHT JOIN t2 ON t1.t1_int = t2.t2_int; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v5' AND TABLE_SCHEMA='mcs63_db'; VIEW_DEFINITION select `mcs63_db`.`t1`.`t1_int` AS `t1_int`,`mcs63_db`.`t1`.`t1_char` AS `t1_char`,`mcs63_db`.`t2`.`t2_int` AS `t2_int`,`mcs63_db`.`t2`.`t2_char` AS `t2_char` from (`mcs63_db`.`t2` left join `mcs63_db`.`t1` on(`mcs63_db`.`t1`.`t1_int` = `mcs63_db`.`t2`.`t2_int`)) SELECT * FROM v5; t1_int t1_char t2_int t2_char NULL NULL NULL 1 aaa 1 hhh 3 ccc 3 iii 5 eee 5 jjj 7 gggg 7 llll NULL NULL 9 kkkk NULL NULL 11 mm NULL NULL 13 n CREATE VIEW v6 AS SELECT t1.t1_char, t2.t2_char FROM t1 RIGHT JOIN t2 ON t1.t1_int = t2.t2_int; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v6' AND TABLE_SCHEMA='mcs63_db'; VIEW_DEFINITION select `mcs63_db`.`t1`.`t1_char` AS `t1_char`,`mcs63_db`.`t2`.`t2_char` AS `t2_char` from (`mcs63_db`.`t2` left join `mcs63_db`.`t1` on(`mcs63_db`.`t1`.`t1_int` = `mcs63_db`.`t2`.`t2_int`)) SELECT * FROM v6; t1_char t2_char NULL aaa hhh ccc iii eee jjj gggg llll NULL kkkk NULL mm NULL n CREATE VIEW v7 AS SELECT * FROM t1 RIGHT JOIN t2 ON t1.t1_int = t2.t2_int AND t2.t2_int=5; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v7' AND TABLE_SCHEMA='mcs63_db'; VIEW_DEFINITION select `mcs63_db`.`t1`.`t1_int` AS `t1_int`,`mcs63_db`.`t1`.`t1_char` AS `t1_char`,`mcs63_db`.`t2`.`t2_int` AS `t2_int`,`mcs63_db`.`t2`.`t2_char` AS `t2_char` from (`mcs63_db`.`t2` left join `mcs63_db`.`t1` on(`mcs63_db`.`t1`.`t1_int` = `mcs63_db`.`t2`.`t2_int` and `mcs63_db`.`t2`.`t2_int` = 5)) SELECT * FROM v7; t1_int t1_char t2_int t2_char NULL NULL NULL NULL NULL 1 hhh NULL NULL 3 iii 5 eee 5 jjj NULL NULL 7 llll NULL NULL 9 kkkk NULL NULL 11 mm NULL NULL 13 n DROP VIEW v0, v1, v2, v3, v4, v5, v6, v7; DROP TABLE t1, t2; # # MCOL-4687 Insert from view regression # CREATE TABLE t1 (id INT, fname VARCHAR(20)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1,'Greg'); CREATE VIEW v1 as SELECT * FROM t1; SELECT * FROM v1; id fname 1 Greg CREATE TABLE t2 (id INT, fname VARCHAR(20)) ENGINE=Columnstore; INSERT INTO t2 SELECT * FROM (SELECT * FROM v1) t; SELECT * FROM t2; id fname 1 Greg INSERT INTO t2 SELECT * FROM v1; SELECT * FROM t2; id fname 1 Greg 1 Greg DROP TABLE t2; DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (id INT, fname VARCHAR(20)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1,'Greg'); INSERT INTO t1 VALUES (1,'Roman'); CREATE TABLE tt (id INT, fname VARCHAR(20)) ENGINE=Columnstore; CREATE VIEW v1 as SELECT id, MAX(fname) FROM t1 GROUP BY id; CREATE VIEW v2 as SELECT MIN(id), GROUP_CONCAT(fname) FROM t1; INSERT INTO tt SELECT * FROM v1; SELECT * FROM tt; id fname 1 Roman TRUNCATE TABLE tt; INSERT INTO tt SELECT * FROM v2; SELECT * FROM tt; id fname 1 Greg,Roman DROP VIEW v1,v2; DROP TABLE tt,t1; CREATE TABLE t1 (id INT, fname VARCHAR(20)) ENGINE=ColumnStore; INSERT INTO t1 VALUES (1,'Greg'); INSERT INTO t1 VALUES (1,'Roman'); CREATE TABLE tt (id INT, fname VARCHAR(20)) ENGINE=Columnstore; CREATE VIEW v1 as SELECT id, MAX(fname) FROM t1 GROUP BY id; CREATE VIEW v2 as SELECT MIN(id), GROUP_CONCAT(fname) FROM t1; INSERT INTO tt SELECT * FROM v1; SELECT * FROM tt; id fname 1 Roman TRUNCATE TABLE tt; INSERT INTO tt SELECT * FROM v2; SELECT * FROM tt; id fname 1 Greg,Roman DROP VIEW v1,v2; DROP TABLE tt,t1; CREATE TABLE t1 (id INT, fname VARCHAR(20)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1,'One'),(2,'Two'); CREATE TABLE t2 (id INT, fname VARCHAR(20)) ENGINE=ColumnStore; INSERT INTO t2 VALUES (1,'Uno'),(2,'Due'); CREATE VIEW v1 AS SELECT t1.id*100+t2.id,CONCAT(t1.fname,'-',t2.fname) FROM t1,t2 WHERE t1.id=t2.id; CREATE TABLE tt (id INT, fname VARCHAR(20)) ENGINE=ColumnStore; INSERT INTO tt SELECT * FROM v1; SELECT * FROM tt; id fname 101 One-Uno 202 Two-Due DROP VIEW v1; CREATE VIEW v1 AS SELECT * FROM t1; CREATE VIEW v2 AS SELECT * FROM t2; INSERT INTO tt SELECT v1.id*100+v1.id, CONCAT(v1.fname,'+',v2.fname) FROM v1,v2 WHERE v1.id=v2.id; SELECT * FROM tt; id fname 101 One-Uno 202 Two-Due 101 One+Uno 202 Two+Due DROP VIEW v1,v2; DROP TABLE tt,t2,t1; DROP USER 'cejuser'@'localhost'; DROP DATABASE mcs63_db;