mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 10.1 into 10.2
This commit is contained in:
@@ -65,6 +65,8 @@ flush logs;
|
|||||||
# To make it predictable, we do a useless update now, but which has the
|
# To make it predictable, we do a useless update now, but which has the
|
||||||
# interest of making the slave catch both rotate events.
|
# interest of making the slave catch both rotate events.
|
||||||
|
|
||||||
|
let $skip_checkpoint_events=1;
|
||||||
|
|
||||||
eval create table t3 (a int)ENGINE=$engine_type;
|
eval create table t3 (a int)ENGINE=$engine_type;
|
||||||
|
|
||||||
# Sync slave and force it to start on another binary log
|
# Sync slave and force it to start on another binary log
|
||||||
|
@@ -53,6 +53,9 @@
|
|||||||
#
|
#
|
||||||
# $rpl_debug
|
# $rpl_debug
|
||||||
# If set, verbose debug info is printed.
|
# If set, verbose debug info is printed.
|
||||||
|
#
|
||||||
|
# $filter_script
|
||||||
|
# If set, rows matching this regexp will be filtered out
|
||||||
|
|
||||||
--let $include_filename= filter_file.inc
|
--let $include_filename= filter_file.inc
|
||||||
--source include/begin_include_file.inc
|
--source include/begin_include_file.inc
|
||||||
@@ -67,10 +70,12 @@ if ($rpl_debug)
|
|||||||
|
|
||||||
--let _FF_PRE_SCRIPT= $pre_script
|
--let _FF_PRE_SCRIPT= $pre_script
|
||||||
--let _FF_SCRIPT= $script
|
--let _FF_SCRIPT= $script
|
||||||
|
--let _FF_FILTER_SCRIPT= $filter_script
|
||||||
--let _FF_INPUT_FILE= $input_file
|
--let _FF_INPUT_FILE= $input_file
|
||||||
--let _FF_OUTPUT_FILE= $output_file
|
--let _FF_OUTPUT_FILE= $output_file
|
||||||
--let _FF_SELECT_COLUMNS= $select_columns
|
--let _FF_SELECT_COLUMNS= $select_columns
|
||||||
--let _FF_DEBUG= $rpl_debug
|
--let _FF_DEBUG= $rpl_debug
|
||||||
|
|
||||||
if (!$output_file)
|
if (!$output_file)
|
||||||
{
|
{
|
||||||
--let _FF_OUTPUT_FILE= $input_file
|
--let _FF_OUTPUT_FILE= $input_file
|
||||||
@@ -79,6 +84,7 @@ perl;
|
|||||||
my $pre_script = $ENV{'_FF_PRE_SCRIPT'};
|
my $pre_script = $ENV{'_FF_PRE_SCRIPT'};
|
||||||
$pre_script =~ s/DOLLAR/\$/g;
|
$pre_script =~ s/DOLLAR/\$/g;
|
||||||
my $script = $ENV{'_FF_SCRIPT'};
|
my $script = $ENV{'_FF_SCRIPT'};
|
||||||
|
my $filter_script = $ENV{'_FF_FILTER_SCRIPT'};
|
||||||
$script =~ s/DOLLAR/\$/g;
|
$script =~ s/DOLLAR/\$/g;
|
||||||
my $input_file = $ENV{'_FF_INPUT_FILE'};
|
my $input_file = $ENV{'_FF_INPUT_FILE'};
|
||||||
my $output_file = $ENV{'_FF_OUTPUT_FILE'};
|
my $output_file = $ENV{'_FF_OUTPUT_FILE'};
|
||||||
@@ -123,7 +129,10 @@ perl;
|
|||||||
{
|
{
|
||||||
' . $script . '
|
' . $script . '
|
||||||
}
|
}
|
||||||
$filtered_contents .= $_."\n";
|
if (!$filter_script || ! m/$filter_script/)
|
||||||
|
{
|
||||||
|
$filtered_contents .= $_."\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
close FILE or die "Error closing $input_file: $!";
|
close FILE or die "Error closing $input_file: $!";
|
||||||
open FILE, "> $output_file" or die "Error opening $output_file: $!";
|
open FILE, "> $output_file" or die "Error opening $output_file: $!";
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
# [--let $binlog_file= [<FILENAME> | LAST]]
|
# [--let $binlog_file= [<FILENAME> | LAST]]
|
||||||
# [--let $binlog_start= <POSITION> ]
|
# [--let $binlog_start= <POSITION> ]
|
||||||
# [--let $binlog_limit= 1, 3 ]
|
# [--let $binlog_limit= 1, 3 ]
|
||||||
# [--let $keep_gtid_events= 1]
|
# [--let $skip_checkpoint_events= 1]
|
||||||
# --source include/show_binlog_events.inc
|
# --source include/show_binlog_events.inc
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
@@ -26,12 +26,6 @@
|
|||||||
# Limit for the 'LIMIT' clause of SHOW BINLOG EVENTS, i.e.:
|
# Limit for the 'LIMIT' clause of SHOW BINLOG EVENTS, i.e.:
|
||||||
# $binlog_limit= 3 -- print three events
|
# $binlog_limit= 3 -- print three events
|
||||||
# $binlog_limit= 4, 3 -- skip four events, print the three next events
|
# $binlog_limit= 4, 3 -- skip four events, print the three next events
|
||||||
#
|
|
||||||
# $keep_gtid_events
|
|
||||||
# By default, Gtid_log_event and Previous_gtid_log_event are
|
|
||||||
# filtered out, so that the output is independent of whether GTIDs
|
|
||||||
# are enabled or not. If this flag is set, events are kept but
|
|
||||||
# the actual GTID values are masked out.
|
|
||||||
|
|
||||||
--let $include_filename= show_binlog_events.inc
|
--let $include_filename= show_binlog_events.inc
|
||||||
--source include/begin_include_file.inc
|
--source include/begin_include_file.inc
|
||||||
|
@@ -104,8 +104,15 @@ let $script=
|
|||||||
s{DOLLARmysqltest_vardir}{MYSQLTEST_VARDIR}g;
|
s{DOLLARmysqltest_vardir}{MYSQLTEST_VARDIR}g;
|
||||||
||
|
||
|
||||||
--let $pre_script= my DOLLARmysqltest_vardir = DOLLARENV{'MYSQLTEST_VARDIR'};
|
--let $pre_script= my DOLLARmysqltest_vardir = DOLLARENV{'MYSQLTEST_VARDIR'};
|
||||||
|
|
||||||
--delimiter ;
|
--delimiter ;
|
||||||
|
|
||||||
|
if ($skip_checkpoint_events)
|
||||||
|
{
|
||||||
|
let $filter_script=Binlog_checkpoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#--let $select_columns= 1 3 6
|
#--let $select_columns= 1 3 6
|
||||||
--let $input_file= $output_file
|
--let $input_file= $output_file
|
||||||
--source include/filter_file.inc
|
--source include/filter_file.inc
|
||||||
|
@@ -226,7 +226,6 @@ master-bin.000001 # Query # # COMMIT
|
|||||||
master-bin.000001 # Rotate # # master-bin.000002;pos=POS
|
master-bin.000001 # Rotate # # master-bin.000002;pos=POS
|
||||||
include/show_binlog_events.inc
|
include/show_binlog_events.inc
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
master-bin.000002 # Binlog_checkpoint # # master-bin.000002
|
|
||||||
master-bin.000002 # Gtid # # GTID #-#-#
|
master-bin.000002 # Gtid # # GTID #-#-#
|
||||||
master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=MyISAM
|
master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=MyISAM
|
||||||
master-bin.000002 # Gtid # # GTID #-#-#
|
master-bin.000002 # Gtid # # GTID #-#-#
|
||||||
@@ -268,7 +267,6 @@ slave-bin.000001 # Query # # use `test`; create table t3 (a int)ENGINE=MyISAM
|
|||||||
slave-bin.000001 # Rotate # # slave-bin.000002;pos=POS
|
slave-bin.000001 # Rotate # # slave-bin.000002;pos=POS
|
||||||
include/show_binlog_events.inc
|
include/show_binlog_events.inc
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002
|
|
||||||
slave-bin.000002 # Gtid # # GTID #-#-#
|
slave-bin.000002 # Gtid # # GTID #-#-#
|
||||||
slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=MyISAM
|
slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=MyISAM
|
||||||
slave-bin.000002 # Gtid # # BEGIN GTID #-#-#
|
slave-bin.000002 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
@@ -226,7 +226,6 @@ master-bin.000001 # Xid # # COMMIT /* XID */
|
|||||||
master-bin.000001 # Rotate # # master-bin.000002;pos=POS
|
master-bin.000001 # Rotate # # master-bin.000002;pos=POS
|
||||||
include/show_binlog_events.inc
|
include/show_binlog_events.inc
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
master-bin.000002 # Binlog_checkpoint # # master-bin.000002
|
|
||||||
master-bin.000002 # Gtid # # GTID #-#-#
|
master-bin.000002 # Gtid # # GTID #-#-#
|
||||||
master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=InnoDB
|
master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=InnoDB
|
||||||
master-bin.000002 # Gtid # # GTID #-#-#
|
master-bin.000002 # Gtid # # GTID #-#-#
|
||||||
@@ -268,7 +267,6 @@ slave-bin.000001 # Query # # use `test`; create table t3 (a int)ENGINE=InnoDB
|
|||||||
slave-bin.000001 # Rotate # # slave-bin.000002;pos=POS
|
slave-bin.000001 # Rotate # # slave-bin.000002;pos=POS
|
||||||
include/show_binlog_events.inc
|
include/show_binlog_events.inc
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002
|
|
||||||
slave-bin.000002 # Gtid # # GTID #-#-#
|
slave-bin.000002 # Gtid # # GTID #-#-#
|
||||||
slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=InnoDB
|
slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=InnoDB
|
||||||
slave-bin.000002 # Gtid # # BEGIN GTID #-#-#
|
slave-bin.000002 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
@@ -222,7 +222,6 @@ master-bin.000001 # Query # # COMMIT
|
|||||||
master-bin.000001 # Rotate # # master-bin.000002;pos=POS
|
master-bin.000001 # Rotate # # master-bin.000002;pos=POS
|
||||||
include/show_binlog_events.inc
|
include/show_binlog_events.inc
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
master-bin.000002 # Binlog_checkpoint # # master-bin.000002
|
|
||||||
master-bin.000002 # Gtid # # GTID #-#-#
|
master-bin.000002 # Gtid # # GTID #-#-#
|
||||||
master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=MyISAM
|
master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=MyISAM
|
||||||
master-bin.000002 # Gtid # # GTID #-#-#
|
master-bin.000002 # Gtid # # GTID #-#-#
|
||||||
@@ -260,7 +259,6 @@ slave-bin.000001 # Query # # use `test`; create table t3 (a int)ENGINE=MyISAM
|
|||||||
slave-bin.000001 # Rotate # # slave-bin.000002;pos=POS
|
slave-bin.000001 # Rotate # # slave-bin.000002;pos=POS
|
||||||
include/show_binlog_events.inc
|
include/show_binlog_events.inc
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002
|
|
||||||
slave-bin.000002 # Gtid # # GTID #-#-#
|
slave-bin.000002 # Gtid # # GTID #-#-#
|
||||||
slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=MyISAM
|
slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=MyISAM
|
||||||
slave-bin.000002 # Gtid # # BEGIN GTID #-#-#
|
slave-bin.000002 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
@@ -207,11 +207,9 @@ stats and eventually save its stats. */
|
|||||||
static
|
static
|
||||||
void
|
void
|
||||||
dict_stats_process_entry_from_defrag_pool()
|
dict_stats_process_entry_from_defrag_pool()
|
||||||
/*=======================================*/
|
|
||||||
{
|
{
|
||||||
table_id_t table_id;
|
table_id_t table_id;
|
||||||
index_id_t index_id;
|
index_id_t index_id;
|
||||||
dberr_t err = DB_SUCCESS;
|
|
||||||
|
|
||||||
ut_ad(!srv_read_only_mode);
|
ut_ad(!srv_read_only_mode);
|
||||||
|
|
||||||
@@ -230,40 +228,19 @@ dict_stats_process_entry_from_defrag_pool()
|
|||||||
table = dict_table_open_on_id(table_id, TRUE,
|
table = dict_table_open_on_id(table_id, TRUE,
|
||||||
DICT_TABLE_OP_OPEN_ONLY_IF_CACHED);
|
DICT_TABLE_OP_OPEN_ONLY_IF_CACHED);
|
||||||
|
|
||||||
if (table == NULL) {
|
dict_index_t* index = table && !table->corrupted
|
||||||
|
? dict_table_find_index_on_id(table, index_id)
|
||||||
|
: NULL;
|
||||||
|
|
||||||
|
if (!index || dict_index_is_corrupted(index)) {
|
||||||
|
if (table) {
|
||||||
|
dict_table_close(table, TRUE, FALSE);
|
||||||
|
}
|
||||||
mutex_exit(&dict_sys->mutex);
|
mutex_exit(&dict_sys->mutex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether table is corrupted */
|
dict_stats_save_defrag_stats(index);
|
||||||
if (table->corrupted) {
|
|
||||||
dict_table_close(table, TRUE, FALSE);
|
|
||||||
mutex_exit(&dict_sys->mutex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mutex_exit(&dict_sys->mutex);
|
|
||||||
|
|
||||||
dict_index_t* index = dict_table_find_index_on_id(table, index_id);
|
|
||||||
|
|
||||||
if (index == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check whether index is corrupted */
|
|
||||||
if (dict_index_is_corrupted(index)) {
|
|
||||||
dict_table_close(table, FALSE, FALSE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
err = dict_stats_save_defrag_stats(index);
|
|
||||||
|
|
||||||
if (err != DB_SUCCESS) {
|
|
||||||
ib::error() << "Saving defragmentation status for table "
|
|
||||||
<< index->table->name.m_name
|
|
||||||
<< " index " << index->name()
|
|
||||||
<< " failed " << err;
|
|
||||||
}
|
|
||||||
|
|
||||||
dict_table_close(table, FALSE, FALSE);
|
dict_table_close(table, FALSE, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -479,7 +479,6 @@ stats and eventually save its stats. */
|
|||||||
static
|
static
|
||||||
void
|
void
|
||||||
dict_stats_process_entry_from_defrag_pool()
|
dict_stats_process_entry_from_defrag_pool()
|
||||||
/*=======================================*/
|
|
||||||
{
|
{
|
||||||
table_id_t table_id;
|
table_id_t table_id;
|
||||||
index_id_t index_id;
|
index_id_t index_id;
|
||||||
@@ -501,31 +500,18 @@ dict_stats_process_entry_from_defrag_pool()
|
|||||||
table = dict_table_open_on_id(table_id, TRUE,
|
table = dict_table_open_on_id(table_id, TRUE,
|
||||||
DICT_TABLE_OP_OPEN_ONLY_IF_CACHED);
|
DICT_TABLE_OP_OPEN_ONLY_IF_CACHED);
|
||||||
|
|
||||||
if (table == NULL) {
|
dict_index_t* index = table && !table->corrupted
|
||||||
|
? dict_table_find_index_on_id(table, index_id)
|
||||||
|
: NULL;
|
||||||
|
|
||||||
|
if (!index || dict_index_is_corrupted(index)) {
|
||||||
|
if (table) {
|
||||||
|
dict_table_close(table, TRUE, FALSE);
|
||||||
|
}
|
||||||
mutex_exit(&dict_sys->mutex);
|
mutex_exit(&dict_sys->mutex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether table is corrupted */
|
|
||||||
if (table->corrupted) {
|
|
||||||
dict_table_close(table, TRUE, FALSE);
|
|
||||||
mutex_exit(&dict_sys->mutex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mutex_exit(&dict_sys->mutex);
|
|
||||||
|
|
||||||
dict_index_t* index = dict_table_find_index_on_id(table, index_id);
|
|
||||||
|
|
||||||
if (index == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check whether index is corrupted */
|
|
||||||
if (dict_index_is_corrupted(index)) {
|
|
||||||
dict_table_close(table, FALSE, FALSE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
dict_stats_save_defrag_stats(index);
|
dict_stats_save_defrag_stats(index);
|
||||||
dict_table_close(table, FALSE, FALSE);
|
dict_table_close(table, FALSE, FALSE);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user