# Author: Horst Hunger # Created: 2010-07-13 --source include/not_embedded.inc --source include/have_partition.inc --source include/have_innodb.inc let $engine_table= InnoDB; let $engine_part= InnoDB; let $engine_subpart= InnoDB; use test; --disable_result_log --disable_query_log --source suite/parts/inc/part_exch_tabs.inc --enable_result_log --enable_query_log # 17) Exchanges in Procedure, triggers and events. DELIMITER |; CREATE PROCEDURE test_p1 () BEGIN ALTER TABLE t_10 ADD UNIQUE INDEX USING BTREE (a); ALTER TABLE tp ADD UNIQUE INDEX USING BTREE (a); ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10; ALTER TABLE tp DROP INDEX a; ALTER TABLE t_10 DROP INDEX a; END| DELIMITER ;| CALL test_p1; --sorted_result SELECT * FROM t_10; --sorted_result SELECT * FROM tp WHERE a BETWEEN 0 AND 9; DROP PROCEDURE test_p1; SET @save_autocommit= @@autocommit; SET @@autocommit= OFF; SHOW VARIABLES LIKE 'autocommit%'; DELIMITER |; --error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG CREATE TRIGGER test_trg_1 BEFORE UPDATE ON tp FOR EACH ROW BEGIN ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10; END| --error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG CREATE FUNCTION test_f_1() RETURNS int BEGIN ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10; END| DELIMITER ;| SET @@autocommit= @save_autocommit; SET @save_event_scheduler= @@global.event_scheduler; SET @@global.event_scheduler= ON; CREATE EVENT test_ev_1 ON SCHEDULE AT CURRENT_TIMESTAMP DO ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10; sleep 1; --sorted_result SELECT * FROM t_10; --sorted_result SELECT * FROM tp WHERE a BETWEEN 0 AND 9; SET @@global.event_scheduler= @save_event_scheduler; --source suite/parts/inc/part_exch_drop_tabs.inc