mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 21:19:59 +00:00
Updated Quoter and ChangeHandler in all the modules
This commit is contained in:
@@ -2521,11 +2521,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -1706,11 +1706,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -38,11 +38,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -1436,11 +1436,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -1063,11 +1063,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -2360,11 +2360,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -411,11 +411,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -4106,11 +4106,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -2270,11 +2270,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -1436,11 +1436,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -411,11 +411,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -38,11 +38,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -2034,11 +2034,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -1513,11 +1513,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
@@ -3412,10 +3413,13 @@ sub make_UPDATE {
|
|||||||
else {
|
else {
|
||||||
@cols = $self->sort_cols($row);
|
@cols = $self->sort_cols($row);
|
||||||
}
|
}
|
||||||
|
my $types = $self->{tbl_struct}->{type_for};
|
||||||
return "UPDATE $self->{dst_db_tbl} SET "
|
return "UPDATE $self->{dst_db_tbl} SET "
|
||||||
. join(', ', map {
|
. join(', ', map {
|
||||||
|
my $is_char = ($types->{$_} || '') =~ m/char|text/i;
|
||||||
$self->{Quoter}->quote($_)
|
$self->{Quoter}->quote($_)
|
||||||
. '=' . $self->{Quoter}->quote_val($row->{$_})
|
. '=' . $self->{Quoter}->quote_val($row->{$_},
|
||||||
|
is_char => $is_char);
|
||||||
} grep { !$in_where{$_} } @cols)
|
} grep { !$in_where{$_} } @cols)
|
||||||
. " WHERE $where LIMIT 1";
|
. " WHERE $where LIMIT 1";
|
||||||
}
|
}
|
||||||
@@ -3449,11 +3453,15 @@ sub make_row {
|
|||||||
else {
|
else {
|
||||||
@cols = $self->sort_cols($row);
|
@cols = $self->sort_cols($row);
|
||||||
}
|
}
|
||||||
my $q = $self->{Quoter};
|
my $q = $self->{Quoter};
|
||||||
|
my $type_for = $self->{tbl_struct}->{type_for};
|
||||||
return "$verb INTO $self->{dst_db_tbl}("
|
return "$verb INTO $self->{dst_db_tbl}("
|
||||||
. join(', ', map { $q->quote($_) } @cols)
|
. join(', ', map { $q->quote($_) } @cols)
|
||||||
. ') VALUES ('
|
. ') VALUES ('
|
||||||
. join(', ', map { $q->quote_val($_) } @{$row}{@cols} )
|
. join(', ', map {
|
||||||
|
my $is_char = ($type_for->{$_} || '') =~ m/char|text/i;
|
||||||
|
$q->quote_val($row->{$_},
|
||||||
|
is_char => $is_char) } @cols )
|
||||||
. ')';
|
. ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3462,7 +3470,9 @@ sub make_where_clause {
|
|||||||
my @clauses = map {
|
my @clauses = map {
|
||||||
my $val = $row->{$_};
|
my $val = $row->{$_};
|
||||||
my $sep = defined $val ? '=' : ' IS ';
|
my $sep = defined $val ? '=' : ' IS ';
|
||||||
$self->{Quoter}->quote($_) . $sep . $self->{Quoter}->quote_val($val);
|
my $is_char = ($self->{tbl_struct}->{type_for}->{$_} || '') =~ m/char|text/i;
|
||||||
|
$self->{Quoter}->quote($_) . $sep . $self->{Quoter}->quote_val($val,
|
||||||
|
is_char => $is_char);
|
||||||
} @$cols;
|
} @$cols;
|
||||||
return join(' AND ', @clauses);
|
return join(' AND ', @clauses);
|
||||||
}
|
}
|
||||||
|
@@ -5487,11 +5487,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
|
@@ -852,11 +852,12 @@ sub quote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub quote_val {
|
sub quote_val {
|
||||||
my ( $self, $val ) = @_;
|
my ( $self, $val, %args ) = @_;
|
||||||
|
|
||||||
return 'NULL' unless defined $val; # undef = NULL
|
return 'NULL' unless defined $val; # undef = NULL
|
||||||
return "''" if $val eq ''; # blank string = ''
|
return "''" if $val eq ''; # blank string = ''
|
||||||
return $val if $val =~ m/^0x[0-9a-fA-F]+$/; # hex data
|
return $val if $val =~ m/^0x[0-9a-fA-F]+$/ # quote hex data
|
||||||
|
&& !$args{is_char}; # unless is_char is true
|
||||||
|
|
||||||
$val =~ s/(['\\])/\\$1/g;
|
$val =~ s/(['\\])/\\$1/g;
|
||||||
return "'$val'";
|
return "'$val'";
|
||||||
@@ -4646,10 +4647,13 @@ sub make_UPDATE {
|
|||||||
else {
|
else {
|
||||||
@cols = $self->sort_cols($row);
|
@cols = $self->sort_cols($row);
|
||||||
}
|
}
|
||||||
|
my $types = $self->{tbl_struct}->{type_for};
|
||||||
return "UPDATE $self->{dst_db_tbl} SET "
|
return "UPDATE $self->{dst_db_tbl} SET "
|
||||||
. join(', ', map {
|
. join(', ', map {
|
||||||
|
my $is_char = ($types->{$_} || '') =~ m/char|text/i;
|
||||||
$self->{Quoter}->quote($_)
|
$self->{Quoter}->quote($_)
|
||||||
. '=' . $self->{Quoter}->quote_val($row->{$_})
|
. '=' . $self->{Quoter}->quote_val($row->{$_},
|
||||||
|
is_char => $is_char);
|
||||||
} grep { !$in_where{$_} } @cols)
|
} grep { !$in_where{$_} } @cols)
|
||||||
. " WHERE $where LIMIT 1";
|
. " WHERE $where LIMIT 1";
|
||||||
}
|
}
|
||||||
@@ -4683,11 +4687,15 @@ sub make_row {
|
|||||||
else {
|
else {
|
||||||
@cols = $self->sort_cols($row);
|
@cols = $self->sort_cols($row);
|
||||||
}
|
}
|
||||||
my $q = $self->{Quoter};
|
my $q = $self->{Quoter};
|
||||||
|
my $type_for = $self->{tbl_struct}->{type_for};
|
||||||
return "$verb INTO $self->{dst_db_tbl}("
|
return "$verb INTO $self->{dst_db_tbl}("
|
||||||
. join(', ', map { $q->quote($_) } @cols)
|
. join(', ', map { $q->quote($_) } @cols)
|
||||||
. ') VALUES ('
|
. ') VALUES ('
|
||||||
. join(', ', map { $q->quote_val($_) } @{$row}{@cols} )
|
. join(', ', map {
|
||||||
|
my $is_char = ($type_for->{$_} || '') =~ m/char|text/i;
|
||||||
|
$q->quote_val($row->{$_},
|
||||||
|
is_char => $is_char) } @cols )
|
||||||
. ')';
|
. ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4696,7 +4704,9 @@ sub make_where_clause {
|
|||||||
my @clauses = map {
|
my @clauses = map {
|
||||||
my $val = $row->{$_};
|
my $val = $row->{$_};
|
||||||
my $sep = defined $val ? '=' : ' IS ';
|
my $sep = defined $val ? '=' : ' IS ';
|
||||||
$self->{Quoter}->quote($_) . $sep . $self->{Quoter}->quote_val($val);
|
my $is_char = ($self->{tbl_struct}->{type_for}->{$_} || '') =~ m/char|text/i;
|
||||||
|
$self->{Quoter}->quote($_) . $sep . $self->{Quoter}->quote_val($val,
|
||||||
|
is_char => $is_char);
|
||||||
} @$cols;
|
} @$cols;
|
||||||
return join(' AND ', @clauses);
|
return join(' AND ', @clauses);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user