Commit 56d5e56c authored by monty@mysql.com's avatar monty@mysql.com

Merge

parents f214e2a0 d6f601c8
...@@ -8,6 +8,7 @@ use File::Path; ...@@ -8,6 +8,7 @@ use File::Path;
use DBI; use DBI;
use Sys::Hostname; use Sys::Hostname;
use File::Copy; use File::Copy;
use File::Temp;
=head1 NAME =head1 NAME
...@@ -626,7 +627,6 @@ sub copy_files { ...@@ -626,7 +627,6 @@ sub copy_files {
sub copy_index sub copy_index
{ {
my ($method, $files, $source, $target) = @_; my ($method, $files, $source, $target) = @_;
my $tmpfile="$opt_tmpdir/mysqlhotcopy$$";
print "Copying indices for ".@$files." files...\n" unless $opt{quiet}; print "Copying indices for ".@$files." files...\n" unless $opt{quiet};
foreach my $file (@$files) foreach my $file (@$files)
...@@ -652,23 +652,23 @@ sub copy_index ...@@ -652,23 +652,23 @@ sub copy_index
} }
close OUTPUT || die "Error on close of $to: $!\n"; close OUTPUT || die "Error on close of $to: $!\n";
} }
elsif ($opt{method} eq 'scp') elsif ($opt{method} =~ /^scp\b/)
{ {
my $tmp=$tmpfile; my ($fh, $tmp)=tempfile('mysqlhotcopy-XXXXXX', DIR => $opt_tmpdir);
open(OUTPUT,">$tmp") || die "Can\'t create file $tmp: $!\n"; die "Can\'t create/open file in $opt_tmpdir\n";
if (syswrite(OUTPUT,$buff) != length($buff)) if (syswrite($fh,$buff) != length($buff))
{ {
die "Error when writing data to $tmp: $!\n"; die "Error when writing data to $tmp: $!\n";
} }
close OUTPUT || die "Error on close of $tmp: $!\n"; close $fh || die "Error on close of $tmp: $!\n";
safe_system("scp $tmp $to"); safe_system("$opt{method} $tmp $to");
unlink $tmp;
} }
else else
{ {
die "Can't use unsupported method '$opt{method}'\n"; die "Can't use unsupported method '$opt{method}'\n";
} }
} }
unlink "$tmpfile" if ($opt{method} eq 'scp');
} }
......
...@@ -635,6 +635,8 @@ int mysqld_show_variables(THD *thd,const char *wild); ...@@ -635,6 +635,8 @@ int mysqld_show_variables(THD *thd,const char *wild);
int mysqld_show(THD *thd, const char *wild, show_var_st *variables, int mysqld_show(THD *thd, const char *wild, show_var_st *variables,
enum enum_var_type value_type, enum enum_var_type value_type,
pthread_mutex_t *mutex); pthread_mutex_t *mutex);
int mysql_find_files(THD *thd,List<char> *files, const char *db,
const char *path, const char *wild, bool dir);
int mysqld_show_charsets(THD *thd,const char *wild); int mysqld_show_charsets(THD *thd,const char *wild);
int mysqld_show_collations(THD *thd,const char *wild); int mysqld_show_collations(THD *thd,const char *wild);
int mysqld_show_storage_engines(THD *thd); int mysqld_show_storage_engines(THD *thd);
......
...@@ -37,9 +37,6 @@ static TYPELIB grant_types = { sizeof(grant_names)/sizeof(char **), ...@@ -37,9 +37,6 @@ static TYPELIB grant_types = { sizeof(grant_names)/sizeof(char **),
grant_names}; grant_names};
#endif #endif
static int mysql_find_files(THD *thd,List<char> *files, const char *db,
const char *path, const char *wild, bool dir);
static int static int
store_create_info(THD *thd, TABLE *table, String *packet); store_create_info(THD *thd, TABLE *table, String *packet);
...@@ -361,7 +358,7 @@ int mysqld_show_column_types(THD *thd) ...@@ -361,7 +358,7 @@ int mysqld_show_column_types(THD *thd)
} }
static int int
mysql_find_files(THD *thd,List<char> *files, const char *db,const char *path, mysql_find_files(THD *thd,List<char> *files, const char *db,const char *path,
const char *wild, bool dir) const char *wild, bool dir)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment