Commit ab69b249 authored by unknown's avatar unknown
Browse files

Fix handling of table-name matching in mysqlhotcopy when newer versions of

DBD::mysql that quote table names are used by removing the quoting. Also fix
a bug that stripped all '~' characters out of the table regex instead of
just the leading one used to negate the expression. (Bug #8136)


scripts/mysqlhotcopy.sh:
  remove quotes around table names
parent 4bb1c716
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -272,10 +272,7 @@ foreach my $rdb ( @db_desc ) {
    my $negated;
    if ($rdb->{t_regex}) {
        $t_regex = $rdb->{t_regex};        ## assign temporary regex
        $negated = $t_regex =~ tr/~//d;    ## remove and count
                                           ## negation operator: we
                                           ## don't allow ~ in table
                                           ## names
        $negated = $t_regex =~ s/^~//;     ## note and remove negation operator

        $t_regex = qr/$t_regex/;           ## make regex string from
                                           ## user regex
@@ -820,6 +817,13 @@ sub get_list_of_tables {
    });

    my @dbh_tables = eval { $dbh->tables() };

    ## Remove quotes around table names
    my $quote = $dbh->get_info(29); # SQL_IDENTIFIER_QUOTE_CHAR
    if ($quote) {
      foreach (@dbh_tables) { s/^$quote(.*)$quote$/$1/; }
    }

    $dbh->disconnect();
    return @dbh_tables;
}