mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-12-19 01:09:21 +08:00
DSNParser clobbered sql_mode variable set by user - lp1506748
This commit is contained in:
@@ -2514,13 +2514,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2542,6 +2535,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2077,13 +2077,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2105,6 +2098,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2421,13 +2421,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2449,6 +2442,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -916,13 +916,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -944,6 +937,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
14
bin/pt-find
14
bin/pt-find
@@ -345,13 +345,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -373,6 +366,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -1573,13 +1573,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -1601,6 +1594,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2814,13 +2814,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2842,6 +2835,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -355,13 +355,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -383,6 +376,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
14
bin/pt-kill
14
bin/pt-kill
@@ -2081,13 +2081,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2109,6 +2102,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2303,13 +2303,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2331,6 +2324,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
@@ -11741,6 +11741,15 @@ value of C<10000>.
|
|||||||
|
|
||||||
The tool prints a warning and continues if a variable cannot be set.
|
The tool prints a warning and continues if a variable cannot be set.
|
||||||
|
|
||||||
|
Note that setting the C<sql_mode> variable requires some tricky escapes
|
||||||
|
to be able to parse the quotes and commas.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
--set-vars sql_mode=\'STRICT_ALL_TABLES\\,ALLOW_INVALID_DATES\'
|
||||||
|
|
||||||
|
Note the single backslash for the quotes and double backslash for the comma.
|
||||||
|
|
||||||
=item --sleep
|
=item --sleep
|
||||||
|
|
||||||
type: float; default: 0
|
type: float; default: 0
|
||||||
|
|||||||
@@ -1023,13 +1023,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -1051,6 +1044,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -1360,13 +1360,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -1388,6 +1381,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2074,13 +2074,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2102,6 +2095,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2017,13 +2017,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2045,6 +2038,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2420,13 +2420,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2448,6 +2441,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -1603,13 +1603,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -1631,6 +1624,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2242,13 +2242,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2270,6 +2263,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ BEGIN {
|
|||||||
Transformers
|
Transformers
|
||||||
QueryRewriter
|
QueryRewriter
|
||||||
QueryParser
|
QueryParser
|
||||||
|
VersionParser
|
||||||
FileIterator
|
FileIterator
|
||||||
SQLParser
|
SQLParser
|
||||||
TableUsage
|
TableUsage
|
||||||
VersionParser
|
|
||||||
Daemon
|
Daemon
|
||||||
Runtime
|
Runtime
|
||||||
Progress
|
Progress
|
||||||
@@ -297,13 +297,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -325,6 +318,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -1020,13 +1020,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -1048,6 +1041,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2078,13 +2078,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2106,6 +2099,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -2034,13 +2034,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
PTDEBUG && _d($dbh, $sql);
|
PTDEBUG && _d($dbh, $sql);
|
||||||
@@ -2062,6 +2055,13 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
. '/*!40101, @@SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO'
|
||||||
. ($sql_mode ? ",$sql_mode" : '')
|
. ($sql_mode ? ",$sql_mode" : '')
|
||||||
|
|||||||
@@ -332,17 +332,6 @@ sub get_dbh {
|
|||||||
if ( $cxn_string =~ m/mysql/i ) {
|
if ( $cxn_string =~ m/mysql/i ) {
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
# Set SQL_MODE and options for SHOW CREATE TABLE.
|
|
||||||
# Get current, server SQL mode. Don't clobber this;
|
|
||||||
# append our SQL mode to whatever is already set.
|
|
||||||
# http://code.google.com/p/maatkit/issues/detail?id=801
|
|
||||||
$sql = 'SELECT @@SQL_MODE';
|
|
||||||
PTDEBUG && _d($dbh, $sql);
|
|
||||||
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
|
||||||
if ( $EVAL_ERROR ) {
|
|
||||||
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set character set and binmode on STDOUT.
|
# Set character set and binmode on STDOUT.
|
||||||
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
if ( my ($charset) = $cxn_string =~ m/charset=([\w]+)/ ) {
|
||||||
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
$sql = qq{/*!40101 SET NAMES "$charset"*/};
|
||||||
@@ -365,6 +354,17 @@ sub get_dbh {
|
|||||||
$self->set_vars($dbh, $vars);
|
$self->set_vars($dbh, $vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Set SQL_MODE and options for SHOW CREATE TABLE.
|
||||||
|
# Get current, server SQL mode. Don't clobber this;
|
||||||
|
# append our SQL mode to whatever is already set.
|
||||||
|
# http://code.google.com/p/maatkit/issues/detail?id=801
|
||||||
|
$sql = 'SELECT @@SQL_MODE';
|
||||||
|
PTDEBUG && _d($dbh, $sql);
|
||||||
|
my ($sql_mode) = eval { $dbh->selectrow_array($sql) };
|
||||||
|
if ( $EVAL_ERROR ) {
|
||||||
|
die "Error getting the current SQL_MODE: $EVAL_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
# Do this after set-vars so a user-set sql_mode doesn't clobber it; See
|
# Do this after set-vars so a user-set sql_mode doesn't clobber it; See
|
||||||
# https://bugs.launchpad.net/percona-toolkit/+bug/1078887
|
# https://bugs.launchpad.net/percona-toolkit/+bug/1078887
|
||||||
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
$sql = 'SET @@SQL_QUOTE_SHOW_CREATE = 1'
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ my $exit = 0;
|
|||||||
my $sample = "t/pt-online-schema-change/samples";
|
my $sample = "t/pt-online-schema-change/samples";
|
||||||
my $rows;
|
my $rows;
|
||||||
|
|
||||||
|
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
# Tool shouldn't run without --execute (bug 933232).
|
# Tool shouldn't run without --execute (bug 933232).
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
@@ -686,7 +685,6 @@ test_alter_table(
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
# --statistics
|
# --statistics
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
@@ -709,7 +707,7 @@ my $res_file = "$sample/stats-execute.txt";
|
|||||||
if ($sandbox_version eq '5.5' && $db_flavor !~ m/XtraDB Cluster/) {
|
if ($sandbox_version eq '5.5' && $db_flavor !~ m/XtraDB Cluster/) {
|
||||||
$res_file = "$sample/stats-execute-5.5.txt";
|
$res_file = "$sample/stats-execute-5.5.txt";
|
||||||
} elsif ($sandbox_version eq '5.6' && $db_flavor !~ m/XtraDB Cluster/) {
|
} elsif ($sandbox_version eq '5.6' && $db_flavor !~ m/XtraDB Cluster/) {
|
||||||
$res_file = "$sample/stats-execute.txt";
|
$res_file = "$sample/stats-execute-5.6.txt";
|
||||||
} elsif ($sandbox_version eq '5.7' && $db_flavor !~ m/XtraDB Cluster/) {
|
} elsif ($sandbox_version eq '5.7' && $db_flavor !~ m/XtraDB Cluster/) {
|
||||||
$res_file = "$sample/stats-execute-5.7.txt";
|
$res_file = "$sample/stats-execute-5.7.txt";
|
||||||
}
|
}
|
||||||
@@ -723,10 +721,12 @@ ok(
|
|||||||
'--recursion-method', 'none'),
|
'--recursion-method', 'none'),
|
||||||
},
|
},
|
||||||
$res_file,
|
$res_file,
|
||||||
|
keep_output=>1,
|
||||||
),
|
),
|
||||||
"--statistics --execute"
|
"--statistics --execute"
|
||||||
) or diag($test_diff);
|
) or diag($test_diff);
|
||||||
|
|
||||||
|
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
# --chunk-size-limit=0 must not skip tables that would be chunked
|
# --chunk-size-limit=0 must not skip tables that would be chunked
|
||||||
# in one nibble
|
# in one nibble
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ use Test::More;
|
|||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
use PerconaTest;
|
use PerconaTest;
|
||||||
use Sandbox;
|
use Sandbox;
|
||||||
|
use SqlModes;
|
||||||
require "$trunk/bin/pt-online-schema-change";
|
require "$trunk/bin/pt-online-schema-change";
|
||||||
|
|
||||||
my $dp = new DSNParser(opts=>$dsn_opts);
|
my $dp = new DSNParser(opts=>$dsn_opts);
|
||||||
@@ -38,6 +38,7 @@ my $output;
|
|||||||
my $exit_status;
|
my $exit_status;
|
||||||
my $sample = "t/pt-online-schema-change/samples/";
|
my $sample = "t/pt-online-schema-change/samples/";
|
||||||
|
|
||||||
|
|
||||||
# ############################################################################
|
# ############################################################################
|
||||||
# https://bugs.launchpad.net/percona-toolkit/+bug/1336734
|
# https://bugs.launchpad.net/percona-toolkit/+bug/1336734
|
||||||
# pt-online-schema-change 2.2.17 adds --null-to-not-null feature
|
# pt-online-schema-change 2.2.17 adds --null-to-not-null feature
|
||||||
@@ -510,6 +511,39 @@ like(
|
|||||||
"Bug 1446928: Avoid error trapping loop when --alter is invalid",
|
"Bug 1446928: Avoid error trapping loop when --alter is invalid",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
# ############################################################################
|
||||||
|
# https://bugs.launchpad.net/percona-toolkit/+bug/1506748
|
||||||
|
# test that setting sql_mode via --set-vars works
|
||||||
|
# ############################################################################
|
||||||
|
|
||||||
|
# first we create a table with a valid default date
|
||||||
|
$sb->load_file('master', "$sample/sql_mode_issue_lp1506748.sql");
|
||||||
|
|
||||||
|
my $modes = new SqlModes($master_dbh, global =>1);
|
||||||
|
|
||||||
|
# We clear all modes. In this state, setting an invalid default date generates
|
||||||
|
# an error.
|
||||||
|
$modes->set_mode_string('');
|
||||||
|
|
||||||
|
# Now we run the command, but set sql_mode to allow invalid dates for
|
||||||
|
# the session.
|
||||||
|
# While we're at it, test that we can set more than one mode by double escaping
|
||||||
|
# the commas. (must be explained in docs)
|
||||||
|
($output, $exit_status) = full_output(
|
||||||
|
sub { pt_online_schema_change::main(@args,
|
||||||
|
"$master_dsn,D=test,t=lp1506748",
|
||||||
|
"--execute",
|
||||||
|
"--set-vars", "sql_mode=\'STRICT_ALL_TABLES\\,ALLOW_INVALID_DATES\'",
|
||||||
|
"--alter", "MODIFY COLUMN birthday DATE DEFAULT '1970-02-31'",
|
||||||
|
) },
|
||||||
|
);
|
||||||
|
|
||||||
|
ok ((!$exit_status && $output =~ /success/i) , "--set-vars sql_mode=\\'a\\\\,b\\' works" )
|
||||||
|
or diag("[$output][$exit_status]");
|
||||||
|
|
||||||
|
$master_dbh->do("drop database test");
|
||||||
|
$modes->restore_original_modes();
|
||||||
|
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
# Done.
|
# Done.
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
create database if not exists test;
|
||||||
|
create table if not exists test.lp1506748 (id int PRIMARY KEY, birthday date default '1970-01-01');
|
||||||
|
|
||||||
|
|
||||||
30
t/pt-online-schema-change/samples/stats-execute-5.6.txt
Normal file
30
t/pt-online-schema-change/samples/stats-execute-5.6.txt
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
No slaves found. See --recursion-method if host h=127.1,P=12345 has slaves.
|
||||||
|
Not checking slave lag because no slaves were found and --check-slave-lag was not specified.
|
||||||
|
Operation, tries, wait:
|
||||||
|
analyze_table, 10, 1
|
||||||
|
copy_rows, 10, 0.25
|
||||||
|
create_triggers, 10, 1
|
||||||
|
drop_triggers, 10, 1
|
||||||
|
swap_tables, 10, 1
|
||||||
|
update_foreign_keys, 10, 1
|
||||||
|
Altering `bug_1045317`.`bits`...
|
||||||
|
TS Dropping triggers...
|
||||||
|
TS Dropped triggers OK.
|
||||||
|
# Event Count
|
||||||
|
# ================== =====
|
||||||
|
# INSERT 1
|
||||||
|
# mysql_warning_1592 1
|
||||||
|
Successfully altered `bug_1045317`.`bits`.
|
||||||
|
Creating new table...
|
||||||
|
Created new table bug_1045317._bits_new OK.
|
||||||
|
Altering new table...
|
||||||
|
Altered `bug_1045317`.`_bits_new` OK.
|
||||||
|
TS Creating triggers...
|
||||||
|
TS Created triggers OK.
|
||||||
|
TS Copying approximately 3 rows...
|
||||||
|
TS Copied rows OK.
|
||||||
|
TS Analyzing new table...
|
||||||
|
TS Swapping tables...
|
||||||
|
TS Swapped original and new tables OK.
|
||||||
|
TS Dropping old table...
|
||||||
|
TS Dropped old table `bug_1045317`.`_bits_old` OK.
|
||||||
@@ -48,7 +48,7 @@ else {
|
|||||||
# worse. This is a random stab in the dark. There is a problem either way.)
|
# worse. This is a random stab in the dark. There is a problem either way.)
|
||||||
my $master_dsn = 'h=127.1,P=12345,u=msandbox,p=msandbox';
|
my $master_dsn = 'h=127.1,P=12345,u=msandbox,p=msandbox';
|
||||||
my @args = ($master_dsn, qw(--set-vars innodb_lock_wait_timeout=3),
|
my @args = ($master_dsn, qw(--set-vars innodb_lock_wait_timeout=3),
|
||||||
'--progress', 'time,1', '--max-load', '', '--chunk-size', '500');
|
'--progress', 'time,2', '--max-load', '', '--chunk-size', '500');
|
||||||
my $output;
|
my $output;
|
||||||
my $row;
|
my $row;
|
||||||
my $scripts = "$trunk/t/pt-table-checksum/scripts/";
|
my $scripts = "$trunk/t/pt-table-checksum/scripts/";
|
||||||
|
|||||||
Reference in New Issue
Block a user