summaryrefslogtreecommitdiff
path: root/mysql-test/t/sp_sync.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/sp_sync.test')
-rw-r--r--mysql-test/t/sp_sync.test170
1 files changed, 0 insertions, 170 deletions
diff --git a/mysql-test/t/sp_sync.test b/mysql-test/t/sp_sync.test
deleted file mode 100644
index a5682fc572f..00000000000
--- a/mysql-test/t/sp_sync.test
+++ /dev/null
@@ -1,170 +0,0 @@
-# This test should work in embedded server after mysqltest is fixed
--- source include/not_embedded.inc
-
---echo Tests of synchronization of stored procedure execution.
-
---source include/have_debug_sync.inc
-
-# Save the initial number of concurrent sessions.
---source include/count_sessions.inc
-
-# Clean up resources used in this test case.
---disable_warnings
-SET DEBUG_SYNC= 'RESET';
---enable_warnings
-
---echo #
---echo # Bug #30977 Concurrent statement using stored function and
---echo # DROP FUNCTION breaks SBR
---echo #
---echo # A stored routine could change after dispatch_command()
---echo # but before a MDL lock is taken. This must be noticed and the
---echo # sp cache flushed so the correct version can be loaded.
---echo #
-
-connect (con2, localhost, root);
-
-connection default;
-CREATE FUNCTION f1() RETURNS INT RETURN 1;
---echo # Get f1 cached
-SELECT f1();
---echo # Then start executing it again...
-SET DEBUG_SYNC= 'before_execute_sql_command SIGNAL before WAIT_FOR changed';
---echo # Sending:
---send SELECT f1()
-
-connection con2;
-SET DEBUG_SYNC= 'now WAIT_FOR before';
---echo # ... but before f1 is locked, change it.
-DROP FUNCTION f1;
-CREATE FUNCTION f1() RETURNS INT RETURN 2;
-SET DEBUG_SYNC= 'now SIGNAL changed';
-
---echo # We should now get '2' and not '1'.
-connection default;
---echo # Reaping: SELECT f1()
---reap
-
-disconnect con2;
-DROP FUNCTION f1;
-SET DEBUG_SYNC= 'RESET';
-
---echo #
---echo # Field translation items must be cleared in case of back-offs
---echo # for queries that use Information Schema tables. Otherwise
---echo # memory allocated in fix_fields() for views may end up referring
---echo # to freed memory.
---echo #
-
---disable_warnings
-DROP FUNCTION IF EXISTS f1;
---enable_warnings
-
-connect (con2, localhost, root);
-connect (con3, localhost, root);
-
-connection default;
-CREATE FUNCTION f1() RETURNS INT RETURN 0;
-
-connection con2;
-SET DEBUG_SYNC= 'after_wait_locked_pname SIGNAL locked WAIT_FOR issued';
---echo # con2 will now have an x-lock on f1
---echo # Sending:
---send ALTER FUNCTION f1 COMMENT 'comment'
-
-connection default;
-SET DEBUG_SYNC= 'now WAIT_FOR locked';
---disable_result_log
---echo # This query will block due to the x-lock on f1 and back-off
---send SHOW OPEN TABLES WHERE f1()=0
-
-connection con3;
-let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
- WHERE state= 'Waiting for stored function metadata lock'
- AND info='SHOW OPEN TABLES WHERE f1()=0';
---source include/wait_condition.inc
---echo # Check that the IS query is blocked before releasing the x-lock
-SET DEBUG_SYNC= 'now SIGNAL issued';
-
-connection default;
---echo # Reaping: ALTER FUNCTION f1 COMMENT 'comment'
---reap
---enable_result_log
-DROP FUNCTION f1;
-SET DEBUG_SYNC= 'RESET';
-disconnect con2;
-disconnect con3;
-
-
---echo #
---echo # Bug #48246 assert in close_thread_table
---echo #
-
-CREATE TABLE t0 (b INTEGER);
-CREATE TABLE t1 (a INTEGER);
-CREATE FUNCTION f1(b INTEGER) RETURNS INTEGER RETURN 1;
-CREATE PROCEDURE p1() SELECT COUNT(f1(a)) FROM t1, t0;
-
-INSERT INTO t0 VALUES(1);
-INSERT INTO t1 VALUES(1), (2);
-
-connect (con2, localhost, root);
-CALL p1();
-
-SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL locked_t1 WAIT_FOR go_for_t0';
---echo # This call used to cause an assertion. MDL deadlock with upcoming
---echo # LOCK TABLES statement will cause back-off and retry.
---echo # A variable indicating if a prelocking list exists, used to be not
---echo # reset properly causing an eventual assert.
---echo # Sending:
---send CALL p1()
-
-connection default;
-SET DEBUG_SYNC= 'now WAIT_FOR locked_t1';
---echo # Issue LOCK TABLES statement which will enter in MDL deadlock
---echo # with CALL statement and as result will cause it to perform
---echo # back-off and retry.
-SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL go_for_t0';
-LOCK TABLES t0 WRITE, t1 WRITE;
-UNLOCK TABLES;
-
-connection con2;
---echo # Reaping: CALL p1()
---reap;
-
-connection default;
-disconnect con2;
-DROP PROCEDURE p1;
-DROP FUNCTION f1;
-DROP TABLES t0, t1;
-
-
---echo #
---echo # test for bug#11756013
---echo #
---disable_warnings
-DROP SCHEMA IF EXISTS s1;
---enable_warnings
-CREATE SCHEMA s1;
-CREATE PROCEDURE s1.p1() BEGIN END;
-
-connect (con3, localhost, root);
-SET DEBUG_SYNC='before_db_dir_check SIGNAL check_db WAIT_FOR dropped_schema';
---send CALL s1.p1
-
-connection default;
-SET DEBUG_SYNC='now WAIT_FOR check_db';
-DROP SCHEMA s1;
-SET DEBUG_SYNC='now SIGNAL dropped_schema';
-
-connection con3;
---error ER_BAD_DB_ERROR
---reap
-connection default;
-disconnect con3;
-
-SET DEBUG_SYNC = 'RESET';
-
-# Check that all connections opened by test cases in this file are really
-# gone so execution of other tests won't be affected by their presence.
---source include/wait_until_count_sessions.inc