mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 18:36:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| --source include/not_embedded.inc
 | |
| --source include/have_debug_sync.inc
 | |
| --source include/have_sequence.inc
 | |
| 
 | |
| 
 | |
| --echo #
 | |
| --echo # MDEV-32441 SENT_ROWS shows random wrong values when stored function
 | |
| --echo # is selected
 | |
| --echo #
 | |
| 
 | |
| create table t1 (a int) engine=aria;
 | |
| insert into t1 values (1),(2),(3),(4),(5),(6),(7);
 | |
| flush status;
 | |
| create function if not exists f() returns int return
 | |
| (
 | |
|   select sum(a) > 0 from t1
 | |
| );
 | |
| 
 | |
| --disable_ps_protocol
 | |
| select f() from seq_1_to_10 where seq%5 = 0;
 | |
| show status like "rows_sent";
 | |
| --enable_ps_protocol
 | |
| 
 | |
| --echo # Test simple query
 | |
| 
 | |
| set debug_sync='RESET';
 | |
| --connect(con1,localhost,root,,)
 | |
| --let $conid= `select connection_id()`
 | |
| --let $replace_conid=id=$conid
 | |
| set debug_sync='end_of_statement SIGNAL parked WAIT_FOR go';
 | |
| --send select f() from seq_1_to_10 where seq%5 = 0
 | |
| 
 | |
| --connection default
 | |
| set debug_sync='now WAIT_FOR parked';
 | |
| --echo # Result should be 2, 10+7*2=24
 | |
| --replace_result $replace_conid id=#
 | |
| eval select sent_rows, examined_rows from information_schema.processlist where id=$conid;
 | |
| set debug_sync='now signal go';
 | |
| --connection con1
 | |
| --reap
 | |
| 
 | |
| --echo # Test union
 | |
| 
 | |
| set debug_sync='end_of_statement SIGNAL parked WAIT_FOR go';
 | |
| --send select a from t1 where a not in (1,2,3,4) union select a from t1 where a not in (4,5,6,7)
 | |
| --connection default
 | |
| set debug_sync='now WAIT_FOR parked';
 | |
| --echo # Result should be 6, 7+7+6=20 (2 scans of 7 rows + 6 rows in union)
 | |
| --replace_result $replace_conid id=#
 | |
| eval select sent_rows, examined_rows from information_schema.processlist where id=$conid;
 | |
| set debug_sync='now signal go';
 | |
| --connection con1
 | |
| --reap
 | |
| 
 | |
| --echo # Test handler calls
 | |
| handler t1 open;
 | |
| set debug_sync='end_of_statement SIGNAL parked WAIT_FOR go';
 | |
| --send handler t1 read NEXT LIMIT 2,4
 | |
| --connection default
 | |
| set debug_sync='now WAIT_FOR parked';
 | |
| --echo # Result should be 2, 10+7*2=24
 | |
| --replace_result $replace_conid id=#
 | |
| eval select sent_rows, examined_rows from information_schema.processlist where id=$conid;
 | |
| set debug_sync='now signal go';
 | |
| --connection con1
 | |
| --reap
 | |
| handler t1 close;
 | |
| 
 | |
| --connection default
 | |
| drop function f;
 | |
| drop table t1;
 | |
| 
 | |
| --echo # Test Stored procedures
 | |
| 
 | |
| create or replace table t (a int primary key);
 | |
| insert into t select seq from seq_1_to_100;
 | |
| --delimiter $
 | |
| create procedure pr()
 | |
| begin
 | |
|   select * from t where a between 1 and 2 ;
 | |
|   select * from t where a between 4 and 6 ;
 | |
| end $
 | |
| --delimiter ;
 | |
| 
 | |
| --connection con1
 | |
| flush status;
 | |
| set debug_sync='end_of_statement SIGNAL parked WAIT_FOR go EXECUTE 2';
 | |
| 
 | |
| --send  call pr()
 | |
| 
 | |
| --connection default
 | |
| set debug_sync='now WAIT_FOR parked';
 | |
| --replace_result $replace_conid id=#
 | |
| eval select examined_rows, sent_rows, info from information_schema.processlist where id=$conid;
 | |
| set debug_sync='now signal go';
 | |
| set debug_sync='now WAIT_FOR parked';
 | |
| --replace_result $replace_conid id=#
 | |
| eval select examined_rows, sent_rows, info from information_schema.processlist where id=$conid;
 | |
| set debug_sync='now signal go';
 | |
| 
 | |
| --connection con1
 | |
| --reap
 | |
| show status like '%rows%';
 | |
| 
 | |
| connection default;
 | |
| # Cleanup
 | |
| drop table t;
 | |
| drop procedure pr;
 | |
| 
 | |
| --disconnect con1
 | |
| set debug_sync= RESET;
 | |
| 
 | |
| --echo #
 | |
| --echo # End of 11.3 tests
 | |
| --echo #
 | 
