95 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			95 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								### t/log_tables_debug.test
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Log-related tests requiring a debug-build server.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# extra clean-up required due to Bug#38124, set to 1 when behavior has
							 | 
						||
| 
								 | 
							
								# changed (see explanation in log_state.test)
							 | 
						||
| 
								 | 
							
								let $fixed_bug38124 = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--source include/have_debug.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Several subtests modify global variables. Save the initial values only here,
							 | 
						||
| 
								 | 
							
								# but reset to the initial values per subtest.
							 | 
						||
| 
								 | 
							
								SET @old_general_log= @@global.general_log;
							 | 
						||
| 
								 | 
							
								SET @old_general_log_file= @@global.general_log_file;
							 | 
						||
| 
								 | 
							
								SET @old_slow_query_log= @@global.slow_query_log;
							 | 
						||
| 
								 | 
							
								SET @old_slow_query_log_file= @@global.slow_query_log_file;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--echo #
							 | 
						||
| 
								 | 
							
								--echo # Bug#45387 Information about statement id for prepared
							 | 
						||
| 
								 | 
							
								--echo #           statements missed from general log
							 | 
						||
| 
								 | 
							
								--echo #
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								let MYSQLD_DATADIR= `SELECT @@datadir`;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# set logging to our specific bug log to control the entries added
							 | 
						||
| 
								 | 
							
								SET @@global.general_log = ON;
							 | 
						||
| 
								 | 
							
								SET @@global.general_log_file = 'bug45387_general.log';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# turn on output of timestamps on all log file entries
							 | 
						||
| 
								 | 
							
								SET SESSION debug='+d,reset_log_last_time';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								let CONN_ID= `SELECT CONNECTION_ID()`;
							 | 
						||
| 
								 | 
							
								FLUSH LOGS;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# reset log settings
							 | 
						||
| 
								 | 
							
								SET @@global.general_log = @old_general_log;
							 | 
						||
| 
								 | 
							
								SET @@global.general_log_file = @old_general_log_file;
							 | 
						||
| 
								 | 
							
								SET SESSION debug='-d';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								perl;
							 | 
						||
| 
								 | 
							
								  # get the relevant info from the surrounding perl invocation
							 | 
						||
| 
								 | 
							
								  $datadir= $ENV{'MYSQLD_DATADIR'};
							 | 
						||
| 
								 | 
							
								  $conn_id= $ENV{'CONN_ID'};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # loop through the log file looking for the stmt querying for conn id
							 | 
						||
| 
								 | 
							
								  open(FILE, "$datadir/bug45387_general.log") or
							 | 
						||
| 
								 | 
							
								    die("Unable to read log file $datadir/bug45387_general.log: $!\n");
							 | 
						||
| 
								 | 
							
								  while(<FILE>) {
							 | 
						||
| 
								 | 
							
								    if (/\d{6}\s+\d+:\d+:\d+[ \t]+(\d+)[ \t]+Query[ \t]+SELECT CONNECTION_ID/) {
							 | 
						||
| 
								 | 
							
								      $found= $1;
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # print the result
							 | 
						||
| 
								 | 
							
								  if ($found == $conn_id) {
							 | 
						||
| 
								 | 
							
								    print "Bug#45387: ID match.\n";
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    print "Bug#45387: Expected ID '$conn_id', found '$found' in log file.\n";
							 | 
						||
| 
								 | 
							
								    print "Contents of log file:\n";
							 | 
						||
| 
								 | 
							
								    seek(FILE, 0, 0);
							 | 
						||
| 
								 | 
							
								    while($line= <FILE>) {
							 | 
						||
| 
								 | 
							
								      print $line;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  close(FILE);
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--remove_file $MYSQLD_DATADIR/bug45387_general.log
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--echo End of 5.1 tests
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--echo #
							 | 
						||
| 
								 | 
							
								--echo # Cleanup
							 | 
						||
| 
								 | 
							
								--echo #
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Reset global system variables to initial values if forgotten somewhere above.
							 | 
						||
| 
								 | 
							
								SET global general_log = @old_general_log;
							 | 
						||
| 
								 | 
							
								SET global general_log_file = @old_general_log_file;
							 | 
						||
| 
								 | 
							
								SET global slow_query_log = @old_slow_query_log;
							 | 
						||
| 
								 | 
							
								SET global slow_query_log_file = @old_slow_query_log_file;
							 | 
						||
| 
								 | 
							
								if(!$fixed_bug38124)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								   --disable_query_log
							 | 
						||
| 
								 | 
							
								   let $my_var = `SELECT @old_general_log_file`;
							 | 
						||
| 
								 | 
							
								   eval SET @@global.general_log_file = '$my_var';
							 | 
						||
| 
								 | 
							
								   let $my_var = `SELECT @old_slow_query_log_file`;
							 | 
						||
| 
								 | 
							
								   eval SET @@global.slow_query_log_file = '$my_var';
							 | 
						||
| 
								 | 
							
								   --enable_query_log
							 | 
						||
| 
								 | 
							
								}
							 |