#### suite/funcs_1/t/myisam_views.test --disable_warnings DROP DATABASE IF EXISTS test1; --enable_warnings CREATE DATABASE test1; --disable_abort_on_error let $message= Testcase 3.3.1.31 - 3.3.1.37 New Implementation ; --source include/show_msg80.inc ############################################################################### # ML: The testcases 3.3.1.31 - 3.3.1.37 should be tested more systematic. # Ensure that a view can be based on a join of multiple # Testcase 3.3.1.31: tables within the same database # Testcase 3.3.1.32: tables from another database. # Testcase 3.3.1.33: views within the same database # Testcase 3.3.1.34: views from another database # Testcase 3.3.1.35: tables and/or views within the same database # Testcase 3.3.1.36: tables and/or views from another database # Testcase 3.3.1.37: tables and/or views, some of which reside in # the same database and some of which reside in # one other database. ############################################################################### USE test; --disable_warnings DROP DATABASE IF EXISTS test2; DROP TABLE IF EXISTS t0,t1; DROP VIEW IF EXISTS t3,t4; --enable_warnings CREATE DATABASE test2; --disable_warnings CREATE TABLE test1.t0 (f1 VARCHAR(20)); CREATE TABLE test1.t1 (f1 VARCHAR(20)); --enable_warnings CREATE TABLE test2.t0 (f1 VARCHAR(20)); CREATE TABLE test2.t1 (f1 VARCHAR(20)); --disable_warnings CREATE VIEW test1.t2 AS SELECT * FROM test1.t0; CREATE VIEW test1.t3 AS SELECT * FROM test2.t0; --enable_warnings CREATE VIEW test2.t2 AS SELECT * FROM test2.t0; CREATE VIEW test2.t3 AS SELECT * FROM test1.t0; INSERT INTO test1.t0 VALUES('test1.t0'); INSERT INTO test1.t1 VALUES('test1.t1'); INSERT INTO test2.t0 VALUES('test2.t0'); INSERT INTO test2.t1 VALUES('test2.t1'); # The extreme simple standard JOIN VIEW is: # CREATE OR REPLACE VIEW .v1 # AS SELECT * FROM ,
let $view= test.v1; let $tab1= test.t0; let $tab2= test.t1; # eval CREATE OR REPLACE VIEW $view AS SELECT * FROM $tab1, $tab2; # Produce at least all testcases via simple combinatorics, because it is better # to check some useless combinations than to forget an important one. let $view= test.v1; let $num_tab1= 3; while ($num_tab1) { let $num_tab2= 3; while ($num_tab2) { let $num_db1= 2; while ($num_db1) { let $num_db2= 2; while ($num_db2) { # Maybe somebody needs to check the generated values # --disable_query_log # eval SELECT '$num_db1.$num_tab1,$num_db2.$num_tab2'; # --enable_query_log eval CREATE OR REPLACE VIEW $view AS SELECT ta.f1 AS col1, tb.f1 AS col2 FROM test$num_db1.t$num_tab1 ta, test$num_db2.t$num_tab2 tb; eval SELECT * FROM $view; dec $num_db2; } dec $num_db1; } dec $num_tab2; } dec $num_tab1; } # Clean up --disable_warnings DROP VIEW IF EXISTS v1; DROP DATABASE IF EXISTS test1; DROP DATABASE IF EXISTS test2; DROP DATABASE IF EXISTS test3; --enable_warnings