mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-07 21:09:14 +00:00
Merge pull request #323 from percona/PT-1527
PT-1527 pt-table-checksum3.0.8 high execution time
This commit is contained in:
@@ -2,6 +2,7 @@ Changelog for Percona Toolkit
|
||||
|
||||
v3.0.9
|
||||
|
||||
* Fixed bug PT-1527 : pt-table-checksum ignores --nocheck-binlog-format
|
||||
* Feature PT-1526 : Add ndb status to pt-mysql-summary (Thanks Fernando Ipar)
|
||||
* Feature PT-1525 : Added support for MySQL 8 roles into pt-mysql-summary
|
||||
* Feature PT-1509 : Only set binlog_format when necessary (Thanks Moritz Lenz)
|
||||
|
@@ -10052,28 +10052,30 @@ sub main {
|
||||
# instead, it should check if it's already set to STATEMENT.
|
||||
# This is becase starting with MySQL 5.1.29, changing the format
|
||||
# requires a SUPER user.
|
||||
if ( VersionParser->new($dbh) >= '5.1.5' ) {
|
||||
$sql = 'SELECT @@binlog_format';
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
my ($original_binlog_format) = $dbh->selectrow_array($sql);
|
||||
PTDEBUG && _d('Original binlog_format:', $original_binlog_format);
|
||||
if ( $original_binlog_format !~ /STATEMENT/i ) {
|
||||
$sql = q{/*!50108 SET @@binlog_format := 'STATEMENT'*/};
|
||||
eval {
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
$dbh->do($sql);
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
die "Failed to $sql: $EVAL_ERROR\n"
|
||||
. "This tool requires binlog_format=STATEMENT, "
|
||||
. "but the current binlog_format is set to "
|
||||
."$original_binlog_format and an error occurred while "
|
||||
. "attempting to change it. If running MySQL 5.1.29 or newer, "
|
||||
. "setting binlog_format requires the SUPER privilege. "
|
||||
. "You will need to manually set binlog_format to 'STATEMENT' "
|
||||
. "before running this tool.\n";
|
||||
}
|
||||
}
|
||||
if ( $o->get('check-binlog-format') ) {
|
||||
if ( VersionParser->new($dbh) >= '5.1.5' ) {
|
||||
$sql = 'SELECT @@binlog_format';
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
my ($original_binlog_format) = $dbh->selectrow_array($sql);
|
||||
PTDEBUG && _d('Original binlog_format:', $original_binlog_format);
|
||||
if ( $original_binlog_format !~ /STATEMENT/i ) {
|
||||
$sql = q{/*!50108 SET @@binlog_format := 'STATEMENT'*/};
|
||||
eval {
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
$dbh->do($sql);
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
die "Failed to $sql: $EVAL_ERROR\n"
|
||||
. "This tool requires binlog_format=STATEMENT, "
|
||||
. "but the current binlog_format is set to "
|
||||
."$original_binlog_format and an error occurred while "
|
||||
. "attempting to change it. If running MySQL 5.1.29 or newer, "
|
||||
. "setting binlog_format requires the SUPER privilege. "
|
||||
. "You will need to manually set binlog_format to 'STATEMENT' "
|
||||
. "before running this tool.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Set transaction isolation level. We set binlog_format to STATEMENT,
|
||||
|
Reference in New Issue
Block a user