Description:
In the following output from a test that I am creating (never mind that it is a rbr test) SELECT * FROM test.t3 should == + SELECT * FROM test.v1 but it does not.
But if you look at SELECT * FROM test.v2 compared to SELECT * FROM test.t5 they do match.
CREATE TABLE test.t1 (a INT, c CHAR(6),PRIMARY KEY(a));
+ CREATE TABLE test.t2 (a INT, c CHAR(6),PRIMARY KEY(a));
+ CREATE TABLE test.t3 (a INT, c CHAR(6), c2 CHAR(6), PRIMARY KEY(a));
+ CREATE TABLE test.t4 (a INT, qty INT, price INT,PRIMARY KEY(a));
+ CREATE TABLE test.t5 (qty INT, price INT, total INT, PRIMARY KEY(qty));
+ INSERT INTO test.t1 VALUES (1,'Thank'),(2,'it'),(3,'Friday');
+ INSERT INTO test.t2 VALUES (1,'GOD'),(2,'is'),(3,'TGIF');
+ INSERT INTO test.t4 VALUES(1, 3, 50),(2, 18, 3),(4, 4, 4);
+ CREATE VIEW test.v2 AS SELECT qty, price, qty*price AS value FROM test.t4;
+ CREATE VIEW test.v1 AS SELECT t1.a, t1.c, t2.c as c2 FROM test.t1 as t1, test.t2 AS t2 WHERE test.t1.a = test.t2.a;
+ SELECT * FROM test.v2;
Master output
+ qty price value
+ 3 50 150
+ 18 3 54
+ 4 4 16
+ SELECT * FROM test.v1;
+ a c c2
+ 1 Thank GOD
+ 2 it is
+ 3 Friday TGIF
Slave output
+ SELECT * FROM test.v2;
+ qty price value
+ 3 50 150
+ 18 3 54
+ 4 4 16
+ SELECT * FROM test.v1;
+ a c c2
+ 1 Thank GOD
+ 2 it is
+ 3 Friday TGIF
+ INSERT INTO test.t5 SELECT * FROM test.v2;
+ INSERT INTO test.t3 SELECT * FROM test.v1;
Master output
+ SELECT * FROM test.t5;
+ qty price total
+ 3 50 150
+ 18 3 54
+ 4 4 16
+ SELECT * FROM test.t3;
+ a c c2
+ 1 Friday TGIF
+ 2 Friday TGIF
+ 3 Friday TGIF
Slave output
+ SELECT * FROM test.t5;
+ qty price total
+ 3 50 150
+ 18 3 54
+ 4 4 16
+ SELECT * FROM test.t3;
+ a c c2
+ 1 Friday TGIF
+ 2 Friday TGIF
+ 3 Friday TGIF
+ DROP VIEW IF EXISTS test.v1;
+ DROP VIEW IF EXISTS test.v2;
+ DROP VIEW IF EXISTS test.v3;
+ DROP VIEW IF EXISTS test.v4;
+ DROP TABLE IF EXISTS test.t3;
+ DROP TABLE IF EXISTS test.t1;
+ DROP TABLE IF EXISTS test.t2;
+ DROP TABLE IF EXISTS test.t4;
How to repeat:
see above