create database test1; create database test2; create database test3; USE test1; CREATE TABLE t1 (f1 BIGINT, f2 CHAR(50)) ENGINE = myisam ; INSERT INTO t1 VALUES (NULL, 'numeric column is NULL'); INSERT INTO t1 VALUES (0, NULL); INSERT INTO t1 VALUES (5, 'five'); INSERT INTO t1 VALUES (1, 'one'); INSERT INTO t1 VALUES (2, 'two'); USE test2; CREATE TABLE t1 (f1 DECIMAL(64,30), f2 VARCHAR(50)) ENGINE = myisam; INSERT INTO t1 VALUES (NULL, 'numeric column is NULL'); INSERT INTO t1 VALUES (0.000000000000000000000000000000, NULL); INSERT INTO t1 VALUES (5.000000000000000000000000000000, 'five'); INSERT INTO t1 VALUES (+1.000000000000000000000000000000, 'one'); INSERT INTO t1 VALUES (3.000000000000000, 'three'); USE test3; CREATE TABLE t1 (f1 DOUBLE, f2 VARBINARY(50)) ENGINE = myisam; INSERT INTO t1 VALUES (NULL, 'numeric column is NULL'); INSERT INTO t1 VALUES (+0.0E-35, NULL); INSERT INTO t1 VALUES (+0.5E+1, 'five'); INSERT INTO t1 VALUES (20.0E-1, 'two'); INSERT INTO t1 VALUES (0.0300E2, 'three'); USE test; CREATE OR REPLACE VIEW test1.v0 AS SELECT * FROM test2.t1; CREATE OR REPLACE VIEW test1.v1 AS SELECT f1, f2 FROM test2.t1 tab1 NATURAL JOIN test1.v0 tab2; CREATE OR REPLACE VIEW test1.v2 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v1 tab2; CREATE OR REPLACE VIEW test1.v3 AS SELECT f1, f2 FROM test1.t1 tab1 NATURAL JOIN test1.v2 tab2; CREATE OR REPLACE VIEW test1.v4 AS SELECT f1, f2 FROM test2.t1 tab1 NATURAL JOIN test1.v3 tab2; CREATE OR REPLACE VIEW test1.v5 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v4 tab2; CREATE OR REPLACE VIEW test1.v6 AS SELECT f1, f2 FROM test1.t1 tab1 NATURAL JOIN test1.v5 tab2; CREATE OR REPLACE VIEW test1.v7 AS SELECT f1, f2 FROM test2.t1 tab1 NATURAL JOIN test1.v6 tab2; CREATE OR REPLACE VIEW test1.v8 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v7 tab2; CREATE OR REPLACE VIEW test1.v9 AS SELECT f1, f2 FROM test1.t1 tab1 NATURAL JOIN test1.v8 tab2; CREATE OR REPLACE VIEW test1.v10 AS SELECT f1, f2 FROM test2.t1 tab1 NATURAL JOIN test1.v9 tab2; CREATE OR REPLACE VIEW test1.v11 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v10 tab2; CREATE OR REPLACE VIEW test1.v12 AS SELECT f1, f2 FROM test1.t1 tab1 NATURAL JOIN test1.v11 tab2; CREATE OR REPLACE VIEW test1.v13 AS SELECT f1, f2 FROM test2.t1 tab1 NATURAL JOIN test1.v12 tab2; CREATE OR REPLACE VIEW test1.v14 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v13 tab2; CREATE OR REPLACE VIEW test1.v15 AS SELECT f1, f2 FROM test1.t1 tab1 NATURAL JOIN test1.v14 tab2; CREATE OR REPLACE VIEW test1.v16 AS SELECT f1, f2 FROM test2.t1 tab1 NATURAL JOIN test1.v15 tab2; CREATE OR REPLACE VIEW test1.v17 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v16 tab2; CREATE OR REPLACE VIEW test1.v18 AS SELECT f1, f2 FROM test1.t1 tab1 NATURAL JOIN test1.v17 tab2; CREATE OR REPLACE VIEW test1.v19 AS SELECT f1, f2 FROM test2.t1 tab1 NATURAL JOIN test1.v18 tab2; CREATE OR REPLACE VIEW test1.v20 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v19 tab2; SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM test1.v20; EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM test1.v20; DROP DATABASE test2; DROP DATABASE test3; DROP DATABASE test1;