mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 05:00:45 +00:00
Merge branch '3.0' into PT-63
This commit is contained in:
@@ -680,7 +680,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1409,7 +1409,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1407,7 +1407,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -757,7 +757,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -753,7 +753,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1744,7 +1744,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -681,7 +681,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1173,7 +1173,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -682,7 +682,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -752,7 +752,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1518,7 +1518,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1334,7 +1334,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -762,7 +762,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -770,7 +770,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -2002,7 +2002,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -683,7 +683,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -755,7 +755,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -690,7 +690,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -907,7 +907,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -2431,7 +2431,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -770,7 +770,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1775,7 +1775,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1999,7 +1999,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -759,7 +759,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -1356,7 +1356,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
@@ -841,7 +841,11 @@ sub _validate_type {
|
||||
if (!$opt->{attributes}->{repeatable}) {
|
||||
$opt->{value} = $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
} else {
|
||||
push @{$opt->{value}}, $self->{DSNParser}->parse($val, $prev, $defaults);
|
||||
my $values = [];
|
||||
for my $dsn_string (@$val) {
|
||||
push @$values, $self->{DSNParser}->parse($dsn_string, $prev, $defaults);
|
||||
}
|
||||
$opt->{value} = $values;
|
||||
}
|
||||
}
|
||||
elsif ( $val && $opt->{type} eq 'z' ) { # type size
|
||||
|
BIN
sandbox/servers/5.7/data.tar.gz
Executable file → Normal file
BIN
sandbox/servers/5.7/data.tar.gz
Executable file → Normal file
Binary file not shown.
@@ -586,10 +586,9 @@ CREATE TABLE `time_zone_transition_type` (
|
||||
-- Table structure for table `user`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `user`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `user` (
|
||||
CREATE TABLE IF NOT EXISTS `user` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
|
@@ -26,4 +26,4 @@ log-error = /tmp/PORT/data/mysqld.log
|
||||
innodb_lock_wait_timeout = 3
|
||||
general_log
|
||||
general_log_file = genlog
|
||||
performance_schema = on
|
||||
performance_schema = ON
|
||||
|
@@ -26,4 +26,4 @@ log-error = /tmp/PORT/data/mysqld.log
|
||||
innodb_lock_wait_timeout = 3
|
||||
general_log
|
||||
general_log_file = genlog
|
||||
performance_schema = on
|
||||
performance_schema = ON
|
||||
|
@@ -15,7 +15,7 @@ use OptionParser;
|
||||
use DSNParser;
|
||||
use PerconaTest;
|
||||
|
||||
use Test::More tests => 161;
|
||||
use Test::More tests => 162;
|
||||
my $o = new OptionParser(
|
||||
description => 'OptionParser.t parses command line options.',
|
||||
usage => "$PROGRAM_NAME <options>",
|
||||
@@ -1736,7 +1736,7 @@ is_deeply(
|
||||
{
|
||||
A => undef,
|
||||
D => 'test',
|
||||
F => undef,
|
||||
F =>undef,
|
||||
P => '12346',
|
||||
S => undef,
|
||||
h => '127.1',
|
||||
@@ -1746,6 +1746,47 @@ is_deeply(
|
||||
'Copies DSN values correctly (issue 460)'
|
||||
);
|
||||
|
||||
# Test DSN can be repeatable
|
||||
$o = new OptionParser(
|
||||
description => 'OptionParser.t parses command line options.',
|
||||
usage => "$PROGRAM_NAME <options>"
|
||||
);
|
||||
# Hack DSNParser into OptionParser. This is just for testing.
|
||||
$o->{DSNParser} = $dp;
|
||||
$o->_parse_specs(
|
||||
{ spec => 'rep=d', desc => 'source', attributes => { repeatable => 1}, },
|
||||
);
|
||||
@ARGV = (
|
||||
'--rep', 'h=127.1,P=12345,D=test,u=bob,p=foo', '--rep', 'h=127.1,P=12346',
|
||||
);
|
||||
$o->get_opts();
|
||||
my $ddest_dsn = $o->get('rep');
|
||||
is_deeply(
|
||||
$ddest_dsn,
|
||||
[
|
||||
{
|
||||
A => undef,
|
||||
u => 'bob',
|
||||
D => 'test',
|
||||
h => '127.1',
|
||||
P => '12345',
|
||||
S => undef,
|
||||
p => 'foo',
|
||||
F => undef
|
||||
},
|
||||
{
|
||||
p => undef,
|
||||
F => undef,
|
||||
u => undef,
|
||||
D => undef,
|
||||
A => undef,
|
||||
P => '12346',
|
||||
S => undef,
|
||||
h => '127.1'
|
||||
}
|
||||
],
|
||||
'DSN type can be repeatable'
|
||||
);
|
||||
# #############################################################################
|
||||
# Issue 248: Add --user, --pass, --host, etc to all tools
|
||||
# #############################################################################
|
||||
|
Reference in New Issue
Block a user