polardbxengine/mysql-test/t/dd_view_columns_debug.test

54 lines
2.0 KiB
Plaintext

###############################################################################
# #
# Debug Test cases to verify storing view column information in DD.COLUMNS #
# table and update view column information and other values on DDL #
# operations. #
# #
###############################################################################
--source include/have_debug.inc
--source include/have_debug_sync.inc
--source include/count_sessions.inc
--enable_connect_log
--echo #
--echo # Bug#26322203 - SHOW FIELDS FROM A VALID VIEW FAILS WITH AN INVALID VIEW ERROR
--echo #
CREATE TABLE t1 (f1 int);
CREATE VIEW v1 AS SELECT * FROM t1;
--echo # Wait after listing view "v1" referencing table "t1" for state update.
SET DEBUG_SYNC="after_preparing_view_tables_list SIGNAL alter_view WAIT_FOR go";
--send DROP TABLE t1;
connect (con1, localhost, root,,);
SET DEBUG_SYNC='now WAIT_FOR alter_view';
--echo # Before state of the view v1 is updated ALTER view so that v1 is no more
--echo # dependent on the table t1 being dropped.
ALTER VIEW v1 AS select 13;
SET DEBUG_SYNC='now SIGNAL go';
connection default;
--echo # Without fix even if v1 is not dependent table/view or stored function
--echo # being dropped because of concurrent DDL operation on the view v1, state
--echo # of the view is updated as invalid.
--echo #
--echo # With fix, while updating view state if view is no more dependent on
--echo # the object being dropped then view state is *not* updated.
--reap
FLUSH TABLES;
--echo # Without fix, SHOW FIELDS from valid view "v1" reports invalid view error.
SHOW FIELDS FROM v1;
connection default;
SET DEBUG_SYNC='RESET';
DROP VIEW v1;
disconnect con1;
--disable_connect_log
--source include/wait_until_count_sessions.inc
###########################################################################