mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	- Changed replaying to always allocate a separate THD object for applying log events. This is to avoid tampering original THD state during replay process. - Return success from sp_instr_stmt::exec_core() if replaying succeeds. - Do not push warnings/errors into diagnostics area if the transaction must be replayed. This is to avoid reporting transient errors to the client. Added two tests galera_sp_bf_abort, galera_sp_insert_parallel. Wsrep-lib position updated.
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
--source include/galera_cluster.inc
 | 
						|
--source include/have_innodb.inc
 | 
						|
 | 
						|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB;
 | 
						|
 | 
						|
 | 
						|
DELIMITER |;
 | 
						|
CREATE PROCEDURE proc_insert()
 | 
						|
BEGIN
 | 
						|
  DECLARE i INT;
 | 
						|
  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
 | 
						|
 | 
						|
  SET i = 0;
 | 
						|
  WHILE i < 1000 DO
 | 
						|
    INSERT IGNORE INTO t1 (f1, f2)
 | 
						|
      VALUES (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15)),
 | 
						|
             (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15)),
 | 
						|
             (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15)),
 | 
						|
             (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15)),
 | 
						|
             (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15)),
 | 
						|
             (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15)),
 | 
						|
             (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15)),
 | 
						|
             (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15)),
 | 
						|
             (FLOOR(1 + RAND() * 65535), FLOOR(1 + RAND() * 15));
 | 
						|
    SET i = i + 1;
 | 
						|
 | 
						|
  END WHILE;
 | 
						|
END|
 | 
						|
DELIMITER ;|
 | 
						|
 | 
						|
--connection node_1
 | 
						|
SELECT 0;
 | 
						|
SET SESSION wsrep_sync_wait = 0;
 | 
						|
--send CALL proc_insert
 | 
						|
--connection node_2
 | 
						|
SELECT 0;
 | 
						|
SET SESSION wsrep_sync_wait = 0;
 | 
						|
--send CALL proc_insert
 | 
						|
 | 
						|
--connection node_1
 | 
						|
--error 0,ER_LOCK_DEADLOCK,ER_QUERY_INTERRUPTED
 | 
						|
--disable_warnings
 | 
						|
--reap
 | 
						|
--enable_warnings
 | 
						|
SET SESSION wsrep_sync_wait = default;
 | 
						|
--connection node_2
 | 
						|
--error 0,ER_LOCK_DEADLOCK,ER_QUERY_INTERRUPTED
 | 
						|
--disable_warnings
 | 
						|
--reap
 | 
						|
--enable_warnings
 | 
						|
SET SESSION wsrep_sync_wait = default;
 | 
						|
 | 
						|
--connection node_1
 | 
						|
DROP PROCEDURE proc_insert;
 | 
						|
DROP TABLE t1;
 |