mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-27 05:56:07 +03:00 
			
		
		
		
	Copying generated data from the sequence engine should be faster than copying from MyISAM to MyISAM. Reviewed by: Sergei Petrunia
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --source include/long_test.inc
 | |
| --source include/have_sequence.inc
 | |
| 
 | |
| #
 | |
| # Test of update statement that uses many tables.
 | |
| #
 | |
| 
 | |
| #
 | |
| # If we are running with
 | |
| # - Valgrind           -> $VALGRIND_TEST <> 0
 | |
| # - debug tracing      -> @@session.debug LIKE '%trace%'
 | |
| # the resource consumption (storage space needed, runtime) will be extreme.
 | |
| # Therefore we require that the option "--big-test" is also set.
 | |
| #
 | |
| 
 | |
| let $need_big= 0;
 | |
| --disable_query_log
 | |
| --error 0,ER_UNKNOWN_SYSTEM_VARIABLE
 | |
| SET @aux = @@session.debug;
 | |
| if (!$mysql_errno)
 | |
| {
 | |
|   # We have returncode 0 = the server system variable @@session.debug exists.
 | |
|   # But we only need "--big-test" in case of tracing.
 | |
|   if (`SELECT @@session.debug LIKE '%trace%'`)
 | |
|   {
 | |
|     let $need_big= 1;
 | |
|   }
 | |
| }
 | |
| --enable_query_log
 | |
| if ($VALGRIND_TEST)
 | |
| {
 | |
|   # We are running with Valgrind
 | |
|   inc $need_big;
 | |
| }
 | |
| if (`SELECT '$BIG_TEST' = '' AND $need_big = 1`)
 | |
| {
 | |
|   --skip Need "--big-test" when running with the option "--debug" or "--valgrind"
 | |
| }
 | |
| 
 | |
| #
 | |
| # Bug#1820 Rows not deleted from second table on multi-table delete
 | |
| #
 | |
| 
 | |
| CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ;
 | |
| INSERT INTO t1 SELECT seq,seq FROM seq_1_to_2097152;
 | |
| 
 | |
| ALTER TABLE t1 ADD INDEX i1(a);
 | |
| DELETE FROM t1 WHERE a > 2000000;
 | |
| CREATE TABLE t2 LIKE t1;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| 
 | |
| SELECT 't2 rows before small delete', COUNT(*) FROM t1;
 | |
| DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2;
 | |
| SELECT 't2 rows after small delete', COUNT(*) FROM t2;
 | |
| SELECT 't1 rows after small delete', COUNT(*) FROM t1;
 | |
| 
 | |
| ## Try deleting many rows 
 | |
| 
 | |
| DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000;
 | |
| SELECT 't2 rows after big delete', COUNT(*) FROM t2;
 | |
| SELECT 't1 rows after big delete', COUNT(*) FROM t1;
 | |
| 
 | |
| DROP TABLE t1,t2;
 |