mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	 25b5c63905
			
		
	
	
	25b5c63905
	
	
	
		
			
			This commit adds 3 new status variables to 'show all slaves status':
- Master_last_event_time ; timestamp of the last event read from the
  master by the IO thread.
- Slave_last_event_time ; Master timestamp of the last event committed
  on the slave.
- Master_Slave_time_diff: The difference of the above two timestamps.
All the above variables are NULL until the slave has started and the
slave has read one query event from the master that changes data.
- Added information_schema.slave_status, which allows us to remove:
   - show_master_info(), show_master_info_get_fields(),
     send_show_master_info_data(), show_all_master_info()
   - class Sql_cmd_show_slave_status.
   - Protocol::store(I_List<i_string_pair>* str_list) as it is not
     used anymore.
- Changed old SHOW SLAVE STATUS and SHOW ALL SLAVES STATUS to
  use the SELECT code path, as all other SHOW ... STATUS commands.
Other things:
- Xid_log_time is set to time of commit to allow slave that reads the
  binary log to calculate Master_last_event_time and
  Slave_last_event_time.
  This is needed as there is not 'exec_time' for row events.
- Fixed that Load_log_event calculates exec_time identically to
  Query_event.
- Updated RESET SLAVE to reset Master/Slave_last_event_time
- Updated SQL thread's update on first transaction read-in to
  only update Slave_last_event_time on group events.
- Fixed possible (unlikely) bugs in sql_show.cc ...old_format() functions
  if allocation of 'field' would fail.
Reviewed By:
Brandon Nesterenko <brandon.nesterenko@mariadb.com>
Kristian Nielsen <knielsen@knielsen-hq.org>
		
	
			
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| -- source include/have_innodb.inc
 | |
| -- source include/is_embedded.inc
 | |
| 
 | |
| # check that CSV engine was compiled in, as the result of the test depends
 | |
| # on the presence of the log tables (which are CSV-based).
 | |
| --source include/have_csv.inc
 | |
| 
 | |
| --echo #
 | |
| --echo # Bug#18925: subqueries with MIN/MAX functions on INFORMATION_SCHEMA
 | |
| --echo #
 | |
| 
 | |
| --sorted_result
 | |
| SELECT t.table_name, c1.column_name
 | |
|   FROM information_schema.tables t
 | |
|        INNER JOIN
 | |
|        information_schema.columns c1
 | |
|        ON t.table_schema = c1.table_schema AND
 | |
|           t.table_name = c1.table_name
 | |
|   WHERE t.table_schema = 'information_schema' AND
 | |
|         c1.ordinal_position =
 | |
|         ( SELECT COALESCE(MIN(c2.ordinal_position),1)
 | |
|             FROM information_schema.columns c2
 | |
|             WHERE c2.table_schema = t.table_schema AND
 | |
|                   c2.table_name = t.table_name AND
 | |
|                   c2.column_name LIKE '%SCHEMA%'
 | |
|         )
 | |
|   AND t.table_name NOT LIKE 'innodb%' and t.table_name NOT LIKE "OPTIMIZER_TRACE%";
 | |
| --sorted_result
 | |
| SELECT t.table_name, c1.column_name
 | |
|   FROM information_schema.tables t
 | |
|        INNER JOIN
 | |
|        information_schema.columns c1
 | |
|        ON t.table_schema = c1.table_schema AND
 | |
|           t.table_name = c1.table_name
 | |
|   WHERE t.table_schema = 'information_schema' AND
 | |
|         c1.ordinal_position =
 | |
|         ( SELECT COALESCE(MIN(c2.ordinal_position),1)
 | |
|             FROM information_schema.columns c2
 | |
|             WHERE c2.table_schema = 'information_schema' AND
 | |
|                   c2.table_name = t.table_name AND
 | |
|                   c2.column_name LIKE '%SCHEMA%'
 | |
|         )
 | |
|   AND t.table_name NOT LIKE 'innodb%' and t.table_name NOT LIKE "OPTIMIZER_TRACE%";
 |