Merge lp:~percona-toolkit-dev/percona-toolkit/pt-online-schema-change-not-properly-detecting-foreign-keys-1315130 into lp:~percona-toolkit-dev/percona-toolkit/release-2.2.9

Proposed by Frank Cizmich
Status: Merged
Merged at revision: 609
Proposed branch: lp:~percona-toolkit-dev/percona-toolkit/pt-online-schema-change-not-properly-detecting-foreign-keys-1315130
Merge into: lp:~percona-toolkit-dev/percona-toolkit/release-2.2.9
Diff against target: 2558 lines (+2492/-1) (has conflicts)
6 files modified
Changelog (+5/-0)
bin/pt-online-schema-change (+1/-1)
config/deb/changelog (+17/-0)
docs/percona-toolkit.pod (+4/-0)
docs/release_notes.rst (+2387/-0)
t/pt-online-schema-change/bug-1315130.t (+78/-0)
Text conflict in Changelog
Text conflict in config/deb/changelog
Text conflict in docs/percona-toolkit.pod
Text conflict in docs/release_notes.rst
To merge this branch: bzr merge lp:~percona-toolkit-dev/percona-toolkit/pt-online-schema-change-not-properly-detecting-foreign-keys-1315130
Reviewer Review Type Date Requested Status
Frank Cizmich Pending
Review via email: mp+225539@code.launchpad.net

Description of the change

Instead of looking for the parent table in the child table's own schema (where the parent table might not actually be) we now look for it in the contraints "referenced_schema", where it actually is.
This lookup is done in table: information_schema.key_column_usage

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Changelog'
2--- Changelog 2014-06-05 07:24:48 +0000
3+++ Changelog 2014-07-03 18:13:52 +0000
4@@ -1,7 +1,12 @@
5 Changelog for Percona Toolkit
6
7+<<<<<<< TREE
8 v2.2.8 released 2014-06-04
9
10+=======
11+v2.2.8 released 2014-05-30
12+
13+>>>>>>> MERGE-SOURCE
14 * Removed pt-agent
15 * Added pt-slave-restart GTID support
16 * Added pt-table-checksum --plugin
17
18=== modified file 'bin/pt-online-schema-change'
19--- bin/pt-online-schema-change 2014-06-05 07:24:48 +0000
20+++ bin/pt-online-schema-change 2014-07-03 18:13:52 +0000
21@@ -9815,7 +9815,7 @@
22
23 my $sql = "SELECT table_schema, table_name "
24 . "FROM information_schema.key_column_usage "
25- . "WHERE constraint_schema='$tbl->{db}' "
26+ . "WHERE referenced_table_schema='$tbl->{db}' "
27 . "AND referenced_table_name='$tbl->{tbl}'";
28 PTDEBUG && _d($sql);
29 my $rows = $cxn->dbh()->selectall_arrayref($sql);
30
31=== modified file 'config/deb/changelog'
32--- config/deb/changelog 2014-06-05 07:24:48 +0000
33+++ config/deb/changelog 2014-07-03 18:13:52 +0000
34@@ -1,3 +1,4 @@
35+<<<<<<< TREE
36 percona-toolkit (2.2.8) unstable; urgency=low
37
38 * Removed pt-agent
39@@ -12,6 +13,22 @@
40
41 -- Percona Toolkit Developers <toolkit-dev@percona.com> Thu, 05 Jun 2014 07:07:52 +0000
42
43+=======
44+percona-toolkit (2.2.8) unstable; urgency=low
45+
46+ * Removed pt-agent
47+ * Added pt-slave-restart GTID support
48+ * Added pt-table-checksum --plugin
49+ * Fixed bug 1304062: --ignore-tables does not work correctly
50+ * Fixed bug 1295667: pt-deadlock-logger logs incorrect ts
51+ * Fixed bug 1254233: pt-mysql-summary blank InnoDB section for 5.6
52+ * Fixed bug 1286250: pt-online-schema-change requests password twice
53+ * Fixed bug 965553: pt-query-digest dosn't fingerprint true/false literals correctly
54+ * Fixed bug 290911: pt-show-grant --ask-pass prints "Enter password" to STDOUT
55+
56+ -- Percona Toolkit Developers <toolkit-dev@percona.com> Fri, 30 May 2014 16:14:53 +0000
57+
58+>>>>>>> MERGE-SOURCE
59 percona-toolkit (2.2.7) unstable; urgency=low
60
61 * Fixed bug 1279502: --version-check behaves like spyware
62
63=== modified file 'docs/percona-toolkit.pod'
64--- docs/percona-toolkit.pod 2014-06-05 07:24:48 +0000
65+++ docs/percona-toolkit.pod 2014-07-03 18:13:52 +0000
66@@ -557,6 +557,10 @@
67
68 =head1 VERSION
69
70+<<<<<<< TREE
71 Percona Toolkit v2.2.8 released 2014-06-05
72+=======
73+Percona Toolkit v2.2.8 released 2014-05-30
74+>>>>>>> MERGE-SOURCE
75
76 =cut
77
78=== modified file 'docs/release_notes.rst'
79--- docs/release_notes.rst 2014-06-05 07:24:48 +0000
80+++ docs/release_notes.rst 2014-07-03 18:13:52 +0000
81@@ -1,3 +1,4 @@
82+<<<<<<< TREE
83 Release Notes
84 *************
85
86@@ -2395,3 +2396,2389 @@
87 ---------
88
89 * Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit.
90+=======
91+Release Notes
92+*************
93+
94+v2.2.8 released 2014-06-04
95+==========================
96+
97+Percona Toolkit 2.2.8 has been released. This release has two new features and six bug fixes.
98+
99+New Features:
100+
101+* pt-agent has been replaced by percona-agent. More information on percona-agent can be found in the `Introducing the 3-Minute MySQL Monitor <http://www.mysqlperformanceblog.com/2014/05/23/3-minute-mysql-monitor/>`_ blogpost.
102+* pt-slave-restart now supports MySQL 5.6 global transaction IDs.
103+
104+* pt-table-checkum now has new --plugin option which is similar to pt-online-schema-change --plugin
105+
106+Bugs Fixed:
107+
108+* Fixed bug 1254233: pt-mysql-summary was showing blank InnoDB section for 5.6 because it was using ``have_innodb`` variable which was removed in MySQL 5.6.
109+
110+* Fixed bug 965553: pt-query-digest didn't fingerprint true/false literals correctly.
111+
112+* Fixed bug 1286250: pt-online-schema-change was requesting password twice.
113+
114+* Fixed bug 1295667: pt-deadlock-logger was logging incorrect timestamp because tool wasn't aware of the time-zones.
115+
116+* Fixed bug 1304062: when multiple tables were specified with pt-table-checksum --ignore-tables, only one of them would be ignored.
117+
118+* Fixed bug : pt-show-grant --ask-pass option was asking for password in ``STDOUT`` instead of ``STDERR`` where it could be seen.
119+
120+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
121+
122+v2.2.7 released 2014-02-20
123+==========================
124+
125+Percona Toolkit 2.2.7 has been released. This release has only one bug fix.
126+
127+* Fixed bug 1279502: --version-check behaves like spyware
128+
129+Although never used, --version-check had the ability to get any local program's version. This fix removed that ability.
130+
131+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
132+
133+v2.2.6 released 2013-12-18
134+==========================
135+
136+Percona Toolkit 2.2.6 has been released. This release has 16 bug fixes and a few new features. One bug fix is very important, so 2.2 users are strongly encouraged to upgrade:
137+
138+* Fixed bug 1223458: pt-table-sync deletes child table rows
139+
140+Buried in the pt-table-sync docs is this warning:
141+
142+ Also be careful with tables that have foreign key constraints with C<ON DELETE>
143+ or C<ON UPDATE> definitions because these might cause unintended changes on the
144+ child tables.
145+
146+Until recently, either no one had this problem, or no one reported it, or no one realized that pt-table-sync caused it. In the worst case, pt-table-sync could delete all rows in child tables, which is quite surprising and bad. As of 2.2.6, pt-table-sync has option --[no]check-child-tables which is on by default. In cases were this "bug" can happen, pt-table-sync prints a warning and skips the table. Read the option's docs to learn more.
147+
148+Another good bug fix is:
149+
150+* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
151+
152+After saying "pt-duplicate-key-checker hasn't had a bug in years" at enough conferences, users proved us wrong--thanks! The tool is better now.
153+
154+* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
155+
156+This was poor feedback from the tool more than a bug. There was a point in the tool where it waited forever for slaves to catch up, but it did this silently. Now the tool reports --progress while it's waiting and it reports which slaves, if any, it found and intends to check. In short: its feedback delivers a better user experience.
157+
158+Finally, this bug (more like a feature request/change) might be a backwards-incompatible change:
159+
160+* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
161+
162+The change is that pt-mysql-summary no longer prompts to dump and summarize schemas. To do this, you must specify --databases or, a new option, --all-databases. Several users said this behavior was better, so we made the change even though some might consider it a backwards-incompatible change.
163+
164+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
165+
166+Changelog
167+---------
168+
169+* Added pt-query-digest support for Percona Server slow log rate limiting
170+* Added pt-agent --ping
171+* Added pt-mysql-summary --all-databases
172+* Added pt-stalk --sleep-collect
173+* Added pt-table-sync --[no]check-child-tables
174+* Fixed bug 1249150: PTDEBUG prints some info to STDOUT
175+* Fixed bug 1248363: pt-agent requires restart after changing MySQL options
176+* Fixed bug 1248778: pt-agent --install on PXC is not documented
177+* Fixed bug 1250973: pt-agent --install doesn't check for previous install
178+* Fixed bug 1250968: pt-agent --install suggest MySQL user isn't quoted
179+* Fixed bug 1251004: pt-agent --install error about slave is confusing
180+* Fixed bug 1251726: pt-agent --uninstall fails if agent is running
181+* Fixed bug 1248785: pt-agent docs don't list privs required for its MySQL user
182+* Fixed bug 1215016: pt-deadlock-logger docs use pt-fk-error-logger
183+* Fixed bug 1201443: pt-duplicate-key-checker error when EXPLAIN key_len=0
184+* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
185+* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
186+* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
187+* Fixed bug 1249149: pt-query-digest stats prints to STDOUT instead of STDERR
188+* Fixed bug 1071979: pt-stak error parsing df with NFS
189+* Fixed bug 1223458: pt-table-sync deletes child table rows
190+
191+v2.2.5 released 2013-10-16
192+==========================
193+
194+Percona Toolkit 2.2.5 has been released. This release has four new features and a number of bugfixes.
195+
196+Query_time histogram has been added to the pt-query-digest JSON output, not the actual chart but the values necessary to render the chart later, so the values for each bucket.
197+
198+As of pt-table-checksum 2.2.5, skipped chunks cause a non-zero exit status. An exit status of zero or 32 is equivalent to a zero exit status with skipped chunks in previous versions of the tool.
199+
200+New --no-drop-triggers option has been implemented for pt-online-schema-change in case users want to rename the tables manually, when the load is low.
201+
202+New --new-table-name option has been added to pt-online-schema-change which can be used to specify the temporary table name.
203+
204+* Fixed bug #1199589: pt-archiver would delete the data even with the --dry-run option.
205+
206+* Fixed bug #821692: pt-query-digest didn't distill LOAD DATA correctly.
207+
208+* Fixed bug #984053: pt-query-digest didn't distill INSERT/REPLACE without INTO correctly.
209+
210+* Fixed bug #1206677: pt-agent docs were referencing wrong web address.
211+
212+* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster would crash if no nodes were found.
213+
214+Percona Toolkit packages can be downloaded from
215+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
216+Repositories (http://www.percona.com/software/repositories
217+
218+Changelog
219+---------
220+
221+* Added Query_time histogram bucket counts to pt-query-digest JSON output
222+* Added pt-online-schema-change --[no]drop-triggers option
223+* Fixed bug #1199589: pt-archiver deletes data despite --dry-run
224+* Fixed bug #944051: pt-table-checksum has ambiguous exit status
225+* Fixed bug #1209436: pt-kill --log-dsn may not work on Perl 5.8
226+* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster crashes if no nodes are found
227+* Fixed bug #1215608: pt-online-schema-change new table suffix is hard-coded
228+* Fixed bug #1229861: pt-table-sync quotes float values, can't sync
229+* Fixed bug #821692: pt-query-digest doesn't distill LOAD DATA correctly
230+* Fixed bug #984053: pt-query-digest doesn't distill INSERT/REPLACE without INTO correctly
231+* Fixed bug #1206728: pt-deadlock-logger 2.2 requires DSN on command line
232+* Fixed bug #1226721: pt-agent on CentOS 5 fails to send data
233+* Fixed bug #821690: pt-query-digest doesn't distill IF EXISTS correctly
234+* Fixed bug #1206677: pt-agent docs reference clodu.percona.com
235+
236+v2.2.4 released 2013-07-18
237+==========================
238+
239+Percona Toolkit 2.2.4 has been released. This release two new features and a number of bugfixes.
240+
241+pt-query-digest --output json includes query examples as of v2.2.3. Some people might not want this because it exposes real data. New option, --output json-anon, has been implemented. This option will provide the same data without query examples. It's "anonymous" in the sense that there's no identifying data; nothing more than schema and table structs can be inferred from fingerprints.
242+
243+When using drop swap with pt-online-schema-change there is some production impact. This impact can be measured because tool outputs the current timestamp on lines for operations that may take awhile.
244+
245+* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
246+pt-table-checksum would fail if variable explicit_defaults_for_timestamp was enabled in MySQL 5.6.
247+
248+* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0"
249+Trying to assign 0 to any variable by using --set-vars option would cause “Invalid --set-vars value” message.
250+
251+* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
252+Fixed the typo in the pt-online-schema-change code that could lead to a tool crash when copying the rows.
253+
254+* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
255+pt-table-checksum was using the first non-unique index instead of the one with the highest cardinality due to a sorting bug.
256+
257+Percona Toolkit packages can be downloaded from
258+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
259+Repositories (http://www.percona.com/software/repositories
260+
261+Changelog
262+---------
263+
264+* Added pt-query-digest anonymous JSON output
265+* Added pt-online-schema-change timestamp output
266+* Fixed bug #1136559: pt-table-checksum: Deep recursion on subroutine "SchemaIterator::_iterate_dbh"
267+* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
268+* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0"
269+* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
270+* Fixed bug #1195034: pt-deadlock-logger error: Use of uninitialized value $ts in pattern match (m//)
271+* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
272+* Fixed bug #1168434: pt-upgrade reports differences on NULL
273+* Fixed bug #1172317: pt-sift does not work if pt-stalk did not collect due to a full disk
274+* Fixed bug #1176010: pt-query-digest doesn't group db and `db` together
275+* Fixed bug #1137556: pt-heartbeat docs don't account for --utc
276+* Fixed bug #1168106: pt-variable-advisor has the wrong default value for innodb_max_dirty_pages_pct in 5.5 and 5.6
277+* Fixed bug #1168110: pt-variable-advisor shows key_buffer_size in 5.6 as unconfigured (even though it is)
278+* Fixed bug #1171968: pt-query-digest docs don't mention --type=rawlog
279+* Fixed bug #1174956: pt-query-digest and pt-fingerprint don't strip some multi-line comments
280+
281+
282+v2.2.3 released 2013-06-17
283+==========================
284+
285+Percona Toolkit 2.2.3 has been released which has only two changes: pt-agent
286+and a bug fix for pt-online-schema-change. pt-agent is not a command line
287+tool but a client-side agent for Percona Cloud Tools. Visit
288+https://cloud.percona.com for more information. The pt-online-schema-change
289+bug fix is bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02):
290+"Table 'db._t_new' doesn't exist". This happens when the tool's triggers
291+cannot be dropped.
292+
293+Percona Toolkit packages can be downloaded from
294+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
295+Repositories (http://www.percona.com/software/repositories/).
296+
297+Changelog
298+---------
299+
300+* Added new tool: pt-agent
301+* Fixed bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): Table 'db._t_new' doesn't exist"
302+
303+v2.2.2 released 2013-04-24
304+==========================
305+
306+Percona Toolkit 2.2.2 has been released. This is the second release of
307+the 2.2 series and aims to fix bugs in the previous release and provide
308+usability enhacements to the toolkit.
309+
310+Users may note the revival of the --show-all option in pt-query-digest.
311+This had been removed in 2.2.1, but resulted in too much output in
312+certain cases.
313+
314+A new --recursion-method was added to pt-table-checksum: cluster. This
315+method attempts to auto-discover cluster nodes, alleviating the need to
316+specify cluster node DSNs in a DSN table (--recursion-method=dsn).
317+
318+The following highlights some of the more interesting and "hot" bugs in
319+this release:
320+
321+* Bug #1127450: pt-archiver --bulk-insert may corrupt data
322+
323+pt-archiver --bulk-insert didn't work with --charset UTF-8. This revealed
324+a case where the tool could corrupt data by double-encoding. This is now
325+fixed, but remains relatively dangerous if using DBD::mysql 3.0007 which
326+does not handle UTF-8 properly.
327+
328+* Bug #1163372: pt-heartbeat --utc --check always returns 0
329+
330+Unfortunately, the relatively new --utc option for pt-heart was still
331+broken because "[MySQL] interprets date as a value in the current time zone
332+and converts it to an internal value in UTC." Now the tool works correctly
333+with --utc by specifying "SET time_zone='+0:00'", and older versions of
334+the tool can be made to work by specifying --set-vars "time_zone='+0:00'".
335+
336+* Bug #821502: Some tools don't have --help or --version
337+
338+pt-align, pt-mext, pt-pmp and pt-sift now have both options.
339+
340+This is another solid bug fix release, and all users are encouraged to upgrade.
341+
342+Percona Toolkit packages can be downloaded from
343+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
344+Repositories (http://www.percona.com/software/repositories/).
345+
346+Changelog
347+---------
348+
349+* Added --show-all to pt-query-digest
350+* Added --recursion-method=cluster to pt-table-checksum
351+* Fixed bug 1127450: pt-archiver --bulk-insert may corrupt data
352+* Fixed bug 1163372: pt-heartbeat --utc --check always returns 0
353+* Fixed bug 1156901: pt-query-digest --processlist reports duplicate queries for replication thread
354+* Fixed bug 1160338: pt-query-digest 2.2 prints unwanted debug info on tcpdump parsing errors
355+* Fixed bug 1160918: pt-query-digest 2.2 prints too many string values
356+* Fixed bug 1156867: pt-stalk prints the wrong variable name in verbose mode when --function is used
357+* Fixed bug 1081733: pt-stalk plugins can't access the real --prefix
358+* Fixed bug 1099845: pt-table-checksum pxc same_node function incorrectly uses wsrep_sst_receive_address
359+* Fixed bug 821502: Some tools don't have --help or --version
360+* Fixed bug 947893: Some tools use @@hostname without /*!50038*/
361+* Fixed bug 1082406: An explicitly set wsrep_node_incoming_address may make SHOW STATUS LIKE 'wsrep_incoming_addresses' return a portless address
362+
363+v2.2.1 released 2013-03-14
364+==========================
365+
366+Percona Toolkit 2.2.1 has been released. This is the first release in
367+the new 2.2 series which supersedes the 2.1 series and renders the 2.0
368+series obsolete. We plan to do one more bug fix release for 2.1 (2.1.10),
369+but otherwise all new development and fixes and will now focus on 2.2.
370+
371+Percona Toolkit 2.2 has been several months in the making, and it turned
372+out very well, with many more new features, changes, and improvements than
373+originally anticipated. Here are the highlights:
374+
375+----
376+
377+* Official support for MySQL 5.6
378+
379+We started beta support for MySQL 5.6 in 2.1.8 when 5.6 was still beta.
380+Now that 5.6 is GA, so is our support for it. Check out the Percona Toolkit
381+supported platforms and versions:
382+http://www.percona.com/mysql-support/policies/percona-toolkit-supported-platforms-and-versions
383+
384+When you upgrade to MySQL 5.6, be sure to upgrade to Percona Toolkit 2.2, too.
385+
386+* Official support for Percona XtraDB Cluster (PXC)
387+
388+We also started beta support for Percona XtraDB Cluster in 2.1.8, but
389+now that support is official in 2.2 because we have had many months to
390+work with PXC and figure out which tools work with it and how. There's
391+still one noticeable omission: pt-table-sync. It's still unclear if
392+or how one would sync a cluster that, in theory, doesn't become out-of-sync.
393+As Percona XtraDB Cluster develops, Percona Toolkit will continue to
394+evolve to support it.
395+
396+* pt-online-schema-change (pt-osc) is much more resilient
397+
398+pt-online-schema-change 2.1 has been a great success, and people have been
399+using it for evermore difficult and challenging tasks. Consequently, we
400+needed to make it "try harder", even though it already tried pretty hard
401+to keep working despite recoverable errors and such. Whereas pt-osc 2.1
402+only retries certain operations, pt-osc 2.2 retries every critical operation,
403+and its tries and wait time between tries for all operations are configurable.
404+Also, we removed --lock-wait-timeout which set innodb_lock_wait_timeout
405+because that now conflicts, or is at least confused with, lock_wait_timeout
406+(introduced in MySQL 5.5) for metadata locks. Now --set-vars is used to
407+set both of these (or any) system variables. For a quick intro to metadata
408+locks and how they may affect you, see Ovais's article:
409+http://www.mysqlperformanceblog.com/2013/02/01/implications-of-metadata-locking-changes-in-mysql-5-5/
410+
411+What does this all mean? In short: pt-online-schema-change 2.2 is far more
412+resilient out of the box. It's also aware of metadata locks now, whereas
413+2.1 was not really aware of them. And it's highly configurable, so you can
414+make the tool try _very_ hard to keep working.
415+
416+* pt-upgrade is brand-new
417+
418+pt-upgrade was written once long ago, thrown into the world, and then never
419+heard from again... until now. Now that we have four base versions of
420+MySQL (5.0, 5.1, 5.5, and 5.6), plus at least four major forks (Percona
421+Server, MariaDB, Percona XtraDB Cluster, and MariaDB Galera Cluster),
422+upgrades are fashionable, so to speak. Problem is: "original" pt-upgrade
423+was too noisy and too complex. pt-upgrade 2.2 is far simpler and far
424+easier to use. It's basically what you expect from such a tool.
425+
426+Moreover, it has a really helpful new feature: "reference results", i.e.
427+saved results from running queries on a server. Granted, this can take
428+_a lot_ of disk space, but it allows you to "run now, compare later."
429+
430+If you're thinking about upgrading, give pt-upgrade a try. It also reads
431+every type of log now (slow, general, binary, and tcpdump), so you shouldn't
432+have a problem finding queries to run and compare.
433+
434+* pt-query-digest is simpler
435+
436+pt-query-digest 2.2 has fewer options now. Basically, we re-focused it
437+on its primary objective: analyzing MySQL query logs. So the ability
438+to parse memcached, Postgres, Apache, and other logs was removed. We
439+also removed several options that probably nobody ever used, and
440+changed/renamed other options to be more logical. The result is a simpler,
441+more focused tool, i.e. less overwhelming.
442+
443+Also, pt-query-digest 2.2 can save results in JSON format (--output=json).
444+This feature is still in development while we determine the optimal
445+JSON structure.
446+
447+* Version check is on by default
448+
449+Way back in 2.1.4, released September/October 2012, we introduced a feature
450+called "version check" into most tools: http://percona.com/version-check
451+It's like a lot of software that automatically checks for updates, but
452+it's also more: it's a free service from Percona that advises when certain
453+programs (Percona Toolkit tools, MySQL, Perl, etc.) are either out of date
454+or are known bad versions. For example, there are two versions of the
455+DBD::mysql Perl module that have problems. And there are certain versions
456+of MySQL that have critical bugs. Version check will warn you about these
457+if your system is running them.
458+
459+What's new in 2.2 is that, whereas this feature (specifically, the option
460+in tools: --version-check) was off by default, now it's on by default.
461+If the IO::Socket::SSL Perl module is installed (easily available through
462+your package manager), it will use a secure (https) connection over the web,
463+else it will use a standard (http) connection.
464+
465+Check out http://percona.com/version-check for more information.
466+
467+* pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player are gone
468+
469+We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player.
470+Granted, no tool is ever really gone: if you need one of these tools,
471+get it from 2.1. pt-log-player is now superseded by Percona Playback
472+(http://www.percona.com/doc/percona-playback/). pt-query-advisor was
473+removed so that we can focus our efforts on its online counterpart instead:
474+https://tools.percona.com/query-advisor. The other tools were special
475+projects that were not widely used.
476+
477+* pt-stalk and pt-mysql-summary have built-in MySQL options
478+
479+No more "pt-stalk -- -h db1 -u me". pt-stalk 2.2 and pt-mysql-summary 2.2
480+have all the standard MySQL options built-in, like other tools: --user,
481+--host, --port, --password, --socket, --defaults-file. So now the command
482+line is what you expect: pt-stalk -h dhb1 -u me.
483+
484+* pt-stalk --no-stalk is no longer magical
485+
486+Originally, pt-stalk --no-stalk was meant to simulate pt-collect, i.e.
487+collect once and exit. To do that, the tool magically set some options
488+and clobbered others, resulting in no way to do repeated collections
489+at intervals. Now --no-stalk means only that: don't stalk, just collect,
490+respecting --interval and --iterations as usual. So to collect once
491+and exit: pt-stalk --no-stalk --iterations 1.
492+
493+* pt-fk-error-logger and pt-deadlock-logger are standardized
494+
495+Similar to the pt-stalk --no-stalk changes, pt-fk-error-logger and
496+pt-deadlock-logger received mini overhauls in 2.2 to make their
497+run-related options (--run-time, --interval, --iterations) standard.
498+If you hadn't noticed, one tool would run forever by default, while
499+the other would run once and exit. And each treated their run-related
500+options a little differently. This magic is gone now: both tools run
501+forever by default, so specify --iterations or --run-time to limit how
502+long they run.
503+
504+----
505+
506+There were other miscellaneous bug fixes, too. See
507+https://launchpad.net/percona-toolkit/+milestone/2.2.1 for the full list.
508+
509+As the first release in a new series, 2.2 features are not yet finalized.
510+In other words, we may change things like the pt-query-digest --output json
511+format in future releases after receiving real-world feedback.
512+
513+Percona Toolkit 2.2 is an exciting release with many helpful new
514+features. Users are encouraged to begin upgrading, particularly given
515+that, except for the forthcoming 2.1.10 release, no more work will be
516+done on 2.1 (unless you're a Percona customer with a support contract or
517+other agreement).
518+
519+If you upgrade from 2.1 to 2.2, be sure to re-read tools' documentation
520+to see what has changed because much as changed for certain tools.
521+
522+Percona Toolkit packages can be downloaded from
523+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
524+Repositories (http://www.percona.com/software/repositories/).
525+
526+Changelog
527+---------
528+
529+* Official support for MySQL 5.6
530+* Official support for Percona XtraDB Cluster
531+* Redesigned pt-query-digest
532+* Redesigned pt-upgrade
533+* Redesigned pt-fk-error-logger
534+* Redesigned pt-deadlock-logger
535+* Changed --set-vars in all tools
536+* Renamed --retries to --tries in pt-online-schema-change
537+* Added --check-read-only to pt-heartbeat
538+* Added MySQL options to pt-mysql-summary
539+* Added MySQL options to pt-stalk
540+* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars)
541+* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars)
542+* Removed pt-query-advisor
543+* Removed pt-tcp-model
544+* Removed pt-trend
545+* Removed pt-log-player
546+* Enabled --version-check by default in all tools
547+* Fixed bug 1008796: Several tools don't have --database
548+* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values
549+* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options
550+* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time
551+* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE
552+* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks
553+* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically
554+* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions
555+* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found
556+
557+v2.1.9 released 2013-02-14
558+==========================
559+
560+Percona Toolkit 2.1.9 has been released. This release primarily aims to
561+restore backwards-compatibility with pt-heartbeat 2.1.7 and older, but it
562+also has important bug fixes for other tools.
563+
564+* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
565+* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
566+
567+The previous release switched the time authority from Perl to MySQL, and from
568+local time to UTC. Unfortunately, these changes caused a loss of precision and,
569+if mixing versions of pt-heartbeat, made the tool report a huge amount of
570+replication lag. This release makes the tool compatible with pt-heartbeat
571+2.1.7 and older again, but the UTC behavior introduced in 2.1.8 is now only
572+available by specifying the new --utc option.
573+
574+* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
575+
576+This is an important bug fix for pt-table-sync: certain chunks from
577+pt-table-checksum resulted in an impossible WHERE, causing the false-positive
578+"Cannot nibble" error, if those chunks had diffs.
579+
580+* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
581+
582+MariaDB 5.5.28 (https://kb.askmonty.org/en/mariadb-5528-changelog/) fixed
583+a bug: "Added warnings for duplicate key errors when using INSERT IGNORE".
584+However, standard MySQL does not warn in this case, despite the docs saying
585+that it should. Since pt-online-schema-change has always intended to ignore
586+duplicate entry errors by using "INSERT IGNORE", it now handles the MariaDB
587+case by also ignoring duplicate entry errors in the code.
588+
589+* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
590+
591+pt-online-schema-change 2.1.9 handles another case of changing the primary key.
592+However, since changing the primary key is tricky, the tool stops if --alter
593+contains "DROP PRIMARY KEY", and you have to specify --no-check-alter to
594+acknowledge this case.
595+
596+* Fixed bug 1099933: pt-stalk is too verbose, fills up log
597+
598+Previously, pt-stalk printed a line for every check. Since the tool is
599+designed to be a long-running daemon, this could result in huge log files
600+with "matched=no" lines. The tool has a new --verbose option which makes it
601+quieter by default.
602+
603+All users should upgrade, but in particular, users of versions 2.1.7 and
604+older are strongly recommended to skip 2.1.8 and go directly to 2.1.9.
605+
606+Users of pt-heartbeat in 2.1.8 who prefer the UTC behavior should keep in
607+mind that they will have to use the --utc option after upgrading.
608+
609+Percona Toolkit packages can be downloaded from
610+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
611+Repositories (http://www.percona.com/software/repositories/).
612+
613+Changelog
614+---------
615+
616+* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
617+* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
618+* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
619+* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
620+* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function
621+* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump
622+* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors
623+* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
624+* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
625+* Fixed bug 1099933: pt-stalk is too verbose, fills up log
626+
627+v2.1.8 released 2012-12-21
628+==========================
629+
630+Percona Toolkit 2.1.8 has been released. This release includes 28 bug fixes, beta support for MySQL 5.6, and extensive support for Percona XtraDB Cluster (PXC). Users intending on running the tools on Percona XtraDB Cluster or MySQL 5.6 should upgrade. The following tools have been verified to work on PXC versions 5.5.28 and newer:
631+
632+* pt-table-chcecksum
633+* pt-online-schema-change
634+* pt-archive
635+* pt-mysql-summary
636+* pt-heartbeat
637+* pt-variable-advisor
638+* pt-config-diff
639+* pt-deadlock-logger
640+
641+However, there are limitations when running these tools on PXC; see the Percona XtraDB Cluster section in each tool's documentation for further details. All other tools, with the exception of pt-slave-find, pt-slave-delay and pt-slave-restart, should also work correctly, but in some cases they have not been modified to take advantage of PXC features, so they may behave differently in future releases.
642+
643+The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
644+
645+* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
646+
647+Slow logs which include timestamps but no query--which can happen if using slow_query_log_timestamp_always in Percona Server--were misparsed, resulting in an erroneous report. Now such no-query events show up in reports as ``/* No query */``.
648+
649+* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
650+
651+The "as" was misparsed and the following word would end up reported as the database; pt-query-digest now handles this correctly.
652+
653+* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
654+
655+Some renamed variables had caused the Percona Server section to work unreliably.
656+
657+* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
658+
659+When using --replicate-check-only, filter options like --databases and --tables were not applied.
660+
661+* Fixed bug 886059: pt-heartbeat handles timezones inconsistently
662+
663+Previously, pt-heartbeat respected the MySQL time zone, but this caused false readings (e.g. very high lag) with slaves running in different time zones. Now pt-heartbeat uses UTC regardless of the server or MySQL time zone.
664+
665+* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
666+
667+Since MyISAM tables can't have foreign keys, and the tool uses the information_schema to find child tables, this could cause unnecessary load on the server.
668+
669+2.1.8 continues the trend of solid bug fix releases, and all 2.1 users are encouraged to upgrade.
670+
671+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
672+
673+Changelog
674+---------
675+
676+* Beta support for MySQL 5.6
677+* Beta support for Percona XtraDB Cluster
678+* pt-online-schema-change: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
679+* pt-table-checksum: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
680+* pt-upgrade: Added --[no]disable-query-cache
681+* Fixed bug 927955: Bad pod2rst transformation
682+* Fixed bug 898665: Bad online docs formatting for --[no]vars
683+* Fixed bug 1022622: pt-config-diff is case-sensitive
684+* Fixed bug 1007938: pt-config-diff doesn't handle end-of-line comments
685+* Fixed bug 917770: pt-config-diff Use of uninitialized value in substitution (s///) at line 1996
686+* Fixed bug 1082104: pt-deadlock-logger doesn't handle usernames with dashes
687+* Fixed bug 886059: pt-heartbeat handles timezones inconsistently
688+* Fixed bug 1086259: pt-kill --log-dsn timestamp is wrong
689+* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
690+* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
691+* Fixed bug 823431: pt-query-advisor hangs on big queries
692+* Fixed bug 996069: pt-query-advisor RES.001 is incorrect
693+* Fixed bug 933465: pt-query-advisor false positive on RES.001
694+* Fixed bug 937234: pt-query-advisor issues wrong RES.001
695+* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
696+* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
697+* Fixed bug 957442: pt-query-digest with custom --group-by throws error
698+* Fixed bug 887638: pt-query-digest prints negative byte offset
699+* Fixed bug 831525: pt-query-digest help output mangled
700+* Fixed bug 932614: pt-slave-restart CHANGE MASTER query causes error
701+* Fixed bug 1046440: pt-stalk purge_samples slows down checks
702+* Fixed bug 986847: pt-stalk does not report NFS iostat
703+* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
704+* Fixed bug 911385: pt-table-checksum v2 fails when --resume + --ignore-database is used
705+* Fixed bug 1041391: pt-table-checksum debug statement for "Chosen hash func" prints undef
706+* Fixed bug 1075638: pt-table-checksum Illegal division by zero at line 7950
707+* Fixed bug 1052475: pt-table-checksum uninitialized value in numeric lt (<) at line 8611
708+* Fixed bug 1078887: Tools let --set-vars clobber the required SQL mode
709+
710+v2.1.7 released 2012-11-19
711+==========================
712+
713+Percona Toolkit 2.1.7 has been released which is a hotfix for two bugs when using pt-table-checksum with Percona XtraDB Cluster:
714+
715+* Bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
716+* Bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes
717+
718+If you're using pt-table-checksum with a Percona XtraDB Cluster, you should upgrade. Otherwise, users can wait until the next full release.
719+
720+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
721+
722+Changelog
723+---------
724+
725+* Fixed bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
726+* Fixed bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes
727+
728+v2.1.6 released 2012-11-13
729+==========================
730+
731+Percona Toolkit 2.1.6 has been released. This release includes 33 bug fixes and three new features: pt-online-schema-change now handles renaming columns without losing data, removing one of the tool's limitations. pt-online-schema-change also got two new options: --default-engine and --statistics. Finally, pt-stalk now has a plugin hook interface, available through the --plugin option. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
732+
733+* Bug 978133: pt-query-digest review table privilege checks don't work
734+
735+The same checks were removed from pt-table-checksum on 2.1.3 and pt-table-sync on 2.1.4, so this just follows suit.
736+
737+* Bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
738+
739+A particularly important fix, as it may stop pt-table-checksum from breaking replication in these setups.
740+
741+* Bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
742+
743+If you run multiple instances of pt-table-checksum on a badly lagged server, actually respecting --run-time stops the instances from divebombing the server when the replica catches up.
744+
745+* Bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
746+
747+Fixed by choosing a key on the new table for the DELETE trigger.
748+
749+* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
750+
751+A follow up to the same fix in the previous release, this adds to warnings for cases in which pt-table-checksum may work incorrectly and require some user intervention: One for the case of master -> cluster, and one for cluster1 -> cluster2.
752+
753+* Bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
754+
755+This bug has hounded the toolkit for quite some time. In some platforms, trying to use LOAD DATA LOCAL INFILE would fail as if the user didn't have enough privileges to perform the operation. This was a misdiagnoses from MySQL; The actual problem was that the libmysqlclient.so provided by some vendors was compiled in a way that disallowed users from using the statement without some extra work. This fix adds an 'L' option to the DSNs the toolkit uses, tells the the tools to explicitly enables LOAD DATA LOCAL INFILE. This affected two pt-archiver and pt-upgrade, so if you are on an effected OS and need to use those, you can simply tag an L=1 to your DSN and everything should start working.
756+
757+* Bug 866075: pt-show-grant doesn't support column-level grants
758+
759+This was actually the 'hottest' bug in the tracker.
760+
761+This is another solid bug fix release, and all 2.1 users are encouraged to upgrade.
762+
763+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
764+
765+Changelog
766+---------
767+
768+* pt-online-schema-change: Columns can now be renamed without data loss
769+* pt-online-schema-change: New --default-engine option
770+* pt-stalk: Plugin hooks available through the --plugin option to extend the tool's functionality
771+* Fixed bug 1069951: --version-check default should be explicitly "off"
772+* Fixed bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
773+* Fixed bug 995896: Useless use of cat in Daemon.pm
774+* Fixed bug 1039074: Tools exit 0 on error parsing options, should exit non-zero
775+* Fixed bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
776+* Fixed bug 1009510: pt-table-checksum breaks replication if a slave table is missing or different
777+* Fixed bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
778+* Fixed bug 1073532: pt-table-checksum error: Use of uninitialized value in int at line 2778
779+* Fixed bug 1016131: pt-table-checksum can crash with --columns if none match
780+* Fixed bug 1039569: pt-table-checksum dies if creating the --replicate table fails
781+* Fixed bug 1059732: pt-table-checksum doesn't test all hash functions
782+* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
783+* Fixed bug 1043528: pt-deadlock-logger can't parse db/tbl/index on partitioned tables
784+* Fixed bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
785+* Fixed bug 1058285: pt-online-schema-change fails if sql_mode explicitly or implicitly uses ANSI_QUOTES
786+* Fixed bug 1073996: pt-online-schema-change fails with "I need a max_rows argument"
787+* Fixed bug 1039541: pt-online-schema-change --quiet doesn't disable --progress
788+* Fixed bug 1045317: pt-online-schema-change doesn't report how many warnings it suppressed
789+* Fixed bug 1060774: pt-upgrade fails if select column > 64 chars
790+* Fixed bug 1070916: pt-mysql-summary may report the wrong cnf file
791+* Fixed bug 903229: pt-mysql-summary incorrectly categorizes databases
792+* Fixed bug 866075: pt-show-grant doesn't support column-level grants
793+* Fixed bug 978133: pt-query-digest review table privilege checks don't work
794+* Fixed bug 956981: pt-query-digest docs for event attributes link to defunct Maatkit wiki
795+* Fixed bug 1047335: pt-duplicate-key-checker fails when it encounters a crashed table
796+* Fixed bug 1047701: pt-stalk deletes non-empty files
797+* Fixed bug 1070434: pt-stalk --no-stalk and --iterations 1 don't wait for the collect
798+* Fixed bug 1052722: pt-fifo-split is processing n-1 rows initially
799+* Fixed bug 1013407: pt-find documentation error with mtime and InnoDB
800+* Fixed bug 1059757: pt-trend output has no header
801+* Fixed bug 1063933: pt-visual-explain docs link to missing pdf
802+* Fixed bug 1075773: pt-fk-error-logger crashes if there's no foreign key error
803+* Fixed bug 1075775: pt-fk-error-logger --dest table example doesn't work
804+
805+v2.1.5 released 2012-10-08
806+==========================
807+
808+Percona Toolkit 2.1.5 has been released. This release is less than two weeks after the release of 2.1.4 because we wanted to address these bugs quickly:
809+
810+* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
811+
812+* Bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
813+
814+* Bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
815+
816+The first two bugs fix how pt-table-checksum works with Percona XtraDB Cluster (PXC). Although the 2.1.4 release did introduce support for PXC, these bugs prevented pt-table-checksum from working correctly with a cluster.
817+
818+The third bug is also related to a feature new in 2.1.4: --version-check. The feature uses HTTPS/SSL by default, but some modules in pt-table-sync weren't update which could prevent it from working on older systems. Related, the version check web page mentioned in tools' documentation was also created.
819+
820+If you're using pt-table-checksum with a Percona XtraDB Cluster, you should definitely upgrade. Otherwise, users can wait until 2.1.6 for another full release.
821+
822+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
823+
824+Changelog
825+---------
826+
827+* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
828+* Fixed bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
829+* Fixed bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
830+* Fixed bug 1060423: Missing version-check page
831+
832+v2.1.4 released 2012-09-20
833+==========================
834+
835+Percona Toolkit 2.1.4 has been released. This release includes 26 bug fixes and three new features: Making pt-table-checksum work with Percona XtraDB Cluster, adding a --run-time option to pt-table-checksum, and implementing the "Version Check" feature, enabled through the --version-check switch. For further information on --version-check, see http://www.mysqlperformanceblog.com/2012/09/10/introducing-the-version-check-feature-in-percona-toolkit/. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
836+
837+* Fixed bug 1017626: pt-table-checksum doesn't work with Percona XtraDB Cluster
838+
839+Note that this requires Percona XtraDB Cluster 5.5.27-23.6 or newer, as the fix depends on this bug https://bugs.launchpad.net/codership-mysql/+bug/1023911 being resolved.
840+
841+* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
842+
843+Previously, users had no recourse but using --recursion-method in conjunction with a dsn table to sidestep this bug, so this fix is a huge usability gain. This was caused by the toolkit not copying the -F portion of the main dsn.
844+
845+* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
846+
847+Which were stopping pt-upgrade from working on a MySQL 4.1 host.
848+
849+* Fixed bug 1036747: pt-table-sync priv checks need to be removed
850+
851+The same checks were removed in the previous release from pt-table-checksum, so this continues the trend.
852+
853+* Fixed bug 1038995: pt-stalk --notify-by-email fails
854+
855+This was a bug in our shell option parsing library, and would potentially affect any option starting with 'no'.
856+
857+Like 2.1.3, this is another solid bug fix release, and 2.1 users are encouraged to upgrade.
858+
859+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
860+
861+Changelog
862+---------
863+
864+* pt-table-checksum: Percona XtraDB Cluster support
865+* pt-table-checksum: Implemented the standard --run-time option
866+* Implemented the version-check feature in several tools, enabled with the --version-check option
867+* Fixed bug 856060: Document gdb dependency
868+* Fixed bug 1041394: Unquoted arguments to tr break the bash tools
869+* Fixed bug 1035311: pt-diskstats shows wrong device names
870+* Fixed bug 1036804: pt-duplicate-key-checker error parsing InnoDB table with no PK or unique keys
871+* Fixed bug 1022658: pt-online-schema-change dropping FK limitation isn't documented
872+* Fixed bug 1041372: pt-online-schema-changes fails if db+tbl name exceeds 64 characters
873+* Fixed bug 1029178: pt-query-digest --type tcpdump memory usage keeps increasing
874+* Fixed bug 1037211: pt-query-digest won't distill LOCK TABLES in lowercase
875+* Fixed bug 942114: pt-stalk warns about bad "find" usage
876+* Fixed bug 1035319: pt-stalk df -h throws away needed details
877+* Fixed bug 1038995: pt-stalk --notify-by-email fails
878+* Fixed bug 1038995: pt-stalk does not get all InnoDB lock data
879+* Fixed bug 952722: pt-summary should show information about Fusion-io cards
880+* Fixed bug 899415: pt-table-checksum doesn't work if slaves use RBR
881+* Fixed bug 954588: pt-table-checksum --check-slave-lag docs aren't clear
882+* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
883+* Fixed bug 930693: pt-table-sync and text columns with just whitespace
884+* Fixed bug 1028710: pt-table-sync base_count fails on n = 1000, base = 10
885+* Fixed bug 1034717: pt-table-sync division by zero error with varchar primary key
886+* Fixed bug 1036747: pt-table-sync priv checks need to be removed
887+* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
888+* Fixed bug 1035260: sh warnings in pt-summary and pt-mysql-summary
889+* Fixed bug 1038276: ChangeHandler doesn't quote varchar columns with hex-looking values
890+* Fixed bug 916925: CentOS 5 yum dependency resolution for perl module is wrong
891+* Fixed bug 1035950: Percona Toolkit RPM should contain a dependency on perl-Time-HiRes
892+
893+v2.1.3 released 2012-08-03
894+==========================
895+
896+Percona Toolkit 2.1.3 has been released. This release includes 31 bug fixes and one new feature: pt-kill --log-dsn to log information about killed queries to a table. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
897+
898+* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
899+
900+pt-table-checksum used to check the user's privileges, but the method was not always reliable, and due to http://bugs.mysql.com/bug.php?id=61846 it became quite unreliable on MySQL 5.5. So the privs check was removed altogether, meaning that the tool may fail later if the user's privileges are insufficient.
901+
902+* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
903+
904+In certain cases where the master and replicas have different schemas and/or tables, pt-table-checksum could break replication because the checksums table did not exist on a replica.
905+
906+* Fixed bug 821703: pt-query-digest --processlist may crash
907+* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
908+
909+Certain distributions of MySQL add extra columns to SHOW PROCESSLIST which caused pt-query-digest --processlist to crash at times.
910+
911+* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
912+
913+pt-kill is meant to be a long-running daemon, so naturally it's important that it stays connected to MySQL.
914+
915+* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
916+
917+The combination of these pt-heartbeat options could cause replication to break due to a duplicate key error.
918+
919+* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
920+
921+This bug was related to how --quiet was handled, and it could happen even if --quiet wasn't given on the command line.
922+
923+All in all, this is solid bug fix release, and 2.1 users are encouraged to upgrade.
924+
925+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
926+
927+Changelog
928+---------
929+
930+* pt-kill: Implemented --log-dsn to log info about killed queries to a table
931+* Fixed bug 1016127: Install hint for DBD::mysql is wrong
932+* Fixed bug 984915: DSNParser does not check success of --set-vars
933+* Fixed bug 889739: pt-config-diff doesn't diff quoted strings properly
934+* Fixed bug 969669: pt-duplicate-key-checker --key-types=k doesn't work
935+* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
936+* Fixed bug 1028614: pt-index-usage ignores --database
937+* Fixed bug 940733: pt-ioprofile leaves behind temp directory
938+* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
939+* Fixed bug 1016114: pt-online-schema-change docs don't mention default values
940+* Fixed bug 1020997: pt-online-schema-change fails when table is empty
941+* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
942+* Fixed bug 937225: pt-query-advisor OUTER JOIN advice in JOI.003 is confusing
943+* Fixed bug 821703: pt-query-digest --processlist may crash
944+* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
945+* Fixed bug 924950: pt-query-digest --group-by db may crash profile report
946+* Fixed bug 1022851: pt-sift error: PREFIX: unbound variable
947+* Fixed bug 969703: pt-sift defaults to '.' instead of '/var/lib/pt-talk'
948+* Fixed bug 962330: pt-slave-delay incorrectly computes lag if started when slave is already lagging
949+* Fixed bug 954990: pt-stalk --nostalk does not work
950+* Fixed bug 977226: pt-summary doesn't detect LSI RAID control
951+* Fixed bug 1030031: pt-table-checksum reports wrong number of DIFFS
952+* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
953+* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
954+* Fixed bug 953141: pt-table-checksum ignores its default and explicit --recursion-method
955+* Fixed bug 1030975: pt-table-sync crashes if sql_mode includes ANSI_QUOTES
956+* Fixed bug 869005: pt-table-sync should always set REPEATABLE READ
957+* Fixed bug 903510: pt-tcp-model crashes in --type=requests mode on empty file
958+* Fixed bug 934310: pt-tcp-model --quantile docs wrong
959+* Fixed bug 980318: pt-upgrade results truncated if hostnames are long
960+* Fixed bug 821696: pt-variable-advisor shows too long of a snippet
961+* Fixed bug 844880: pt-variable-advisor shows binary logging as both enabled and disabled
962+
963+v2.1.2 released 2012-06-12
964+==========================
965+
966+Percona Toolkit 2.1.2 has been released. This is a very important release because it fixes a critical bug in pt-table-sync (bug 1003014) which caused various failures. All users of Percona Toolkit 2.1 should upgrade to this release. There were 47 other bug fixes, several new options, and other changes. The following is a high-level summary of the most important changes.
967+
968+In addition to the critical bug fix mentioned above, another important pt-table-sync bug was fixed, bug 1002365: --ignore-* options did not work with --replicate. The --lock-and-rename feature of the tool was also disabled unless running MySQL 5.5 or newer because it did not work reliably in earlier versions of MySQL.
969+
970+Several important pt-table-checksum bugs were fixed. First, a bug caused the tool to ignore the primary key. Second, the tool did not wait for the checksum table to replicate, so it could select from a nonexistent table on a replica and crash. Third, it did not check if all checksum queries were safe and chunk index with more than 3 columns could cause MySQL to scan many more rows than expected.
971+
972+pt-online-schema-change received many improvements and fixes: it did not retry deadlocks, but now it does; --no-swap-tables caused an error; it did not handle column renames; it did not allow disabling foreign key checks; --dry-run always failed on tables with foreign keys; it used different keys for chunking and triggers; etc. In short: pt-online-schema-change 2.1.2 is superior to 2.1.1.
973+
974+Two pt-archiver bugs were fixed: bug 979092, --sleep conflicts with bulk operations; and bug 903379, --file doesn't create a file.
975+
976+--recursion-method=none was implemented in pt-heartbeat, pt-online-schema-change, pt-slave-find, pt-slave-restart, pt-table-checksum, and pt-table-sync. This allows these tools to avoid executing SHOW SLAVE STATUS which requires a privilege not available to Amazon RDS users.
977+
978+Other bugs were fixed in pt-stalk, pt-variable-advisor, pt-duplicate-key-checker, pt-diskstats, pt-query-digest, pt-sift, pt-kill, pt-summary, and pt-deadlock-logger.
979+
980+Percona Toolkit 2.1.2 should be backwards-compatible with 2.1.1, so users are strongly encouraged to upgrade.
981+
982+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
983+
984+Changelog
985+---------
986+
987+* pt-heartbeat: Implemented --recursion-method=none
988+* pt-index-usage: MySQL 5.5 compatibility fixes
989+* pt-log-player: MySQL 5.5 compatibility fixes
990+* pt-online-schema-change: Added --chunk-index-columns
991+* pt-online-schema-change: Added --[no]check-plan
992+* pt-online-schema-change: Added --[no]drop-new-table
993+* pt-online-schema-change: Implemented --recursion-method=none
994+* pt-query-advisor: Added --report-type for JSON output
995+* pt-query-digest: Removed --[no]zero-bool
996+* pt-slave-delay: Added --database
997+* pt-slave-find: Implemented --recursion-method=none
998+* pt-slave-restart: Implemented --recursion-method=none
999+* pt-table-checksum: Added --chunk-index-columns
1000+* pt-table-checksum: Added --[no]check-plan
1001+* pt-table-checksum: Implemented --recursion-method=none
1002+* pt-table-sync: Disabled --lock-and-rename except for MySQL 5.5 and newer
1003+* pt-table-sync: Implemented --recursion-method=none
1004+* Fixed bug 945079: Shell tools TMPDIR may break
1005+* Fixed bug 912902: Some shell tools still use basename
1006+* Fixed bug 987694: There is no --recursion-method=none option
1007+* Fixed bug 886077: Passwords with commas don't work, expose part of password
1008+* Fixed bug 856024: Lintian warnings when building percona-toolkit Debian package
1009+* Fixed bug 903379: pt-archiver --file doesn't create a file
1010+* Fixed bug 979092: pt-archiver --sleep conflicts with bulk operations
1011+* Fixed bug 903443: pt-deadlock-logger crashes on MySQL 5.5
1012+* Fixed bug 941064: pt-deadlock-logger can't clear deadlocks on 5.5
1013+* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
1014+* Fixed bug 994176: pt-diskstats --group-by=all --headers=scroll prints a header for every sample
1015+* Fixed bug 894140: pt-duplicate-key-checker sometimes recreates a key it shouldn't
1016+* Fixed bug 923896: pt-kill: uninitialized value causes script to exit
1017+* Fixed bug 1003003: pt-online-schema-change uses different keys for chunking and triggers
1018+* Fixed bug 1003315: pt-online-schema-change --dry-run always fails on table with foreign keys
1019+* Fixed bug 1004551: pt-online-schema-change --no-swap-tables causes error
1020+* Fixed bug 976108: pt-online-schema-change doesn't allow to disable foreign key checks
1021+* Fixed bug 976109: pt-online-schema-change doesn't handle column renames
1022+* Fixed bug 988036: pt-online-schema-change causes deadlocks under heavy write load
1023+* Fixed bug 989227: pt-online-schema-change crashes with PTDEBUG
1024+* Fixed bug 994002: pt-online-schema-change 2.1.1 doesn't choose the PRIMARY KEY
1025+* Fixed bug 994010: pt-online-schema-change 2.1.1 crashes without InnoDB
1026+* Fixed bug 996915: pt-online-schema-change crashes with invalid --max-load and --critical-load
1027+* Fixed bug 998831: pt-online-schema-change -- Should have an option to NOT drop tables on failure
1028+* Fixed bug 1002448: pt-online-schema-change: typo for finding usable indexes
1029+* Fixed bug 885382: pt-query-digest --embedded-attributes doesn't check cardinality
1030+* Fixed bug 888114: pt-query-digest report crashes with infinite loop
1031+* Fixed bug 949630: pt-query-digest mentions a Subversion repository
1032+* Fixed bug 844034: pt-show-grants --separate fails with proxy user
1033+* Fixed bug 946707: pt-sift loses STDIN after pt-diskstats
1034+* Fixed bug 994947: pt-stalk doesn't reset cycles_true after collection
1035+* Fixed bug 986151: pt-stalk-has mktemp error
1036+* Fixed bug 993436: pt-summary Memory: Total reports M instead of G
1037+* Fixed bug 1008778: pt-table-checksum doesn't wait for checksum table to replicate
1038+* Fixed bug 1010232: pt-table-checksum doesn't check the size of checksum chunks
1039+* Fixed bug 1011738: pt-table-checksum SKIPPED is zero but chunks were skipped
1040+* Fixed bug 919499: pt-table-checksum fails with binary log error in mysql >= 5.5.18
1041+* Fixed bug 972399: pt-table-checksum docs are not rendered right
1042+* Fixed bug 978432: pt-table-checksum ignoring primary key
1043+* Fixed bug 995274: pt-table-checksum can't use an undefined value as an ARRAY reference at line 2206
1044+* Fixed bug 996110: pt-table-checksum crashes if InnoDB is disabled
1045+* Fixed bug 987393: pt-table-checksum: Empy tables cause "undefined value as an ARRAY" errors
1046+* Fixed bug 1002365: pt-table-sync --ignore-* options don't work with --replicate
1047+* Fixed bug 1003014: pt-table-sync --replicate and --sync-to-master error "index does not exist"
1048+* Fixed bug 823403: pt-table-sync --lock-and-rename doesn't work on 5.1
1049+* Fixed bug 898138: pt-variable-advisor doesn't recognize 5.5.3+ concurrent_insert values
1050+
1051+v2.1.1 released 2012-04-03
1052+==========================
1053+
1054+Percona Toolkit 2.1.1 has been released. This is the first release in the
1055+new 2.1 series which supersedes the 2.0 series. We will continue to fix bugs
1056+in 2.0, but 2.1 is now the focus of development.
1057+
1058+2.1 introduces a lot of new code for:
1059+
1060+* pt-online-schema-change (completely redesigned)
1061+* pt-mysql-summary (completely redesigned)
1062+* pt-summary (completely redesigned)
1063+* pt-fingerprint (new tool)
1064+* pt-table-usage (new tool)
1065+
1066+There were also several bug fixes.
1067+
1068+The redesigned tools are meant to replace their 2.0 counterparts because
1069+the 2.1 versions have the same or more functionality and they are simpler
1070+and more reliable. pt-online-schema-change was particularly enhanced to
1071+be as safe as possible given that the tool is inherently risky.
1072+
1073+Percona Toolkit packages can be downloaded from
1074+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
1075+Repositories (http://www.percona.com/software/repositories/).
1076+
1077+Changelog
1078+---------
1079+
1080+* Completely redesigned pt-online-schema-change
1081+* Completely redesigned pt-mysql-summary
1082+* Completely redesigned pt-summary
1083+* Added new tool: pt-table-usage
1084+* Added new tool: pt-fingerprint
1085+* Fixed bug 955860: pt-stalk doesn't run vmstat, iostat, and mpstat for --run-time
1086+* Fixed bug 960513: SHOW TABLE STATUS is used needlessly
1087+* Fixed bug 969726: pt-online-schema-change loses foreign keys
1088+* Fixed bug 846028: pt-online-schema-change does not show progress until completed
1089+* Fixed bug 898695: pt-online-schema-change add useless ORDER BY
1090+* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
1091+* Fixed bug 963225: pt-query-digest fails to set history columns for disk tmp tables and disk filesort
1092+* Fixed bug 967451: Char chunking doesn't quote column name
1093+* Fixed bug 972399: pt-table-checksum docs are not rendered right
1094+* Fixed bug 896553: Various documentation spelling fixes
1095+* Fixed bug 949154: pt-variable-advisor advice for relay-log-space-limit
1096+* Fixed bug 953461: pt-upgrade manual broken 'output' section
1097+* Fixed bug 949653: pt-table-checksum docs don't mention risks posed by inconsistent schemas
1098+
1099+v2.0.4 released 2012-03-07
1100+==========================
1101+
1102+Percona Toolkit 2.0.4 has been released. 23 bugs were fixed in this release,
1103+and three new features were implemented. First, --filter was added to pt-kill
1104+which allows for arbitrary --group-by. Second, pt-online-schema-change now
1105+requires that its new --execute option be given, else the tool will just check
1106+the tables and exit. This is a safeguard to encourage users to read the
1107+documentation, particularly when replication is involved. Third, pt-stalk
1108+also received a new option: --[no]stalk. To collect immediately without
1109+stalking, specify --no-stalk and the tool will collect once and exit.
1110+
1111+This release is completely backwards compatible with previous 2.0 releases.
1112+Given the number of bug fixes, it's worth upgrading to 2.0.4.
1113+
1114+Changelog
1115+---------
1116+
1117+* Added --filter to pt-kill to allow arbitrary --group-by
1118+* Added --[no]stalk to pt-stalk (bug 932331)
1119+* Added --execute to pt-online-schema-change (bug 933232)
1120+* Fixed bug 873598: pt-online-schema-change doesn't like reserved words in column names
1121+* Fixed bug 928966: pt-pmp still uses insecure /tmp
1122+* Fixed bug 933232: pt-online-schema-change can break replication
1123+* Fixed bug 941225: Use of qw(...) as parentheses is deprecated at pt-kill line 3511
1124+* Fixed bug 821694: pt-query-digest doesn't recognize hex InnoDB txn IDs
1125+* Fixed bug 894255: pt-kill shouldn't check if STDIN is a tty when --daemonize is given
1126+* Fixed bug 916999: pt-table-checksum error: DBD::mysql::st execute failed: called with 2 bind variables when 6 are needed
1127+* Fixed bug 926598: DBD::mysql bug causes pt-upgrade to use wrong precision (M) and scale (D)
1128+* Fixed bug 928226: pt-diskstats illegal division by zero
1129+* Fixed bug 928415: Typo in pt-stalk doc: --trigger should be --function
1130+* Fixed bug 930317: pt-archiver doc refers to nonexistent pt-query-profiler
1131+* Fixed bug 930533: pt-sift looking for *-processlist1; broken compatibility with pt-stalk
1132+* Fixed bug 932331: pt-stalk cannot collect without stalking
1133+* Fixed bug 932442: pt-table-checksum error when column name has two spaces
1134+* Fixed bug 932883: File Debian bug after each release
1135+* Fixed bug 940503: pt-stalk disk space checks wrong on 32bit platforms
1136+* Fixed bug 944420: --daemonize doesn't always close STDIN
1137+* Fixed bug 945834: pt-sift invokes pt-diskstats with deprecated argument
1138+* Fixed bug 945836: pt-sift prints awk error if there are no stack traces to aggregate
1139+* Fixed bug 945842: pt-sift generates wrong state sum during processlist analysis
1140+* Fixed bug 946438: pt-query-digest should print a better message when an unsupported log format is specified
1141+* Fixed bug 946776: pt-table-checksum ignores --lock-wait-timeout
1142+* Fixed bug 940440: Bad grammar in pt-kill docs
1143+
1144+v2.0.3 released 2012-02-03
1145+==========================
1146+
1147+Percona Toolkit 2.0.3 has been released. The development team was very
1148+busy last month making this release significant: two completely
1149+redesigned and improved tools, pt-diskstats and pt-stalk, and 20 bug fixes.
1150+
1151+Both pt-diskstats and pt-stalk were redesigned and rewritten from the ground
1152+up. This allowed us to greatly improve these tools' functionality and
1153+increase testing for them. The accuracy and output of pt-diskstats was
1154+enhanced, and the tool was rewritten in Perl. pt-collect was removed and
1155+its functionality was put into a new, enhanced pt-stalk. pt-stalk is now
1156+designed to be a stable, long-running daemon on a variety of common platforms.
1157+It is worth re-reading the documentation for each of these tools.
1158+
1159+The 20 bug fixes cover a wide range of problems. The most important are
1160+fixes to pt-table-checksum, pt-iostats, and pt-kill. Apart from pt-diskstats,
1161+pt-stalk, and pt-collect (which was removed), no other tools were changed
1162+in backwards-incompatible ways, so it is worth reviewing the full changelog
1163+for this release and upgrading if you use any tools which had bug fixes.
1164+
1165+Thank you to the many people who reported bugs and submitted patches.
1166+
1167+Download the latest release of Percona Toolkit 2.0 from
1168+http://www.percona.com/software/percona-toolkit/
1169+or the Percona Software Repositories
1170+(http://www.percona.com/docs/wiki/repositories:start).
1171+
1172+Changelog
1173+---------
1174+
1175+* Completely redesigned pt-diskstats
1176+* Completely redesigned pt-stalk
1177+* Removed pt-collect and put its functionality in pt-stalk
1178+* Fixed bug 871438: Bash tools are insecure
1179+* Fixed bug 897758: Failed to prepare TableSyncChunk plugin: Use of uninitialized value $args{"chunk_range"} in lc at pt-table-sync line 3055
1180+* Fixed bug 919819: pt-kill --execute-command creates zombies
1181+* Fixed bug 925778: pt-ioprofile doesn't run without a file
1182+* Fixed bug 925477: pt-ioprofile docs refer to pt-iostats
1183+* Fixed bug 857091: pt-sift downloads http://percona.com/get/pt-pmp, which does not work
1184+* Fixed bug 857104: pt-sift tries to invoke mext, should be pt-mext
1185+* Fixed bug 872699: pt-diskstats: rd_avkb & wr_avkb derived incorrectly
1186+* Fixed bug 897029: pt-diskstats computes wrong values for md0
1187+* Fixed bug 882918: pt-stalk spams warning if oprofile isn't installed
1188+* Fixed bug 884504: pt-stalk doesn't check pt-collect
1189+* Fixed bug 897483: pt-online-schema-change "uninitialized value" due to update-foreign-keys-method
1190+* Fixed bug 925007: pt-online-schema-change Use of uninitialized value $tables{"old_table"} in concatenation (.) or string at line 4330
1191+* Fixed bug 915598: pt-config-diff ignores --ask-pass option
1192+* Fixed bug 919352: pt-table-checksum changes binlog_format even if already set to statement
1193+* Fixed bug 921700: pt-table-checksum doesn't add --where to chunk size test on replicas
1194+* Fixed bug 921802: pt-table-checksum does not recognize --recursion-method=processlist
1195+* Fixed bug 925855: pt-table-checksum index check is case-sensitive
1196+* Fixed bug 821709: pt-show-grants --revoke and --separate don't work together
1197+* Fixed bug 918247: Some tools use VALUE instead of VALUES
1198+
1199+v2.0.2 released 2012-01-05
1200+==========================
1201+
1202+Percona Toolkit 2.0.2 fixes one critical bug: pt-table-sync --replicate
1203+did not work with character values, causing an "Unknown column" error.
1204+If using Percona Toolkit 2.0.1, you should upgrade to 2.0.2.
1205+
1206+Download the latest release of Percona Toolkit 2.0 from
1207+http://www.percona.com/software/percona-toolkit/
1208+or the Percona Software Repositories
1209+(http://www.percona.com/docs/wiki/repositories:start).
1210+
1211+Changelog
1212+---------
1213+
1214+* Fixed bug 911996: pt-table-sync --replicate causes "Unknown column" error
1215+
1216+v2.0.1 released 2011-12-30
1217+==========================
1218+
1219+The Percona Toolkit development team is proud to announce a new major version:
1220+2.0. Beginning with Percona Toolkit 2.0, we are overhauling, redesigning, and
1221+improving the major tools. 2.0 tools are therefore not backwards compatible
1222+with 1.0 tools, which we still support but will not continue to develop.
1223+
1224+New in Percona Toolkit 2.0.1 is a completely redesigned pt-table-checksum.
1225+The original pt-table-checksum 1.0 was rather complex, but it worked well
1226+for many years. By contrast, the new pt-table-checksum 2.0 is much simpler but
1227+also much more efficient and reliable. We spent months rethinking, redesigning,
1228+and testing every aspect of the tool. The three most significant changes:
1229+pt-table-checksum 2.0 does only --replicate, it has only one chunking algorithm,
1230+and its memory usage is stable even with hundreds of thousands of tables and
1231+trillions of rows. The tool is now dedicated to verifying MySQL replication
1232+integrity, nothing else, which it does extremely well.
1233+
1234+In Percona Toolkit 2.0.1 we also fixed various small bugs and forked ioprofile
1235+and align (as pt-ioprofile and pt-align) from Aspersa.
1236+
1237+If you still need functionalities in the original pt-table-checksum,
1238+the latest Percona Toolkit 1.0 release remains available for download.
1239+Otherwise, all new development in Percona Toolkit will happen in 2.0.
1240+
1241+Download the latest release of Percona Toolkit 2.0 from
1242+http://www.percona.com/software/percona-toolkit/
1243+or the Percona Software Repositories
1244+(http://www.percona.com/docs/wiki/repositories:start).
1245+
1246+Changelog
1247+---------
1248+
1249+* Completely redesigned pt-table-checksum
1250+* Fixed bug 856065: pt-trend does not work
1251+* Fixed bug 887688: Prepared statements crash pt-query-digest
1252+* Fixed bug 888286: align not part of percona-toolkit
1253+* Fixed bug 897961: ptc 2.0 replicate-check error does not include hostname
1254+* Fixed bug 898318: ptc 2.0 --resume with --tables does not always work
1255+* Fixed bug 903513: MKDEBUG should be PTDEBUG
1256+* Fixed bug 908256: Percona Toolkit should include pt-ioprofile
1257+* Fixed bug 821717: pt-tcp-model --type=requests crashes
1258+* Fixed bug 844038: pt-online-schema-change documentation example w/drop-tmp-table does not work
1259+* Fixed bug 864205: Remove the query to reset @crc from pt-table-checksum
1260+* Fixed bug 898663: Typo in pt-log-player documentation
1261+
1262+v1.0.1 released 2011-09-01
1263+==========================
1264+
1265+Percona Toolkit 1.0.1 has been released. In July, Baron announced planned
1266+changes to Maatkit and Aspersa development;[1] Percona Toolkit is the
1267+result. In brief, Percona Toolkit is the combined fork of Maatkit and
1268+Aspersa, so although the toolkit is new, the programs are not. That means
1269+Percona Toolkit 1.0.1 is mature, stable, and production-ready. In fact,
1270+it's even a little more stable because we fixed a few bugs in this release.
1271+
1272+Percona Toolkit packages can be downloaded from
1273+http://www.percona.com/downloads/percona-toolkit/
1274+or the Percona Software Repositories
1275+(http://www.percona.com/docs/wiki/repositories:start).
1276+
1277+Although Maatkit and Aspersa development use Google Code, Percona Toolkit
1278+uses Launchpad: https://launchpad.net/percona-toolkit
1279+
1280+[1] http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/
1281+
1282+Changelog
1283+---------
1284+
1285+* Fixed bug 819421: MasterSlave::is_replication_thread() doesn't match all
1286+* Fixed bug 821673: pt-table-checksum doesn't include --where in min max queries
1287+* Fixed bug 821688: pt-table-checksum SELECT MIN MAX for char chunking is wrong
1288+* Fixed bug 838211: pt-collect: line 24: [: : integer expression expected
1289+* Fixed bug 838248: pt-collect creates a "5.1" file
1290+
1291+v0.9.5 released 2011-08-04
1292+==========================
1293+
1294+Percona Toolkit 0.9.5 represents the completed transition from Maatkit and Aspersa. There are no bug fixes or new features, but some features have been removed (like --save-results from pt-query-digest). This release is the starting point for the 1.0 series where new development will happen, and no more changes will be made to the 0.9 series.
1295+
1296+Changelog
1297+---------
1298+
1299+* Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit.
1300+
1301+Changelog
1302+---------
1303+
1304+* Fixed bug 1279502: --version-check behaves like spyware
1305+
1306+=======
1307+>>>>>>> MERGE-SOURCE
1308+v2.2.6 released 2013-12-18
1309+==========================
1310+
1311+Percona Toolkit 2.2.6 has been released. This release has 16 bug fixes and a few new features. One bug fix is very important, so 2.2 users are strongly encouraged to upgrade:
1312+
1313+* Fixed bug 1223458: pt-table-sync deletes child table rows
1314+
1315+Buried in the pt-table-sync docs is this warning:
1316+
1317+ Also be careful with tables that have foreign key constraints with C<ON DELETE>
1318+ or C<ON UPDATE> definitions because these might cause unintended changes on the
1319+ child tables.
1320+
1321+Until recently, either no one had this problem, or no one reported it, or no one realized that pt-table-sync caused it. In the worst case, pt-table-sync could delete all rows in child tables, which is quite surprising and bad. As of 2.2.6, pt-table-sync has option --[no]check-child-tables which is on by default. In cases were this "bug" can happen, pt-table-sync prints a warning and skips the table. Read the option's docs to learn more.
1322+
1323+Another good bug fix is:
1324+
1325+* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
1326+
1327+After saying "pt-duplicate-key-checker hasn't had a bug in years" at enough conferences, users proved us wrong--thanks! The tool is better now.
1328+
1329+* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
1330+
1331+This was poor feedback from the tool more than a bug. There was a point in the tool where it waited forever for slaves to catch up, but it did this silently. Now the tool reports --progress while it's waiting and it reports which slaves, if any, it found and intends to check. In short: its feedback delivers a better user experience.
1332+
1333+Finally, this bug (more like a feature request/change) might be a backwards-incompatible change:
1334+
1335+* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
1336+
1337+The change is that pt-mysql-summary no longer prompts to dump and summarize schemas. To do this, you must specify --databases or, a new option, --all-databases. Several users said this behavior was better, so we made the change even though some might consider it a backwards-incompatible change.
1338+
1339+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
1340+
1341+Changelog
1342+---------
1343+
1344+* Added pt-query-digest support for Percona Server slow log rate limiting
1345+* Added pt-agent --ping
1346+* Added pt-mysql-summary --all-databases
1347+* Added pt-stalk --sleep-collect
1348+* Added pt-table-sync --[no]check-child-tables
1349+* Fixed bug 1249150: PTDEBUG prints some info to STDOUT
1350+* Fixed bug 1248363: pt-agent requires restart after changing MySQL options
1351+* Fixed bug 1248778: pt-agent --install on PXC is not documented
1352+* Fixed bug 1250973: pt-agent --install doesn't check for previous install
1353+* Fixed bug 1250968: pt-agent --install suggest MySQL user isn't quoted
1354+* Fixed bug 1251004: pt-agent --install error about slave is confusing
1355+* Fixed bug 1251726: pt-agent --uninstall fails if agent is running
1356+* Fixed bug 1248785: pt-agent docs don't list privs required for its MySQL user
1357+* Fixed bug 1215016: pt-deadlock-logger docs use pt-fk-error-logger
1358+* Fixed bug 1201443: pt-duplicate-key-checker error when EXPLAIN key_len=0
1359+* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
1360+* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
1361+* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
1362+* Fixed bug 1249149: pt-query-digest stats prints to STDOUT instead of STDERR
1363+* Fixed bug 1071979: pt-stak error parsing df with NFS
1364+* Fixed bug 1223458: pt-table-sync deletes child table rows
1365+
1366+v2.2.5 released 2013-10-16
1367+==========================
1368+
1369+Percona Toolkit 2.2.5 has been released. This release has four new features and a number of bugfixes.
1370+
1371+Query_time histogram has been added to the pt-query-digest JSON output, not the actual chart but the values necessary to render the chart later, so the values for each bucket.
1372+
1373+As of pt-table-checksum 2.2.5, skipped chunks cause a non-zero exit status. An exit status of zero or 32 is equivalent to a zero exit status with skipped chunks in previous versions of the tool.
1374+
1375+New --no-drop-triggers option has been implemented for pt-online-schema-change in case users want to rename the tables manually, when the load is low.
1376+
1377+New --new-table-name option has been added to pt-online-schema-change which can be used to specify the temporary table name.
1378+
1379+* Fixed bug #1199589: pt-archiver would delete the data even with the --dry-run option.
1380+
1381+* Fixed bug #821692: pt-query-digest didn't distill LOAD DATA correctly.
1382+
1383+* Fixed bug #984053: pt-query-digest didn't distill INSERT/REPLACE without INTO correctly.
1384+
1385+* Fixed bug #1206677: pt-agent docs were referencing wrong web address.
1386+
1387+* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster would crash if no nodes were found.
1388+
1389+Percona Toolkit packages can be downloaded from
1390+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
1391+Repositories (http://www.percona.com/software/repositories
1392+
1393+Changelog
1394+---------
1395+
1396+* Added Query_time histogram bucket counts to pt-query-digest JSON output
1397+* Added pt-online-schema-change --[no]drop-triggers option
1398+* Fixed bug #1199589: pt-archiver deletes data despite --dry-run
1399+* Fixed bug #944051: pt-table-checksum has ambiguous exit status
1400+* Fixed bug #1209436: pt-kill --log-dsn may not work on Perl 5.8
1401+* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster crashes if no nodes are found
1402+* Fixed bug #1215608: pt-online-schema-change new table suffix is hard-coded
1403+* Fixed bug #1229861: pt-table-sync quotes float values, can't sync
1404+* Fixed bug #821692: pt-query-digest doesn't distill LOAD DATA correctly
1405+* Fixed bug #984053: pt-query-digest doesn't distill INSERT/REPLACE without INTO correctly
1406+* Fixed bug #1206728: pt-deadlock-logger 2.2 requires DSN on command line
1407+* Fixed bug #1226721: pt-agent on CentOS 5 fails to send data
1408+* Fixed bug #821690: pt-query-digest doesn't distill IF EXISTS correctly
1409+* Fixed bug #1206677: pt-agent docs reference clodu.percona.com
1410+
1411+v2.2.4 released 2013-07-18
1412+==========================
1413+
1414+Percona Toolkit 2.2.4 has been released. This release two new features and a number of bugfixes.
1415+
1416+pt-query-digest --output json includes query examples as of v2.2.3. Some people might not want this because it exposes real data. New option, --output json-anon, has been implemented. This option will provide the same data without query examples. It's "anonymous" in the sense that there's no identifying data; nothing more than schema and table structs can be inferred from fingerprints.
1417+
1418+When using drop swap with pt-online-schema-change there is some production impact. This impact can be measured because tool outputs the current timestamp on lines for operations that may take awhile.
1419+
1420+* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
1421+pt-table-checksum would fail if variable explicit_defaults_for_timestamp was enabled in MySQL 5.6.
1422+
1423+* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0"
1424+Trying to assign 0 to any variable by using --set-vars option would cause “Invalid --set-vars value” message.
1425+
1426+* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
1427+Fixed the typo in the pt-online-schema-change code that could lead to a tool crash when copying the rows.
1428+
1429+* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
1430+pt-table-checksum was using the first non-unique index instead of the one with the highest cardinality due to a sorting bug.
1431+
1432+Percona Toolkit packages can be downloaded from
1433+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
1434+Repositories (http://www.percona.com/software/repositories
1435+
1436+Changelog
1437+---------
1438+
1439+* Added pt-query-digest anonymous JSON output
1440+* Added pt-online-schema-change timestamp output
1441+* Fixed bug #1136559: pt-table-checksum: Deep recursion on subroutine "SchemaIterator::_iterate_dbh"
1442+* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
1443+* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0"
1444+* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
1445+* Fixed bug #1195034: pt-deadlock-logger error: Use of uninitialized value $ts in pattern match (m//)
1446+* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
1447+* Fixed bug #1168434: pt-upgrade reports differences on NULL
1448+* Fixed bug #1172317: pt-sift does not work if pt-stalk did not collect due to a full disk
1449+* Fixed bug #1176010: pt-query-digest doesn't group db and `db` together
1450+* Fixed bug #1137556: pt-heartbeat docs don't account for --utc
1451+* Fixed bug #1168106: pt-variable-advisor has the wrong default value for innodb_max_dirty_pages_pct in 5.5 and 5.6
1452+* Fixed bug #1168110: pt-variable-advisor shows key_buffer_size in 5.6 as unconfigured (even though it is)
1453+* Fixed bug #1171968: pt-query-digest docs don't mention --type=rawlog
1454+* Fixed bug #1174956: pt-query-digest and pt-fingerprint don't strip some multi-line comments
1455+
1456+
1457+v2.2.3 released 2013-06-17
1458+==========================
1459+
1460+Percona Toolkit 2.2.3 has been released which has only two changes: pt-agent
1461+and a bug fix for pt-online-schema-change. pt-agent is not a command line
1462+tool but a client-side agent for Percona Cloud Tools. Visit
1463+https://cloud.percona.com for more information. The pt-online-schema-change
1464+bug fix is bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02):
1465+"Table 'db._t_new' doesn't exist". This happens when the tool's triggers
1466+cannot be dropped.
1467+
1468+Percona Toolkit packages can be downloaded from
1469+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
1470+Repositories (http://www.percona.com/software/repositories/).
1471+
1472+Changelog
1473+---------
1474+
1475+* Added new tool: pt-agent
1476+* Fixed bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): Table 'db._t_new' doesn't exist"
1477+
1478+v2.2.2 released 2013-04-24
1479+==========================
1480+
1481+Percona Toolkit 2.2.2 has been released. This is the second release of
1482+the 2.2 series and aims to fix bugs in the previous release and provide
1483+usability enhacements to the toolkit.
1484+
1485+Users may note the revival of the --show-all option in pt-query-digest.
1486+This had been removed in 2.2.1, but resulted in too much output in
1487+certain cases.
1488+
1489+A new --recursion-method was added to pt-table-checksum: cluster. This
1490+method attempts to auto-discover cluster nodes, alleviating the need to
1491+specify cluster node DSNs in a DSN table (--recursion-method=dsn).
1492+
1493+The following highlights some of the more interesting and "hot" bugs in
1494+this release:
1495+
1496+* Bug #1127450: pt-archiver --bulk-insert may corrupt data
1497+
1498+pt-archiver --bulk-insert didn't work with --charset UTF-8. This revealed
1499+a case where the tool could corrupt data by double-encoding. This is now
1500+fixed, but remains relatively dangerous if using DBD::mysql 3.0007 which
1501+does not handle UTF-8 properly.
1502+
1503+* Bug #1163372: pt-heartbeat --utc --check always returns 0
1504+
1505+Unfortunately, the relatively new --utc option for pt-heart was still
1506+broken because "[MySQL] interprets date as a value in the current time zone
1507+and converts it to an internal value in UTC." Now the tool works correctly
1508+with --utc by specifying "SET time_zone='+0:00'", and older versions of
1509+the tool can be made to work by specifying --set-vars "time_zone='+0:00'".
1510+
1511+* Bug #821502: Some tools don't have --help or --version
1512+
1513+pt-align, pt-mext, pt-pmp and pt-sift now have both options.
1514+
1515+This is another solid bug fix release, and all users are encouraged to upgrade.
1516+
1517+Percona Toolkit packages can be downloaded from
1518+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
1519+Repositories (http://www.percona.com/software/repositories/).
1520+
1521+Changelog
1522+---------
1523+
1524+* Added --show-all to pt-query-digest
1525+* Added --recursion-method=cluster to pt-table-checksum
1526+* Fixed bug 1127450: pt-archiver --bulk-insert may corrupt data
1527+* Fixed bug 1163372: pt-heartbeat --utc --check always returns 0
1528+* Fixed bug 1156901: pt-query-digest --processlist reports duplicate queries for replication thread
1529+* Fixed bug 1160338: pt-query-digest 2.2 prints unwanted debug info on tcpdump parsing errors
1530+* Fixed bug 1160918: pt-query-digest 2.2 prints too many string values
1531+* Fixed bug 1156867: pt-stalk prints the wrong variable name in verbose mode when --function is used
1532+* Fixed bug 1081733: pt-stalk plugins can't access the real --prefix
1533+* Fixed bug 1099845: pt-table-checksum pxc same_node function incorrectly uses wsrep_sst_receive_address
1534+* Fixed bug 821502: Some tools don't have --help or --version
1535+* Fixed bug 947893: Some tools use @@hostname without /*!50038*/
1536+* Fixed bug 1082406: An explicitly set wsrep_node_incoming_address may make SHOW STATUS LIKE 'wsrep_incoming_addresses' return a portless address
1537+
1538+v2.2.1 released 2013-03-14
1539+==========================
1540+
1541+Percona Toolkit 2.2.1 has been released. This is the first release in
1542+the new 2.2 series which supersedes the 2.1 series and renders the 2.0
1543+series obsolete. We plan to do one more bug fix release for 2.1 (2.1.10),
1544+but otherwise all new development and fixes and will now focus on 2.2.
1545+
1546+Percona Toolkit 2.2 has been several months in the making, and it turned
1547+out very well, with many more new features, changes, and improvements than
1548+originally anticipated. Here are the highlights:
1549+
1550+----
1551+
1552+* Official support for MySQL 5.6
1553+
1554+We started beta support for MySQL 5.6 in 2.1.8 when 5.6 was still beta.
1555+Now that 5.6 is GA, so is our support for it. Check out the Percona Toolkit
1556+supported platforms and versions:
1557+http://www.percona.com/mysql-support/policies/percona-toolkit-supported-platforms-and-versions
1558+
1559+When you upgrade to MySQL 5.6, be sure to upgrade to Percona Toolkit 2.2, too.
1560+
1561+* Official support for Percona XtraDB Cluster (PXC)
1562+
1563+We also started beta support for Percona XtraDB Cluster in 2.1.8, but
1564+now that support is official in 2.2 because we have had many months to
1565+work with PXC and figure out which tools work with it and how. There's
1566+still one noticeable omission: pt-table-sync. It's still unclear if
1567+or how one would sync a cluster that, in theory, doesn't become out-of-sync.
1568+As Percona XtraDB Cluster develops, Percona Toolkit will continue to
1569+evolve to support it.
1570+
1571+* pt-online-schema-change (pt-osc) is much more resilient
1572+
1573+pt-online-schema-change 2.1 has been a great success, and people have been
1574+using it for evermore difficult and challenging tasks. Consequently, we
1575+needed to make it "try harder", even though it already tried pretty hard
1576+to keep working despite recoverable errors and such. Whereas pt-osc 2.1
1577+only retries certain operations, pt-osc 2.2 retries every critical operation,
1578+and its tries and wait time between tries for all operations are configurable.
1579+Also, we removed --lock-wait-timeout which set innodb_lock_wait_timeout
1580+because that now conflicts, or is at least confused with, lock_wait_timeout
1581+(introduced in MySQL 5.5) for metadata locks. Now --set-vars is used to
1582+set both of these (or any) system variables. For a quick intro to metadata
1583+locks and how they may affect you, see Ovais's article:
1584+http://www.mysqlperformanceblog.com/2013/02/01/implications-of-metadata-locking-changes-in-mysql-5-5/
1585+
1586+What does this all mean? In short: pt-online-schema-change 2.2 is far more
1587+resilient out of the box. It's also aware of metadata locks now, whereas
1588+2.1 was not really aware of them. And it's highly configurable, so you can
1589+make the tool try _very_ hard to keep working.
1590+
1591+* pt-upgrade is brand-new
1592+
1593+pt-upgrade was written once long ago, thrown into the world, and then never
1594+heard from again... until now. Now that we have four base versions of
1595+MySQL (5.0, 5.1, 5.5, and 5.6), plus at least four major forks (Percona
1596+Server, MariaDB, Percona XtraDB Cluster, and MariaDB Galera Cluster),
1597+upgrades are fashionable, so to speak. Problem is: "original" pt-upgrade
1598+was too noisy and too complex. pt-upgrade 2.2 is far simpler and far
1599+easier to use. It's basically what you expect from such a tool.
1600+
1601+Moreover, it has a really helpful new feature: "reference results", i.e.
1602+saved results from running queries on a server. Granted, this can take
1603+_a lot_ of disk space, but it allows you to "run now, compare later."
1604+
1605+If you're thinking about upgrading, give pt-upgrade a try. It also reads
1606+every type of log now (slow, general, binary, and tcpdump), so you shouldn't
1607+have a problem finding queries to run and compare.
1608+
1609+* pt-query-digest is simpler
1610+
1611+pt-query-digest 2.2 has fewer options now. Basically, we re-focused it
1612+on its primary objective: analyzing MySQL query logs. So the ability
1613+to parse memcached, Postgres, Apache, and other logs was removed. We
1614+also removed several options that probably nobody ever used, and
1615+changed/renamed other options to be more logical. The result is a simpler,
1616+more focused tool, i.e. less overwhelming.
1617+
1618+Also, pt-query-digest 2.2 can save results in JSON format (--output=json).
1619+This feature is still in development while we determine the optimal
1620+JSON structure.
1621+
1622+* Version check is on by default
1623+
1624+Way back in 2.1.4, released September/October 2012, we introduced a feature
1625+called "version check" into most tools: http://percona.com/version-check
1626+It's like a lot of software that automatically checks for updates, but
1627+it's also more: it's a free service from Percona that advises when certain
1628+programs (Percona Toolkit tools, MySQL, Perl, etc.) are either out of date
1629+or are known bad versions. For example, there are two versions of the
1630+DBD::mysql Perl module that have problems. And there are certain versions
1631+of MySQL that have critical bugs. Version check will warn you about these
1632+if your system is running them.
1633+
1634+What's new in 2.2 is that, whereas this feature (specifically, the option
1635+in tools: --version-check) was off by default, now it's on by default.
1636+If the IO::Socket::SSL Perl module is installed (easily available through
1637+your package manager), it will use a secure (https) connection over the web,
1638+else it will use a standard (http) connection.
1639+
1640+Check out http://percona.com/version-check for more information.
1641+
1642+* pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player are gone
1643+
1644+We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player.
1645+Granted, no tool is ever really gone: if you need one of these tools,
1646+get it from 2.1. pt-log-player is now superseded by Percona Playback
1647+(http://www.percona.com/doc/percona-playback/). pt-query-advisor was
1648+removed so that we can focus our efforts on its online counterpart instead:
1649+https://tools.percona.com/query-advisor. The other tools were special
1650+projects that were not widely used.
1651+
1652+* pt-stalk and pt-mysql-summary have built-in MySQL options
1653+
1654+No more "pt-stalk -- -h db1 -u me". pt-stalk 2.2 and pt-mysql-summary 2.2
1655+have all the standard MySQL options built-in, like other tools: --user,
1656+--host, --port, --password, --socket, --defaults-file. So now the command
1657+line is what you expect: pt-stalk -h dhb1 -u me.
1658+
1659+* pt-stalk --no-stalk is no longer magical
1660+
1661+Originally, pt-stalk --no-stalk was meant to simulate pt-collect, i.e.
1662+collect once and exit. To do that, the tool magically set some options
1663+and clobbered others, resulting in no way to do repeated collections
1664+at intervals. Now --no-stalk means only that: don't stalk, just collect,
1665+respecting --interval and --iterations as usual. So to collect once
1666+and exit: pt-stalk --no-stalk --iterations 1.
1667+
1668+* pt-fk-error-logger and pt-deadlock-logger are standardized
1669+
1670+Similar to the pt-stalk --no-stalk changes, pt-fk-error-logger and
1671+pt-deadlock-logger received mini overhauls in 2.2 to make their
1672+run-related options (--run-time, --interval, --iterations) standard.
1673+If you hadn't noticed, one tool would run forever by default, while
1674+the other would run once and exit. And each treated their run-related
1675+options a little differently. This magic is gone now: both tools run
1676+forever by default, so specify --iterations or --run-time to limit how
1677+long they run.
1678+
1679+----
1680+
1681+There were other miscellaneous bug fixes, too. See
1682+https://launchpad.net/percona-toolkit/+milestone/2.2.1 for the full list.
1683+
1684+As the first release in a new series, 2.2 features are not yet finalized.
1685+In other words, we may change things like the pt-query-digest --output json
1686+format in future releases after receiving real-world feedback.
1687+
1688+Percona Toolkit 2.2 is an exciting release with many helpful new
1689+features. Users are encouraged to begin upgrading, particularly given
1690+that, except for the forthcoming 2.1.10 release, no more work will be
1691+done on 2.1 (unless you're a Percona customer with a support contract or
1692+other agreement).
1693+
1694+If you upgrade from 2.1 to 2.2, be sure to re-read tools' documentation
1695+to see what has changed because much as changed for certain tools.
1696+
1697+Percona Toolkit packages can be downloaded from
1698+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
1699+Repositories (http://www.percona.com/software/repositories/).
1700+
1701+Changelog
1702+---------
1703+
1704+* Official support for MySQL 5.6
1705+* Official support for Percona XtraDB Cluster
1706+* Redesigned pt-query-digest
1707+* Redesigned pt-upgrade
1708+* Redesigned pt-fk-error-logger
1709+* Redesigned pt-deadlock-logger
1710+* Changed --set-vars in all tools
1711+* Renamed --retries to --tries in pt-online-schema-change
1712+* Added --check-read-only to pt-heartbeat
1713+* Added MySQL options to pt-mysql-summary
1714+* Added MySQL options to pt-stalk
1715+* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars)
1716+* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars)
1717+* Removed pt-query-advisor
1718+* Removed pt-tcp-model
1719+* Removed pt-trend
1720+* Removed pt-log-player
1721+* Enabled --version-check by default in all tools
1722+* Fixed bug 1008796: Several tools don't have --database
1723+* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values
1724+* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options
1725+* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time
1726+* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE
1727+* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks
1728+* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically
1729+* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions
1730+* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found
1731+
1732+v2.1.9 released 2013-02-14
1733+==========================
1734+
1735+Percona Toolkit 2.1.9 has been released. This release primarily aims to
1736+restore backwards-compatibility with pt-heartbeat 2.1.7 and older, but it
1737+also has important bug fixes for other tools.
1738+
1739+* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
1740+* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
1741+
1742+The previous release switched the time authority from Perl to MySQL, and from
1743+local time to UTC. Unfortunately, these changes caused a loss of precision and,
1744+if mixing versions of pt-heartbeat, made the tool report a huge amount of
1745+replication lag. This release makes the tool compatible with pt-heartbeat
1746+2.1.7 and older again, but the UTC behavior introduced in 2.1.8 is now only
1747+available by specifying the new --utc option.
1748+
1749+* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
1750+
1751+This is an important bug fix for pt-table-sync: certain chunks from
1752+pt-table-checksum resulted in an impossible WHERE, causing the false-positive
1753+"Cannot nibble" error, if those chunks had diffs.
1754+
1755+* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
1756+
1757+MariaDB 5.5.28 (https://kb.askmonty.org/en/mariadb-5528-changelog/) fixed
1758+a bug: "Added warnings for duplicate key errors when using INSERT IGNORE".
1759+However, standard MySQL does not warn in this case, despite the docs saying
1760+that it should. Since pt-online-schema-change has always intended to ignore
1761+duplicate entry errors by using "INSERT IGNORE", it now handles the MariaDB
1762+case by also ignoring duplicate entry errors in the code.
1763+
1764+* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
1765+
1766+pt-online-schema-change 2.1.9 handles another case of changing the primary key.
1767+However, since changing the primary key is tricky, the tool stops if --alter
1768+contains "DROP PRIMARY KEY", and you have to specify --no-check-alter to
1769+acknowledge this case.
1770+
1771+* Fixed bug 1099933: pt-stalk is too verbose, fills up log
1772+
1773+Previously, pt-stalk printed a line for every check. Since the tool is
1774+designed to be a long-running daemon, this could result in huge log files
1775+with "matched=no" lines. The tool has a new --verbose option which makes it
1776+quieter by default.
1777+
1778+All users should upgrade, but in particular, users of versions 2.1.7 and
1779+older are strongly recommended to skip 2.1.8 and go directly to 2.1.9.
1780+
1781+Users of pt-heartbeat in 2.1.8 who prefer the UTC behavior should keep in
1782+mind that they will have to use the --utc option after upgrading.
1783+
1784+Percona Toolkit packages can be downloaded from
1785+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
1786+Repositories (http://www.percona.com/software/repositories/).
1787+
1788+Changelog
1789+---------
1790+
1791+* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
1792+* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
1793+* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
1794+* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
1795+* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function
1796+* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump
1797+* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors
1798+* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
1799+* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
1800+* Fixed bug 1099933: pt-stalk is too verbose, fills up log
1801+
1802+v2.1.8 released 2012-12-21
1803+==========================
1804+
1805+Percona Toolkit 2.1.8 has been released. This release includes 28 bug fixes, beta support for MySQL 5.6, and extensive support for Percona XtraDB Cluster (PXC). Users intending on running the tools on Percona XtraDB Cluster or MySQL 5.6 should upgrade. The following tools have been verified to work on PXC versions 5.5.28 and newer:
1806+
1807+* pt-table-chcecksum
1808+* pt-online-schema-change
1809+* pt-archive
1810+* pt-mysql-summary
1811+* pt-heartbeat
1812+* pt-variable-advisor
1813+* pt-config-diff
1814+* pt-deadlock-logger
1815+
1816+However, there are limitations when running these tools on PXC; see the Percona XtraDB Cluster section in each tool's documentation for further details. All other tools, with the exception of pt-slave-find, pt-slave-delay and pt-slave-restart, should also work correctly, but in some cases they have not been modified to take advantage of PXC features, so they may behave differently in future releases.
1817+
1818+The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
1819+
1820+* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
1821+
1822+Slow logs which include timestamps but no query--which can happen if using slow_query_log_timestamp_always in Percona Server--were misparsed, resulting in an erroneous report. Now such no-query events show up in reports as ``/* No query */``.
1823+
1824+* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
1825+
1826+The "as" was misparsed and the following word would end up reported as the database; pt-query-digest now handles this correctly.
1827+
1828+* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
1829+
1830+Some renamed variables had caused the Percona Server section to work unreliably.
1831+
1832+* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
1833+
1834+When using --replicate-check-only, filter options like --databases and --tables were not applied.
1835+
1836+* Fixed bug 886059: pt-heartbeat handles timezones inconsistently
1837+
1838+Previously, pt-heartbeat respected the MySQL time zone, but this caused false readings (e.g. very high lag) with slaves running in different time zones. Now pt-heartbeat uses UTC regardless of the server or MySQL time zone.
1839+
1840+* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
1841+
1842+Since MyISAM tables can't have foreign keys, and the tool uses the information_schema to find child tables, this could cause unnecessary load on the server.
1843+
1844+2.1.8 continues the trend of solid bug fix releases, and all 2.1 users are encouraged to upgrade.
1845+
1846+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
1847+
1848+Changelog
1849+---------
1850+
1851+* Beta support for MySQL 5.6
1852+* Beta support for Percona XtraDB Cluster
1853+* pt-online-schema-change: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
1854+* pt-table-checksum: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
1855+* pt-upgrade: Added --[no]disable-query-cache
1856+* Fixed bug 927955: Bad pod2rst transformation
1857+* Fixed bug 898665: Bad online docs formatting for --[no]vars
1858+* Fixed bug 1022622: pt-config-diff is case-sensitive
1859+* Fixed bug 1007938: pt-config-diff doesn't handle end-of-line comments
1860+* Fixed bug 917770: pt-config-diff Use of uninitialized value in substitution (s///) at line 1996
1861+* Fixed bug 1082104: pt-deadlock-logger doesn't handle usernames with dashes
1862+* Fixed bug 886059: pt-heartbeat handles timezones inconsistently
1863+* Fixed bug 1086259: pt-kill --log-dsn timestamp is wrong
1864+* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
1865+* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
1866+* Fixed bug 823431: pt-query-advisor hangs on big queries
1867+* Fixed bug 996069: pt-query-advisor RES.001 is incorrect
1868+* Fixed bug 933465: pt-query-advisor false positive on RES.001
1869+* Fixed bug 937234: pt-query-advisor issues wrong RES.001
1870+* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
1871+* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
1872+* Fixed bug 957442: pt-query-digest with custom --group-by throws error
1873+* Fixed bug 887638: pt-query-digest prints negative byte offset
1874+* Fixed bug 831525: pt-query-digest help output mangled
1875+* Fixed bug 932614: pt-slave-restart CHANGE MASTER query causes error
1876+* Fixed bug 1046440: pt-stalk purge_samples slows down checks
1877+* Fixed bug 986847: pt-stalk does not report NFS iostat
1878+* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
1879+* Fixed bug 911385: pt-table-checksum v2 fails when --resume + --ignore-database is used
1880+* Fixed bug 1041391: pt-table-checksum debug statement for "Chosen hash func" prints undef
1881+* Fixed bug 1075638: pt-table-checksum Illegal division by zero at line 7950
1882+* Fixed bug 1052475: pt-table-checksum uninitialized value in numeric lt (<) at line 8611
1883+* Fixed bug 1078887: Tools let --set-vars clobber the required SQL mode
1884+
1885+v2.1.7 released 2012-11-19
1886+==========================
1887+
1888+Percona Toolkit 2.1.7 has been released which is a hotfix for two bugs when using pt-table-checksum with Percona XtraDB Cluster:
1889+
1890+* Bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
1891+* Bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes
1892+
1893+If you're using pt-table-checksum with a Percona XtraDB Cluster, you should upgrade. Otherwise, users can wait until the next full release.
1894+
1895+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
1896+
1897+Changelog
1898+---------
1899+
1900+* Fixed bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
1901+* Fixed bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes
1902+
1903+v2.1.6 released 2012-11-13
1904+==========================
1905+
1906+Percona Toolkit 2.1.6 has been released. This release includes 33 bug fixes and three new features: pt-online-schema-change now handles renaming columns without losing data, removing one of the tool's limitations. pt-online-schema-change also got two new options: --default-engine and --statistics. Finally, pt-stalk now has a plugin hook interface, available through the --plugin option. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
1907+
1908+* Bug 978133: pt-query-digest review table privilege checks don't work
1909+
1910+The same checks were removed from pt-table-checksum on 2.1.3 and pt-table-sync on 2.1.4, so this just follows suit.
1911+
1912+* Bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
1913+
1914+A particularly important fix, as it may stop pt-table-checksum from breaking replication in these setups.
1915+
1916+* Bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
1917+
1918+If you run multiple instances of pt-table-checksum on a badly lagged server, actually respecting --run-time stops the instances from divebombing the server when the replica catches up.
1919+
1920+* Bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
1921+
1922+Fixed by choosing a key on the new table for the DELETE trigger.
1923+
1924+* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
1925+
1926+A follow up to the same fix in the previous release, this adds to warnings for cases in which pt-table-checksum may work incorrectly and require some user intervention: One for the case of master -> cluster, and one for cluster1 -> cluster2.
1927+
1928+* Bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
1929+
1930+This bug has hounded the toolkit for quite some time. In some platforms, trying to use LOAD DATA LOCAL INFILE would fail as if the user didn't have enough privileges to perform the operation. This was a misdiagnoses from MySQL; The actual problem was that the libmysqlclient.so provided by some vendors was compiled in a way that disallowed users from using the statement without some extra work. This fix adds an 'L' option to the DSNs the toolkit uses, tells the the tools to explicitly enables LOAD DATA LOCAL INFILE. This affected two pt-archiver and pt-upgrade, so if you are on an effected OS and need to use those, you can simply tag an L=1 to your DSN and everything should start working.
1931+
1932+* Bug 866075: pt-show-grant doesn't support column-level grants
1933+
1934+This was actually the 'hottest' bug in the tracker.
1935+
1936+This is another solid bug fix release, and all 2.1 users are encouraged to upgrade.
1937+
1938+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
1939+
1940+Changelog
1941+---------
1942+
1943+* pt-online-schema-change: Columns can now be renamed without data loss
1944+* pt-online-schema-change: New --default-engine option
1945+* pt-stalk: Plugin hooks available through the --plugin option to extend the tool's functionality
1946+* Fixed bug 1069951: --version-check default should be explicitly "off"
1947+* Fixed bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
1948+* Fixed bug 995896: Useless use of cat in Daemon.pm
1949+* Fixed bug 1039074: Tools exit 0 on error parsing options, should exit non-zero
1950+* Fixed bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
1951+* Fixed bug 1009510: pt-table-checksum breaks replication if a slave table is missing or different
1952+* Fixed bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
1953+* Fixed bug 1073532: pt-table-checksum error: Use of uninitialized value in int at line 2778
1954+* Fixed bug 1016131: pt-table-checksum can crash with --columns if none match
1955+* Fixed bug 1039569: pt-table-checksum dies if creating the --replicate table fails
1956+* Fixed bug 1059732: pt-table-checksum doesn't test all hash functions
1957+* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
1958+* Fixed bug 1043528: pt-deadlock-logger can't parse db/tbl/index on partitioned tables
1959+* Fixed bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
1960+* Fixed bug 1058285: pt-online-schema-change fails if sql_mode explicitly or implicitly uses ANSI_QUOTES
1961+* Fixed bug 1073996: pt-online-schema-change fails with "I need a max_rows argument"
1962+* Fixed bug 1039541: pt-online-schema-change --quiet doesn't disable --progress
1963+* Fixed bug 1045317: pt-online-schema-change doesn't report how many warnings it suppressed
1964+* Fixed bug 1060774: pt-upgrade fails if select column > 64 chars
1965+* Fixed bug 1070916: pt-mysql-summary may report the wrong cnf file
1966+* Fixed bug 903229: pt-mysql-summary incorrectly categorizes databases
1967+* Fixed bug 866075: pt-show-grant doesn't support column-level grants
1968+* Fixed bug 978133: pt-query-digest review table privilege checks don't work
1969+* Fixed bug 956981: pt-query-digest docs for event attributes link to defunct Maatkit wiki
1970+* Fixed bug 1047335: pt-duplicate-key-checker fails when it encounters a crashed table
1971+* Fixed bug 1047701: pt-stalk deletes non-empty files
1972+* Fixed bug 1070434: pt-stalk --no-stalk and --iterations 1 don't wait for the collect
1973+* Fixed bug 1052722: pt-fifo-split is processing n-1 rows initially
1974+* Fixed bug 1013407: pt-find documentation error with mtime and InnoDB
1975+* Fixed bug 1059757: pt-trend output has no header
1976+* Fixed bug 1063933: pt-visual-explain docs link to missing pdf
1977+* Fixed bug 1075773: pt-fk-error-logger crashes if there's no foreign key error
1978+* Fixed bug 1075775: pt-fk-error-logger --dest table example doesn't work
1979+
1980+v2.1.5 released 2012-10-08
1981+==========================
1982+
1983+Percona Toolkit 2.1.5 has been released. This release is less than two weeks after the release of 2.1.4 because we wanted to address these bugs quickly:
1984+
1985+* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
1986+
1987+* Bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
1988+
1989+* Bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
1990+
1991+The first two bugs fix how pt-table-checksum works with Percona XtraDB Cluster (PXC). Although the 2.1.4 release did introduce support for PXC, these bugs prevented pt-table-checksum from working correctly with a cluster.
1992+
1993+The third bug is also related to a feature new in 2.1.4: --version-check. The feature uses HTTPS/SSL by default, but some modules in pt-table-sync weren't update which could prevent it from working on older systems. Related, the version check web page mentioned in tools' documentation was also created.
1994+
1995+If you're using pt-table-checksum with a Percona XtraDB Cluster, you should definitely upgrade. Otherwise, users can wait until 2.1.6 for another full release.
1996+
1997+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
1998+
1999+Changelog
2000+---------
2001+
2002+* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
2003+* Fixed bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
2004+* Fixed bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
2005+* Fixed bug 1060423: Missing version-check page
2006+
2007+v2.1.4 released 2012-09-20
2008+==========================
2009+
2010+Percona Toolkit 2.1.4 has been released. This release includes 26 bug fixes and three new features: Making pt-table-checksum work with Percona XtraDB Cluster, adding a --run-time option to pt-table-checksum, and implementing the "Version Check" feature, enabled through the --version-check switch. For further information on --version-check, see http://www.mysqlperformanceblog.com/2012/09/10/introducing-the-version-check-feature-in-percona-toolkit/. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
2011+
2012+* Fixed bug 1017626: pt-table-checksum doesn't work with Percona XtraDB Cluster
2013+
2014+Note that this requires Percona XtraDB Cluster 5.5.27-23.6 or newer, as the fix depends on this bug https://bugs.launchpad.net/codership-mysql/+bug/1023911 being resolved.
2015+
2016+* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
2017+
2018+Previously, users had no recourse but using --recursion-method in conjunction with a dsn table to sidestep this bug, so this fix is a huge usability gain. This was caused by the toolkit not copying the -F portion of the main dsn.
2019+
2020+* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
2021+
2022+Which were stopping pt-upgrade from working on a MySQL 4.1 host.
2023+
2024+* Fixed bug 1036747: pt-table-sync priv checks need to be removed
2025+
2026+The same checks were removed in the previous release from pt-table-checksum, so this continues the trend.
2027+
2028+* Fixed bug 1038995: pt-stalk --notify-by-email fails
2029+
2030+This was a bug in our shell option parsing library, and would potentially affect any option starting with 'no'.
2031+
2032+Like 2.1.3, this is another solid bug fix release, and 2.1 users are encouraged to upgrade.
2033+
2034+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
2035+
2036+Changelog
2037+---------
2038+
2039+* pt-table-checksum: Percona XtraDB Cluster support
2040+* pt-table-checksum: Implemented the standard --run-time option
2041+* Implemented the version-check feature in several tools, enabled with the --version-check option
2042+* Fixed bug 856060: Document gdb dependency
2043+* Fixed bug 1041394: Unquoted arguments to tr break the bash tools
2044+* Fixed bug 1035311: pt-diskstats shows wrong device names
2045+* Fixed bug 1036804: pt-duplicate-key-checker error parsing InnoDB table with no PK or unique keys
2046+* Fixed bug 1022658: pt-online-schema-change dropping FK limitation isn't documented
2047+* Fixed bug 1041372: pt-online-schema-changes fails if db+tbl name exceeds 64 characters
2048+* Fixed bug 1029178: pt-query-digest --type tcpdump memory usage keeps increasing
2049+* Fixed bug 1037211: pt-query-digest won't distill LOCK TABLES in lowercase
2050+* Fixed bug 942114: pt-stalk warns about bad "find" usage
2051+* Fixed bug 1035319: pt-stalk df -h throws away needed details
2052+* Fixed bug 1038995: pt-stalk --notify-by-email fails
2053+* Fixed bug 1038995: pt-stalk does not get all InnoDB lock data
2054+* Fixed bug 952722: pt-summary should show information about Fusion-io cards
2055+* Fixed bug 899415: pt-table-checksum doesn't work if slaves use RBR
2056+* Fixed bug 954588: pt-table-checksum --check-slave-lag docs aren't clear
2057+* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
2058+* Fixed bug 930693: pt-table-sync and text columns with just whitespace
2059+* Fixed bug 1028710: pt-table-sync base_count fails on n = 1000, base = 10
2060+* Fixed bug 1034717: pt-table-sync division by zero error with varchar primary key
2061+* Fixed bug 1036747: pt-table-sync priv checks need to be removed
2062+* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
2063+* Fixed bug 1035260: sh warnings in pt-summary and pt-mysql-summary
2064+* Fixed bug 1038276: ChangeHandler doesn't quote varchar columns with hex-looking values
2065+* Fixed bug 916925: CentOS 5 yum dependency resolution for perl module is wrong
2066+* Fixed bug 1035950: Percona Toolkit RPM should contain a dependency on perl-Time-HiRes
2067+
2068+v2.1.3 released 2012-08-03
2069+==========================
2070+
2071+Percona Toolkit 2.1.3 has been released. This release includes 31 bug fixes and one new feature: pt-kill --log-dsn to log information about killed queries to a table. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
2072+
2073+* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
2074+
2075+pt-table-checksum used to check the user's privileges, but the method was not always reliable, and due to http://bugs.mysql.com/bug.php?id=61846 it became quite unreliable on MySQL 5.5. So the privs check was removed altogether, meaning that the tool may fail later if the user's privileges are insufficient.
2076+
2077+* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
2078+
2079+In certain cases where the master and replicas have different schemas and/or tables, pt-table-checksum could break replication because the checksums table did not exist on a replica.
2080+
2081+* Fixed bug 821703: pt-query-digest --processlist may crash
2082+* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
2083+
2084+Certain distributions of MySQL add extra columns to SHOW PROCESSLIST which caused pt-query-digest --processlist to crash at times.
2085+
2086+* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
2087+
2088+pt-kill is meant to be a long-running daemon, so naturally it's important that it stays connected to MySQL.
2089+
2090+* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
2091+
2092+The combination of these pt-heartbeat options could cause replication to break due to a duplicate key error.
2093+
2094+* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
2095+
2096+This bug was related to how --quiet was handled, and it could happen even if --quiet wasn't given on the command line.
2097+
2098+All in all, this is solid bug fix release, and 2.1 users are encouraged to upgrade.
2099+
2100+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
2101+
2102+Changelog
2103+---------
2104+
2105+* pt-kill: Implemented --log-dsn to log info about killed queries to a table
2106+* Fixed bug 1016127: Install hint for DBD::mysql is wrong
2107+* Fixed bug 984915: DSNParser does not check success of --set-vars
2108+* Fixed bug 889739: pt-config-diff doesn't diff quoted strings properly
2109+* Fixed bug 969669: pt-duplicate-key-checker --key-types=k doesn't work
2110+* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
2111+* Fixed bug 1028614: pt-index-usage ignores --database
2112+* Fixed bug 940733: pt-ioprofile leaves behind temp directory
2113+* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
2114+* Fixed bug 1016114: pt-online-schema-change docs don't mention default values
2115+* Fixed bug 1020997: pt-online-schema-change fails when table is empty
2116+* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
2117+* Fixed bug 937225: pt-query-advisor OUTER JOIN advice in JOI.003 is confusing
2118+* Fixed bug 821703: pt-query-digest --processlist may crash
2119+* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
2120+* Fixed bug 924950: pt-query-digest --group-by db may crash profile report
2121+* Fixed bug 1022851: pt-sift error: PREFIX: unbound variable
2122+* Fixed bug 969703: pt-sift defaults to '.' instead of '/var/lib/pt-talk'
2123+* Fixed bug 962330: pt-slave-delay incorrectly computes lag if started when slave is already lagging
2124+* Fixed bug 954990: pt-stalk --nostalk does not work
2125+* Fixed bug 977226: pt-summary doesn't detect LSI RAID control
2126+* Fixed bug 1030031: pt-table-checksum reports wrong number of DIFFS
2127+* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
2128+* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
2129+* Fixed bug 953141: pt-table-checksum ignores its default and explicit --recursion-method
2130+* Fixed bug 1030975: pt-table-sync crashes if sql_mode includes ANSI_QUOTES
2131+* Fixed bug 869005: pt-table-sync should always set REPEATABLE READ
2132+* Fixed bug 903510: pt-tcp-model crashes in --type=requests mode on empty file
2133+* Fixed bug 934310: pt-tcp-model --quantile docs wrong
2134+* Fixed bug 980318: pt-upgrade results truncated if hostnames are long
2135+* Fixed bug 821696: pt-variable-advisor shows too long of a snippet
2136+* Fixed bug 844880: pt-variable-advisor shows binary logging as both enabled and disabled
2137+
2138+v2.1.2 released 2012-06-12
2139+==========================
2140+
2141+Percona Toolkit 2.1.2 has been released. This is a very important release because it fixes a critical bug in pt-table-sync (bug 1003014) which caused various failures. All users of Percona Toolkit 2.1 should upgrade to this release. There were 47 other bug fixes, several new options, and other changes. The following is a high-level summary of the most important changes.
2142+
2143+In addition to the critical bug fix mentioned above, another important pt-table-sync bug was fixed, bug 1002365: --ignore-* options did not work with --replicate. The --lock-and-rename feature of the tool was also disabled unless running MySQL 5.5 or newer because it did not work reliably in earlier versions of MySQL.
2144+
2145+Several important pt-table-checksum bugs were fixed. First, a bug caused the tool to ignore the primary key. Second, the tool did not wait for the checksum table to replicate, so it could select from a nonexistent table on a replica and crash. Third, it did not check if all checksum queries were safe and chunk index with more than 3 columns could cause MySQL to scan many more rows than expected.
2146+
2147+pt-online-schema-change received many improvements and fixes: it did not retry deadlocks, but now it does; --no-swap-tables caused an error; it did not handle column renames; it did not allow disabling foreign key checks; --dry-run always failed on tables with foreign keys; it used different keys for chunking and triggers; etc. In short: pt-online-schema-change 2.1.2 is superior to 2.1.1.
2148+
2149+Two pt-archiver bugs were fixed: bug 979092, --sleep conflicts with bulk operations; and bug 903379, --file doesn't create a file.
2150+
2151+--recursion-method=none was implemented in pt-heartbeat, pt-online-schema-change, pt-slave-find, pt-slave-restart, pt-table-checksum, and pt-table-sync. This allows these tools to avoid executing SHOW SLAVE STATUS which requires a privilege not available to Amazon RDS users.
2152+
2153+Other bugs were fixed in pt-stalk, pt-variable-advisor, pt-duplicate-key-checker, pt-diskstats, pt-query-digest, pt-sift, pt-kill, pt-summary, and pt-deadlock-logger.
2154+
2155+Percona Toolkit 2.1.2 should be backwards-compatible with 2.1.1, so users are strongly encouraged to upgrade.
2156+
2157+Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
2158+
2159+Changelog
2160+---------
2161+
2162+* pt-heartbeat: Implemented --recursion-method=none
2163+* pt-index-usage: MySQL 5.5 compatibility fixes
2164+* pt-log-player: MySQL 5.5 compatibility fixes
2165+* pt-online-schema-change: Added --chunk-index-columns
2166+* pt-online-schema-change: Added --[no]check-plan
2167+* pt-online-schema-change: Added --[no]drop-new-table
2168+* pt-online-schema-change: Implemented --recursion-method=none
2169+* pt-query-advisor: Added --report-type for JSON output
2170+* pt-query-digest: Removed --[no]zero-bool
2171+* pt-slave-delay: Added --database
2172+* pt-slave-find: Implemented --recursion-method=none
2173+* pt-slave-restart: Implemented --recursion-method=none
2174+* pt-table-checksum: Added --chunk-index-columns
2175+* pt-table-checksum: Added --[no]check-plan
2176+* pt-table-checksum: Implemented --recursion-method=none
2177+* pt-table-sync: Disabled --lock-and-rename except for MySQL 5.5 and newer
2178+* pt-table-sync: Implemented --recursion-method=none
2179+* Fixed bug 945079: Shell tools TMPDIR may break
2180+* Fixed bug 912902: Some shell tools still use basename
2181+* Fixed bug 987694: There is no --recursion-method=none option
2182+* Fixed bug 886077: Passwords with commas don't work, expose part of password
2183+* Fixed bug 856024: Lintian warnings when building percona-toolkit Debian package
2184+* Fixed bug 903379: pt-archiver --file doesn't create a file
2185+* Fixed bug 979092: pt-archiver --sleep conflicts with bulk operations
2186+* Fixed bug 903443: pt-deadlock-logger crashes on MySQL 5.5
2187+* Fixed bug 941064: pt-deadlock-logger can't clear deadlocks on 5.5
2188+* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
2189+* Fixed bug 994176: pt-diskstats --group-by=all --headers=scroll prints a header for every sample
2190+* Fixed bug 894140: pt-duplicate-key-checker sometimes recreates a key it shouldn't
2191+* Fixed bug 923896: pt-kill: uninitialized value causes script to exit
2192+* Fixed bug 1003003: pt-online-schema-change uses different keys for chunking and triggers
2193+* Fixed bug 1003315: pt-online-schema-change --dry-run always fails on table with foreign keys
2194+* Fixed bug 1004551: pt-online-schema-change --no-swap-tables causes error
2195+* Fixed bug 976108: pt-online-schema-change doesn't allow to disable foreign key checks
2196+* Fixed bug 976109: pt-online-schema-change doesn't handle column renames
2197+* Fixed bug 988036: pt-online-schema-change causes deadlocks under heavy write load
2198+* Fixed bug 989227: pt-online-schema-change crashes with PTDEBUG
2199+* Fixed bug 994002: pt-online-schema-change 2.1.1 doesn't choose the PRIMARY KEY
2200+* Fixed bug 994010: pt-online-schema-change 2.1.1 crashes without InnoDB
2201+* Fixed bug 996915: pt-online-schema-change crashes with invalid --max-load and --critical-load
2202+* Fixed bug 998831: pt-online-schema-change -- Should have an option to NOT drop tables on failure
2203+* Fixed bug 1002448: pt-online-schema-change: typo for finding usable indexes
2204+* Fixed bug 885382: pt-query-digest --embedded-attributes doesn't check cardinality
2205+* Fixed bug 888114: pt-query-digest report crashes with infinite loop
2206+* Fixed bug 949630: pt-query-digest mentions a Subversion repository
2207+* Fixed bug 844034: pt-show-grants --separate fails with proxy user
2208+* Fixed bug 946707: pt-sift loses STDIN after pt-diskstats
2209+* Fixed bug 994947: pt-stalk doesn't reset cycles_true after collection
2210+* Fixed bug 986151: pt-stalk-has mktemp error
2211+* Fixed bug 993436: pt-summary Memory: Total reports M instead of G
2212+* Fixed bug 1008778: pt-table-checksum doesn't wait for checksum table to replicate
2213+* Fixed bug 1010232: pt-table-checksum doesn't check the size of checksum chunks
2214+* Fixed bug 1011738: pt-table-checksum SKIPPED is zero but chunks were skipped
2215+* Fixed bug 919499: pt-table-checksum fails with binary log error in mysql >= 5.5.18
2216+* Fixed bug 972399: pt-table-checksum docs are not rendered right
2217+* Fixed bug 978432: pt-table-checksum ignoring primary key
2218+* Fixed bug 995274: pt-table-checksum can't use an undefined value as an ARRAY reference at line 2206
2219+* Fixed bug 996110: pt-table-checksum crashes if InnoDB is disabled
2220+* Fixed bug 987393: pt-table-checksum: Empy tables cause "undefined value as an ARRAY" errors
2221+* Fixed bug 1002365: pt-table-sync --ignore-* options don't work with --replicate
2222+* Fixed bug 1003014: pt-table-sync --replicate and --sync-to-master error "index does not exist"
2223+* Fixed bug 823403: pt-table-sync --lock-and-rename doesn't work on 5.1
2224+* Fixed bug 898138: pt-variable-advisor doesn't recognize 5.5.3+ concurrent_insert values
2225+
2226+v2.1.1 released 2012-04-03
2227+==========================
2228+
2229+Percona Toolkit 2.1.1 has been released. This is the first release in the
2230+new 2.1 series which supersedes the 2.0 series. We will continue to fix bugs
2231+in 2.0, but 2.1 is now the focus of development.
2232+
2233+2.1 introduces a lot of new code for:
2234+
2235+* pt-online-schema-change (completely redesigned)
2236+* pt-mysql-summary (completely redesigned)
2237+* pt-summary (completely redesigned)
2238+* pt-fingerprint (new tool)
2239+* pt-table-usage (new tool)
2240+
2241+There were also several bug fixes.
2242+
2243+The redesigned tools are meant to replace their 2.0 counterparts because
2244+the 2.1 versions have the same or more functionality and they are simpler
2245+and more reliable. pt-online-schema-change was particularly enhanced to
2246+be as safe as possible given that the tool is inherently risky.
2247+
2248+Percona Toolkit packages can be downloaded from
2249+http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
2250+Repositories (http://www.percona.com/software/repositories/).
2251+
2252+Changelog
2253+---------
2254+
2255+* Completely redesigned pt-online-schema-change
2256+* Completely redesigned pt-mysql-summary
2257+* Completely redesigned pt-summary
2258+* Added new tool: pt-table-usage
2259+* Added new tool: pt-fingerprint
2260+* Fixed bug 955860: pt-stalk doesn't run vmstat, iostat, and mpstat for --run-time
2261+* Fixed bug 960513: SHOW TABLE STATUS is used needlessly
2262+* Fixed bug 969726: pt-online-schema-change loses foreign keys
2263+* Fixed bug 846028: pt-online-schema-change does not show progress until completed
2264+* Fixed bug 898695: pt-online-schema-change add useless ORDER BY
2265+* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
2266+* Fixed bug 963225: pt-query-digest fails to set history columns for disk tmp tables and disk filesort
2267+* Fixed bug 967451: Char chunking doesn't quote column name
2268+* Fixed bug 972399: pt-table-checksum docs are not rendered right
2269+* Fixed bug 896553: Various documentation spelling fixes
2270+* Fixed bug 949154: pt-variable-advisor advice for relay-log-space-limit
2271+* Fixed bug 953461: pt-upgrade manual broken 'output' section
2272+* Fixed bug 949653: pt-table-checksum docs don't mention risks posed by inconsistent schemas
2273+
2274+v2.0.4 released 2012-03-07
2275+==========================
2276+
2277+Percona Toolkit 2.0.4 has been released. 23 bugs were fixed in this release,
2278+and three new features were implemented. First, --filter was added to pt-kill
2279+which allows for arbitrary --group-by. Second, pt-online-schema-change now
2280+requires that its new --execute option be given, else the tool will just check
2281+the tables and exit. This is a safeguard to encourage users to read the
2282+documentation, particularly when replication is involved. Third, pt-stalk
2283+also received a new option: --[no]stalk. To collect immediately without
2284+stalking, specify --no-stalk and the tool will collect once and exit.
2285+
2286+This release is completely backwards compatible with previous 2.0 releases.
2287+Given the number of bug fixes, it's worth upgrading to 2.0.4.
2288+
2289+Changelog
2290+---------
2291+
2292+* Added --filter to pt-kill to allow arbitrary --group-by
2293+* Added --[no]stalk to pt-stalk (bug 932331)
2294+* Added --execute to pt-online-schema-change (bug 933232)
2295+* Fixed bug 873598: pt-online-schema-change doesn't like reserved words in column names
2296+* Fixed bug 928966: pt-pmp still uses insecure /tmp
2297+* Fixed bug 933232: pt-online-schema-change can break replication
2298+* Fixed bug 941225: Use of qw(...) as parentheses is deprecated at pt-kill line 3511
2299+* Fixed bug 821694: pt-query-digest doesn't recognize hex InnoDB txn IDs
2300+* Fixed bug 894255: pt-kill shouldn't check if STDIN is a tty when --daemonize is given
2301+* Fixed bug 916999: pt-table-checksum error: DBD::mysql::st execute failed: called with 2 bind variables when 6 are needed
2302+* Fixed bug 926598: DBD::mysql bug causes pt-upgrade to use wrong precision (M) and scale (D)
2303+* Fixed bug 928226: pt-diskstats illegal division by zero
2304+* Fixed bug 928415: Typo in pt-stalk doc: --trigger should be --function
2305+* Fixed bug 930317: pt-archiver doc refers to nonexistent pt-query-profiler
2306+* Fixed bug 930533: pt-sift looking for *-processlist1; broken compatibility with pt-stalk
2307+* Fixed bug 932331: pt-stalk cannot collect without stalking
2308+* Fixed bug 932442: pt-table-checksum error when column name has two spaces
2309+* Fixed bug 932883: File Debian bug after each release
2310+* Fixed bug 940503: pt-stalk disk space checks wrong on 32bit platforms
2311+* Fixed bug 944420: --daemonize doesn't always close STDIN
2312+* Fixed bug 945834: pt-sift invokes pt-diskstats with deprecated argument
2313+* Fixed bug 945836: pt-sift prints awk error if there are no stack traces to aggregate
2314+* Fixed bug 945842: pt-sift generates wrong state sum during processlist analysis
2315+* Fixed bug 946438: pt-query-digest should print a better message when an unsupported log format is specified
2316+* Fixed bug 946776: pt-table-checksum ignores --lock-wait-timeout
2317+* Fixed bug 940440: Bad grammar in pt-kill docs
2318+
2319+v2.0.3 released 2012-02-03
2320+==========================
2321+
2322+Percona Toolkit 2.0.3 has been released. The development team was very
2323+busy last month making this release significant: two completely
2324+redesigned and improved tools, pt-diskstats and pt-stalk, and 20 bug fixes.
2325+
2326+Both pt-diskstats and pt-stalk were redesigned and rewritten from the ground
2327+up. This allowed us to greatly improve these tools' functionality and
2328+increase testing for them. The accuracy and output of pt-diskstats was
2329+enhanced, and the tool was rewritten in Perl. pt-collect was removed and
2330+its functionality was put into a new, enhanced pt-stalk. pt-stalk is now
2331+designed to be a stable, long-running daemon on a variety of common platforms.
2332+It is worth re-reading the documentation for each of these tools.
2333+
2334+The 20 bug fixes cover a wide range of problems. The most important are
2335+fixes to pt-table-checksum, pt-iostats, and pt-kill. Apart from pt-diskstats,
2336+pt-stalk, and pt-collect (which was removed), no other tools were changed
2337+in backwards-incompatible ways, so it is worth reviewing the full changelog
2338+for this release and upgrading if you use any tools which had bug fixes.
2339+
2340+Thank you to the many people who reported bugs and submitted patches.
2341+
2342+Download the latest release of Percona Toolkit 2.0 from
2343+http://www.percona.com/software/percona-toolkit/
2344+or the Percona Software Repositories
2345+(http://www.percona.com/docs/wiki/repositories:start).
2346+
2347+Changelog
2348+---------
2349+
2350+* Completely redesigned pt-diskstats
2351+* Completely redesigned pt-stalk
2352+* Removed pt-collect and put its functionality in pt-stalk
2353+* Fixed bug 871438: Bash tools are insecure
2354+* Fixed bug 897758: Failed to prepare TableSyncChunk plugin: Use of uninitialized value $args{"chunk_range"} in lc at pt-table-sync line 3055
2355+* Fixed bug 919819: pt-kill --execute-command creates zombies
2356+* Fixed bug 925778: pt-ioprofile doesn't run without a file
2357+* Fixed bug 925477: pt-ioprofile docs refer to pt-iostats
2358+* Fixed bug 857091: pt-sift downloads http://percona.com/get/pt-pmp, which does not work
2359+* Fixed bug 857104: pt-sift tries to invoke mext, should be pt-mext
2360+* Fixed bug 872699: pt-diskstats: rd_avkb & wr_avkb derived incorrectly
2361+* Fixed bug 897029: pt-diskstats computes wrong values for md0
2362+* Fixed bug 882918: pt-stalk spams warning if oprofile isn't installed
2363+* Fixed bug 884504: pt-stalk doesn't check pt-collect
2364+* Fixed bug 897483: pt-online-schema-change "uninitialized value" due to update-foreign-keys-method
2365+* Fixed bug 925007: pt-online-schema-change Use of uninitialized value $tables{"old_table"} in concatenation (.) or string at line 4330
2366+* Fixed bug 915598: pt-config-diff ignores --ask-pass option
2367+* Fixed bug 919352: pt-table-checksum changes binlog_format even if already set to statement
2368+* Fixed bug 921700: pt-table-checksum doesn't add --where to chunk size test on replicas
2369+* Fixed bug 921802: pt-table-checksum does not recognize --recursion-method=processlist
2370+* Fixed bug 925855: pt-table-checksum index check is case-sensitive
2371+* Fixed bug 821709: pt-show-grants --revoke and --separate don't work together
2372+* Fixed bug 918247: Some tools use VALUE instead of VALUES
2373+
2374+v2.0.2 released 2012-01-05
2375+==========================
2376+
2377+Percona Toolkit 2.0.2 fixes one critical bug: pt-table-sync --replicate
2378+did not work with character values, causing an "Unknown column" error.
2379+If using Percona Toolkit 2.0.1, you should upgrade to 2.0.2.
2380+
2381+Download the latest release of Percona Toolkit 2.0 from
2382+http://www.percona.com/software/percona-toolkit/
2383+or the Percona Software Repositories
2384+(http://www.percona.com/docs/wiki/repositories:start).
2385+
2386+Changelog
2387+---------
2388+
2389+* Fixed bug 911996: pt-table-sync --replicate causes "Unknown column" error
2390+
2391+v2.0.1 released 2011-12-30
2392+==========================
2393+
2394+The Percona Toolkit development team is proud to announce a new major version:
2395+2.0. Beginning with Percona Toolkit 2.0, we are overhauling, redesigning, and
2396+improving the major tools. 2.0 tools are therefore not backwards compatible
2397+with 1.0 tools, which we still support but will not continue to develop.
2398+
2399+New in Percona Toolkit 2.0.1 is a completely redesigned pt-table-checksum.
2400+The original pt-table-checksum 1.0 was rather complex, but it worked well
2401+for many years. By contrast, the new pt-table-checksum 2.0 is much simpler but
2402+also much more efficient and reliable. We spent months rethinking, redesigning,
2403+and testing every aspect of the tool. The three most significant changes:
2404+pt-table-checksum 2.0 does only --replicate, it has only one chunking algorithm,
2405+and its memory usage is stable even with hundreds of thousands of tables and
2406+trillions of rows. The tool is now dedicated to verifying MySQL replication
2407+integrity, nothing else, which it does extremely well.
2408+
2409+In Percona Toolkit 2.0.1 we also fixed various small bugs and forked ioprofile
2410+and align (as pt-ioprofile and pt-align) from Aspersa.
2411+
2412+If you still need functionalities in the original pt-table-checksum,
2413+the latest Percona Toolkit 1.0 release remains available for download.
2414+Otherwise, all new development in Percona Toolkit will happen in 2.0.
2415+
2416+Download the latest release of Percona Toolkit 2.0 from
2417+http://www.percona.com/software/percona-toolkit/
2418+or the Percona Software Repositories
2419+(http://www.percona.com/docs/wiki/repositories:start).
2420+
2421+Changelog
2422+---------
2423+
2424+* Completely redesigned pt-table-checksum
2425+* Fixed bug 856065: pt-trend does not work
2426+* Fixed bug 887688: Prepared statements crash pt-query-digest
2427+* Fixed bug 888286: align not part of percona-toolkit
2428+* Fixed bug 897961: ptc 2.0 replicate-check error does not include hostname
2429+* Fixed bug 898318: ptc 2.0 --resume with --tables does not always work
2430+* Fixed bug 903513: MKDEBUG should be PTDEBUG
2431+* Fixed bug 908256: Percona Toolkit should include pt-ioprofile
2432+* Fixed bug 821717: pt-tcp-model --type=requests crashes
2433+* Fixed bug 844038: pt-online-schema-change documentation example w/drop-tmp-table does not work
2434+* Fixed bug 864205: Remove the query to reset @crc from pt-table-checksum
2435+* Fixed bug 898663: Typo in pt-log-player documentation
2436+
2437+v1.0.1 released 2011-09-01
2438+==========================
2439+
2440+Percona Toolkit 1.0.1 has been released. In July, Baron announced planned
2441+changes to Maatkit and Aspersa development;[1] Percona Toolkit is the
2442+result. In brief, Percona Toolkit is the combined fork of Maatkit and
2443+Aspersa, so although the toolkit is new, the programs are not. That means
2444+Percona Toolkit 1.0.1 is mature, stable, and production-ready. In fact,
2445+it's even a little more stable because we fixed a few bugs in this release.
2446+
2447+Percona Toolkit packages can be downloaded from
2448+http://www.percona.com/downloads/percona-toolkit/
2449+or the Percona Software Repositories
2450+(http://www.percona.com/docs/wiki/repositories:start).
2451+
2452+Although Maatkit and Aspersa development use Google Code, Percona Toolkit
2453+uses Launchpad: https://launchpad.net/percona-toolkit
2454+
2455+[1] http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/
2456+
2457+Changelog
2458+---------
2459+
2460+* Fixed bug 819421: MasterSlave::is_replication_thread() doesn't match all
2461+* Fixed bug 821673: pt-table-checksum doesn't include --where in min max queries
2462+* Fixed bug 821688: pt-table-checksum SELECT MIN MAX for char chunking is wrong
2463+* Fixed bug 838211: pt-collect: line 24: [: : integer expression expected
2464+* Fixed bug 838248: pt-collect creates a "5.1" file
2465+
2466+v0.9.5 released 2011-08-04
2467+==========================
2468+
2469+Percona Toolkit 0.9.5 represents the completed transition from Maatkit and Aspersa. There are no bug fixes or new features, but some features have been removed (like --save-results from pt-query-digest). This release is the starting point for the 1.0 series where new development will happen, and no more changes will be made to the 0.9 series.
2470+
2471+Changelog
2472+---------
2473+
2474+* Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit.
2475+>>>>>>> MERGE-SOURCE
2476
2477=== added file 't/pt-online-schema-change/bug-1315130.t'
2478--- t/pt-online-schema-change/bug-1315130.t 1970-01-01 00:00:00 +0000
2479+++ t/pt-online-schema-change/bug-1315130.t 2014-07-03 18:13:52 +0000
2480@@ -0,0 +1,78 @@
2481+#!/usr/bin/env perl
2482+
2483+BEGIN {
2484+ die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
2485+ unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
2486+ unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
2487+};
2488+
2489+use strict;
2490+use warnings FATAL => 'all';
2491+use English qw(-no_match_vars);
2492+use Test::More;
2493+use Time::HiRes qw(sleep);
2494+
2495+$ENV{PTTEST_FAKE_TS} = 1;
2496+$ENV{PERCONA_TOOLKIT_TEST_USE_DSN_NAMES} = 1;
2497+
2498+use PerconaTest;
2499+use Sandbox;
2500+require "$trunk/bin/pt-online-schema-change";
2501+require VersionParser;
2502+
2503+use Data::Dumper;
2504+$Data::Dumper::Indent = 1;
2505+$Data::Dumper::Sortkeys = 1;
2506+$Data::Dumper::Quotekeys = 0;
2507+
2508+my $dp = new DSNParser(opts=>$dsn_opts);
2509+my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
2510+my $master_dbh = $sb->get_dbh_for('master');
2511+my $slave_dbh = $sb->get_dbh_for('slave1');
2512+
2513+if ( !$master_dbh ) {
2514+ plan skip_all => 'Cannot connect to sandbox master';
2515+}
2516+elsif ( !$slave_dbh ) {
2517+ plan skip_all => 'Cannot connect to sandbox slave';
2518+}
2519+
2520+my $q = new Quoter();
2521+my $tp = new TableParser(Quoter => $q);
2522+my @args = qw(--set-vars innodb_lock_wait_timeout=3);
2523+my $output = "";
2524+my $dsn = "h=127.1,P=12345,u=msandbox,p=msandbox";
2525+my $exit = 0;
2526+my $sample = "t/pt-online-schema-change/samples";
2527+my $rows;
2528+
2529+
2530+# #############################################################################
2531+# Issue 1315130
2532+# Failed to detect child tables in other schema, and falsely identified
2533+# child tables in own schema
2534+# #############################################################################
2535+
2536+$sb->load_file('master', "$sample/bug-1315130_cleanup.sql");
2537+$sb->load_file('master', "$sample/bug-1315130.sql");
2538+($output, $exit) = full_output(
2539+ sub { pt_online_schema_change::main(@args, "$dsn,D=bug_1315130_a,t=parent_table",
2540+ '--dry-run',
2541+ '--alter', "add column c varchar(16)",
2542+ '--alter-foreign-keys-method', 'auto'),
2543+ },
2544+);
2545+print STDERR "[$output]\n";
2546+ like(
2547+ $output,
2548+ qr/Child tables:\s*`bug_1315130_a`\.`child_table_in_same_schema` \(approx\. 1 rows\)\s*`bug_1315130_b`\.`child_table_in_second_schema` \(approx\. 1 rows\)[^`]*?Will/s,
2549+ "Correctly identify child tables from other schemas and ignores tables from same schema referencig same named parent in other schema.",
2550+ );
2551+# clear databases with their foreign keys
2552+$sb->load_file('master', "$sample/bug-1315130_cleanup.sql");
2553+
2554+# Done.
2555+# #############################################################################
2556+$sb->wipe_clean($master_dbh);
2557+ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
2558+done_testing;

Subscribers

People subscribed via source and target branches

to all changes: