~percona-toolkit-dev/percona-toolkit/pqd-enhanced-resume-file

« back to all changes in this revision

Viewing changes to t/pt-archiver/bulk_insert.t

  • Committer: Brian Fraser
  • Date: 2013-04-16 20:51:00 UTC
  • mfrom: (568.3.1 percona-toolkit)
  • Revision ID: brian.fraser@percona.com-20130416205100-74pcwysnya1o61l0
Merged fix-1127450-pt-archiver-bulk-insert-encoding

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
use English qw(-no_match_vars);
12
12
use Test::More;
13
13
 
 
14
use charnames ':full';
 
15
 
14
16
use PerconaTest;
15
17
use Sandbox;
16
18
require "$trunk/bin/pt-archiver";
85
87
);
86
88
 
87
89
# #############################################################################
 
90
# pt-archiver wide character errors / corrupted data with UTF-8 + bulk-insert
 
91
# https://bugs.launchpad.net/percona-toolkit/+bug/1127450
 
92
# #############################################################################
 
93
{
 
94
my $utf8_dbh = $sb->get_dbh_for('master', { mysql_enable_utf8 => 1, AutoCommit => 1 });
 
95
 
 
96
$sb->load_file('master', 't/pt-archiver/samples/bug_1127450.sql');
 
97
my $sql = qq{INSERT INTO `bug_1127450`.`original` VALUES (1, "\N{KATAKANA LETTER NI}")};
 
98
$utf8_dbh->do($sql);
 
99
 
 
100
$output = output(
 
101
   sub { pt_archiver::main(qw(--no-ascend --limit 50 --bulk-insert),
 
102
      qw(--bulk-delete --where 1=1 --statistics --charset utf8),
 
103
      '--source', "L=1,D=bug_1127450,t=original,F=$cnf",
 
104
      '--dest',   "t=copy") }, stderr => 1
 
105
);
 
106
 
 
107
my (undef, $val) = $utf8_dbh->selectrow_array('select * from bug_1127450.copy');
 
108
 
 
109
ok(
 
110
   utf8::is_utf8($val),
 
111
   "--bulk-insert preserves UTF8ness"
 
112
);
 
113
 
 
114
is(
 
115
   $val,
 
116
   "\N{KATAKANA LETTER NI}",
 
117
   "--bulk-insert can handle utf8 characters"
 
118
);
 
119
 
 
120
unlike($output, qr/Wide character/, "no wide character warnings")
 
121
 
 
122
}
 
123
# #############################################################################
88
124
# Done.
89
125
# #############################################################################
90
126
$sb->wipe_clean($dbh);