Changelog for Percona Toolkit

v3.5.7 released 2023-12-23

This is a HotFix release that does not have any public bug fix

v3.5.6 released 2023-12-21

* Feature PR-669: Add pt-galera-log-explainer
* Improvement PT-1860: pt-osc case sensitivity issue (Thanks to Ivan Kruglov for the contribution)
* Improvement PR-388: Check undefined skip check slave lag schema change (Thanks to Chrys Swingler for the contribution)
* Improvement PR-471: Support adding explain output for slow query in JSON report as well (Thanks to Ayush Goyal for the contribution)
* Improvement PR-509: added new hook before_die (Thanks to Ilaria Migliozzi for the contribution)
* Improvement PR-681: Introduce EditorConfig (Thanks to Viktor Szépe for the contribution)
* Improvement PR-691: Fix newly discovered typos (Thanks to Viktor Szépe for the contribution)
* Improvement PR-706: Follow PR-429 unstop option with testcase (Thanks to fraff for the contribution)
* Improvement PR-712: ARM64 support for macOS
* Improvement PR-713: Fix MongoDB StorageEngine (Thanks to Viktor Szépe for the contribution)
* Improvement PR-714: Fix MongoDB Security (Thanks to Viktor Szépe for the contribution)
* Improvement PR-715: Fix variable collision with imported package name (Thanks to Viktor Szépe for the contribution)
* Improvement PR-716: Make OrderedBy not exported (Thanks to Viktor Szépe for the contribution)
* Improvement PR-720: build Go tools from top Makefile (Thanks to Sami Ahlroos and Yoann La Cancellera for the contribution)
* Fixed bug PT-2064: pt-archiver: Can't call method "rollback" on an undefined value (Thanks to Jakob for the contribution)
* Fixed bug PT-2083: Pt-archiver --charset option is not working for MySQL8.0
* Fixed bug PT-2109: pt-mysql-summary throws an error when using sql_mode="ANSI_QUOTES"
* Fixed bug PT-2207: pt-archiver doesn't work when ANSI_QUOTES is set in sql_mode
* Fixed bug PT-2211: This pstack return error code line number (Thanks to Zongzhi Chen for the contribution)
* Fixed bug PT-2268: pt-online-schema-change 3.5.5 breaks on mysql5.7 with server_id 0
* Fixed bug PT-2277: pt-visual-explain errors out on some valid inputs (Thanks to Jason Ng for the contribution)
* Fixed bug PT-2279: Option --charset is confusing when set to utf8mb4
* Fixed bug PT-2281: provide container name for copying files in the dump
* Fixed bug PT-2286: CVE reported in Percona Toolkit version 3.5.5 related to GO (Thanks to Kushal Haldar for reporting this issue)

v3.5.5 released 2023-10-03

* Feature PR-645: Add after nibble hook to pt-online-schema-change (Thanks to Marcelo HP Ferreira for the contribution)
* Feature PT-2258: Pass tbl as argument for on_copy_rows_after_nibble
* Feature PT-2168: PT-OSC shouldn't fail while unable to monitor a replica node
* Improvement PT-2156: Fix tests for lib
* Improvement: Fixed typos, removed trailing whitespaces, added spelling workflow to GitHub (Thanks to Viktor Szépe for the contributions)
* Fixed bug PT-2235: pt-mongodb-index-check does not support option --version
* Fixed bug PT-2236: pt-secure-collect, pt-pg-summary do not follow PT standard for option --version
* Fixed bug PT-2241: using --skip-check-slave-lag multiple times does not work as expected (Thanks to PinoCao for the contribution)
* Fixed bug PT-2246: CVE reported in Percona Toolkit version 3.5.4 related to Go (Thanks to Kushal Haldar for reporting this issue)
* Fixed bug PT-2248: pt-k8s-debug-collector does not run pg_gather with K8SPG 2

v3.5.4 released 2023-06-30

* Improvement PT-2151: Fix tests for pt-query-digest
* Improvement PR-614: Support for environments that do not have SQL mode, such as OceanBase (Thanks to hanzhongzi for the contribution)
* Improvement PR-617: Remove $has_child_tables var (Thanks to Ricardo for the contribution)
* Fixed bug PT-2101: pt-mongodb-query-digest doesn't work on standalone server
* Fixed bug PT-813: LP #1371774: pt-query-digest inconsistent rank order
* Fixed bug PT-981: LP #1008240: t/pt-query-digest/processlist.t occasionally fails
* Fixed bug PT-2229: CVE reported in Percona Toolkit version 3.5.3 related to Logrus (Thanks to Kushal Haldar for reporting this issue and testing the fix)

v3.5.3 release 2023-06-05

* Fixed bug PT-1583: Skipping chunks when using pt-online-schema-change (Thanks to monty solomon for reporting this issue)
* Fixed bug PT-2048: pt-osc spans excessive connections to the replica when executing in the source
* Fixed bug PT-2169: pt-k8s-debug-collector integration of pg_gather requires croping first line of the output file
* Fixed bug PT-2203: CVEs reported in Percona Toolkit version 5.3.2 related to GO (Thanks to Kushal Haldar for reporting this issue)
* Fixed bug PT-2196: Bug in pt-secure-collect --output-file (Thanks to Michael Patrick for reporting and fixing this issue)

v3.5.2 release 2023-03-28

* Improvement PT-188:  Use percona.checksums in examples
* Improvement PT-2141: Fix tests for pt-archiver
* Improvement PT-2149: Fix tests for pt-mext
* Improvement PT-2150: Fix tests for pt-mysql-summary
* Improvement PT-2152: Fix tests for pt-show-grants
* Improvement PT-2155: Fix tests for pt-upgrade
* Improvement PT-2156: Fix tests for lib
* Improvement PT-2159: Fix tests for pt-duplicate-key-checker
* Improvement PT-2160: Fix tests for pt-online-schema-change
* Improvement PT-2161: Fix tests for pt-slave-restart
* Improvement PT-2164: pt-k8s-debug-collector does not have version flag
* Improvement PT-2165: Actual Version, GoVersion, and Build for Go tools
* Fixed bug PT-215: Documentation fix
* Fixed bug PT-1059: LP #1093972: Tools can't parse index names containing newlines
* Fixed bug PT-1389: LP #1637859: [pt-variable-advisor] Docs Typos
* Fixed bug PT-1594: Need correction in the Documentation - pt-mysql-summary
* Fixed bug PT-1595: percona toolkit docs still reference Maatkit
* Fixed bug PT-1642: Update PT docs to reference bug reporting location as Percona JIRA
* Fixed bug PT-1683: List of supported distributions in the docs is outdated
* Fixed bug PT-1700: pt-table-checksum REPLICATION_STOPPED exit status not documented
* Fixed bug PT-1927: pt-k8s-debug-collector requires mysql client
* Fixed bug PT-1930: pt-k8s-debug-collector should not attempt collecting PXC information when running against PSMDB
* Fixed bug PT-2084: Changes from PT-80 broke previous pt-stalk functionality (Thanks Agustín Gallego)
* Fixed bug PT-2102: pt-mysql-summary should support !include* in config files (Thanks Yoann La Cancellera)
* Fixed bug PT-2110: Incorrect PTDEBUG output with --ignore-engines option (Thanks Kazuya Yokogawa)
* Fixed bug PT-2114: Incorrect casting of BIT columns by pt-archiver
* Fixed bug PT-2116: pt-osc --null-to-not-null description is wrong (Thanks Yoann La Cancellera)
* Fixed bug PT-2120: pt-stalk with --system-only displaying "MYSQL_ONLY:" message on the screen
* Fixed bug PT-2123: pt-archiver gives error "Wide character in print at /usr/bin/pt-archiver line 6815" when using --bulk-insert while using character set alias
* Fixed bug PT-2187: CVEs reported in Percona Toolkit version 5.3.1 related to GO.

v3.5.1 release 2023-01-23

* Feature     PT-2134: Add support for PostgreSQL and MySQL operators in pt-k8s-debug-collector
* Improvement PT-2138: Fix tests for pt-table-checksum
* Improvement PT-2142: Fix tests for pt-config-diff
* Improvement PT-2143: Fix tests for pt-deadlock-logger
* Improvement PT-2144: Fix tests for pt-fifo-split
* Improvement PT-2145: Fix tests for pt-find
* Improvement PT-2146: Fix tests for pt-fk-error-logger
* Improvement PT-2147: Fix tests for pt-heartbeat
* Improvement PT-2148: Fix tests for pt-kill
* Improvement PT-2153: Fix tests for pt-slave-find
* Fixed bug   PT-2139: CVEs in golang binaries
* Fixed bug   PT-2140: Update modules in the main branch
* Fixed bug   PR-462:  Fix some spelling errors (Thanks Dario Minnucci)

v3.5.0 release 2022-11-28

* Improvement PT-1052: Include NUMA information in pt-tool output
* Improvement PT-1926: pt-k8s-debug-collector should not collect passwords
* Improvement PT-2033: Avoid running same query concurrently from pt-stalk
* Improvement PT-2105: Let pt-k8-debug-collector to collect individual logs in PXC pods in addition to `kubectl logs`
* Improvement PT-2107: Merge Community PRs 466, 298, 58, 53 into 3.x
* Improvement PT-2080: Add JSON logging to pt-kill (Thanks dm-2)
* Improvement PT-2091: Migrate docs to Render
* Fixed bug   PT-1739: disable-qrt-plugin option of pt-table-checksum is broken (Thanks E. Souhrada)
* Fixed bug   PT-1799: pt-osc + PTDEBUG=1 fails with Use of uninitialized value in concatenation (.) or string at /usr/bin/pt-online-schema-change line 4270
* Fixed bug   PT-1897: pt-stalk on MySQL 8 not collecting "lock" information
* Fixed bug   PT-1959: go part of the toolkit still has the version 3.3.0
* Fixed bug   PT-2075: Fix tests for pt-stalk, so they can work with 8.0
* Fixed bug   PT-2092: Improper version of protobuf in go.sum
* Fixed bug   PT-2125: Documentation outdated or missed for tools, written in Go
* Fixed bug   PT-2086: Typos (Thanks Iwo Panowicz)
* Fixed bug   PR-553:  Fix some typos in documentation of pt-query-digest (Thanks Christian Bartolomäus)
* Fixed bug   PR-53:   Docs table regex (Thanks Daniël van Eeden)
* Fixed bug   PR-58:   Correcting specified package type in error message (Thanks Daniel Hoherd)
* Fixed bug   PR-298:  Fix typo (Thanks Moritz Lenz)

v3.4.0 release 2022-07-11

 * New Tool    PT-1978: Add reporting on unused/redundant indexes for MongoDB by pt-mongodb-summary
 * Improvement PT-1417: Inconsistent creation of toolkit tables
 * Improvement PT-1800: The environment variable PTDEBUG=1 exposes the passwords
 * Improvement PT-1940:	ptsoc dropswap method that was rejected for Mysql 8 has been fixed with Mysql 8.0.14
 * Improvement PT-1979: Add gathering of admin parameters for MongoDB by pt-mongodb-summary
 * Improvement PT-2037: Add option --skip-mysql or --system-only for pt-stalk
 * Fixed bug   PT-1218: pt-stalk ominous open_tables function
 * Fixed bug   PT-1336: pt-stalk removes user's files from the destination directory
 * Fixed bug   PT-1398: pt-stalk gets the incorrect mysqld pid when the host installed a multi MySQL instance
 * Fixed bug   PT-1627:	pt-mysql-summary doesn't verify which version of jemalloc is in use
 * Fixed bug   PT-1747: pt-online-schema-change: metadata lock can break database for rebuild_constraints
 * Fixed bug   PT-1887: pt-diskstat is not working for new kernels
 * Fixed bug   PT-1900: At times, pt-query-digest does not hide the parameters properly when parameter=binary
 * Fixed bug   PT-1953: pt-summary typo: Memory management.
 * Fixed bug   PT-1959: go part of the toolkit still has the version 3.3.0
 * Fixed bug   PT-1965: pt-stalk --mysql-only doesn't collect mysqladmin output (Thanks Sergey Kuzmichev)
 * Fixed bug   PT-1966: Test no_drop_no_swap for the pt-online-schema-change is broken (Thanks Tsubasa Tanaka)
 * Fixed bug   PT-1974: Support fingerprinting for --print in pt-kill
 * Fixed bug   PT-1983:	pt-summary missing one DIMM
 * Fixed bug   PT-2016: pt-table-checksum fails to build replace query when table lacks primary key
 * Fixed bug   PT-2023: pt-upgrade Error: Wide character in print

v3.3.1 release 2021-04-28

 * Fixed bug   PT-716 : pt-summary reports wrong memory size
 * Fixed bug   PT-1914: Column data lost when 'Generated' is in the column comment
 * Fixed bug   PT-1919: pt-online-schema change drop_swap can lose triggers. (Thanks Bob)
 * Fixed bug   PT-1943:	BEFORE triggers are dropped after pt-online-schema-change run

v3.3.0 release 2021-01-14

 * Improvement PT-1940: Added mysql version check for bug fix introduced in 8.0.14 (Thanks duxthefux)
 * Fixed bug   PT-1919: pt-online-schema change drop_swap can lose triggers. (Thanks Bob)
 * Fixed bug   PT-1914: Column data lost when 'Generated' is in the column comment
 * Fixed bug   PT-716 : pt-summary reports wrong memory size
 * Fixed bug   PT-1983: pt-summary missing one DIMM (Thanks Sergey Kuzmichev)

v3.3.0 release 2021-01-14

 * Fixed bug   PT-169 : pt-online-schema-change FKs error handling.
 * Fixed bug   PT-1518: pt-table-checksum gives error CRC32. (Thanks @ovidiustanila)
 * Fixed bug   PT-1822: pt-mongodb-summary fails on standalone mongodb instances
 * Fixed bug   PT-1829: pt-heartbeat doesn't reconnect for check-read-only
 * Improvement PT-1836: Review and consider lintian reported issues
 * Improvement PT-1851: Backslashes missing from documentation
 * Improvement PT-1853: Added --no-check-foreign-keys to pt-osc
 * Fixed bug   PT-1857: pt-heartbeat cannot reconnect.
 * Fixed bug   PT-1859: pt-pg-summary fails for Postgres12 (Thanks Sergey Kuzmichev)
 * Fixed bug   PT-1881: pt-upgrade fails when query including format strings and SQL errors is given (Thanks Nayuta Yanagisawa)
 * Fixed bug   PT-1892: pt-summary says sshd not running

v3.2.0 release 2020-04-23

 * Fixed bug   PT-1824: Name of a constraint can exceed 64 chars (Thanks Iwo Panowicz)
 * Fixed bug   PT-1793: Protocol parser cannot handle year 2020 (Thanks Kei Tsuchiya)
 * Fixed bug   PT-1782: pt-online-schema-change: FK keys warning, but there are no foreign keys
 * Fixed bug   PT-1773: pt-online-schema-change: Restrict the FK check if needed
 * Fixed bug   PT-1766: pt-table-checksum: DIFF_ROWS is not computed correctly
 * Improvement PT-1765: Documentation for pt-table-checksum's DIFF_ROWS
 * Fixed bug   PT-1760: pt-online-schema-change: regression on slave with replication channels
 * Fixed bug   PT-1759: pt-stalk not collecting processlist and variables
 * Improvement PT-1757: pt-table-checksum: Improvement on handling Small Tables
 * Improvement PT-1707: IPv6 support
 * Fixed bug   PT-1576: pt-stalk mysql-only not working as expected
 * Fixed bug   PT-1502: pt-online-schema-change not working with multi-source replication
 * Fixed bug   PT-297 : pt-online-schema-change can break replication

 v3.1.0 release 2019-09-12

 * Fixed bug   PT-1114: pt-table-checksum fails when table is empty
 * Fixed bug   PT-1344: pt-online-schema-change: Use of uninitialized value $host in string
 * Fixed bug   PT-1575: pt-mysql-summary does not print PXC section for PXC 5.6 and 5.7
 * Fixed bug   PT-1630: pt-table-checksum not working with galera cluster anymore since 3.0.11
 * Fixed bug   PT-1633: Fix incorrect parsing of a variable with number + K,M,G,T (Thanks Dieter Adriaenssens)
 * Fixed bug   PT-1633: pt-config-diff doesn't handle innodb_temp_data_file_path correctly
 * Improvement PT-1663: Implement retention by bytes for pt-stalk
 * Fixed bug   PT-1670: pt-table-checksum fails when table is empty
 * New-tool    PT-1696: pt-postgresql-summary
 * Improvement PT-1705: Make pt-online-schema-change exit with different codes depending on the status
 * Fixed bug   PT-1709: Error: Use of uninitialized value in concatenation (.) or string at pt-upgrade
 * Fixed bug   PT-1715: pt-upgrade documentation doesn't have the type tcpdump
 * Fixed bug   PT-1720: pt-pmp parses configuration files that lead to errors
 * Fixed bug   PT-1728: Pt-table-checksum failing to scan small tables that get wiped out often
 * Fixed bug   PT-1734: Tailing log_error in pt-stalk doesn't work
 * Improvement PT-1741: Migration to new MongoDB driver
 * Improvement PT-1746: diskstats not working for kernel 4.18+
 * Improvement PT-1761: Prevent pt-osc to run under MySQL 8.0.14 ~ 8.0.17

v3.0.13 released 2018-12-28

 * Fixed bug   PT-1673: Fix pt-show-grants for MariaDB 10+ (thanks Tim Birkett)
 * Fixed bug   PT-1638: pt-online-schema-change not working with MariaDB 10.x
 * Improvement PT-1637: Added --fail-on stopped-replication param to table checksum
 * Fixed bug   PT-1616: pt-table-checksum fails to --resume on certain binary strings
 * Fixed bug   PT-1573: pt-query-digest log_timestamps = SYSTEM # No events processed
 * Improvement PT-1340: pt-stalk should not call mysqladmin debug by default
 * Fixed bug    PT-157: Specifying the index to use for pt-archiver ignores --primary-key-only

v3.0.12 released 2018-09-13

 * Fixed bug   PT-1611: pt-archiver fails with UTF-8 chars
 * Fixed bug   PT-1574: pt-online-schema-change fails on UK and NULLs
 * Fixed bug   PT-1572: Better usage of ENUM fields in keys in NibbleIterator
 * Fixed bug   PT-1422: pt-mysql-summary may get stuck when Time: NULL in processlist
 * Improvement PT-1321: Add required MySQL privileges to pt-online-schema-change documentation

v3.0.11 released 2018-07-06

 * Improvement PT-1571 : Improved hostname recognition in pt-secure-collect
 * Fixed bug   PT-1570 : pt-archiver fails to detect columns with the word GENERATED as part of the comment
 * Improvement PT-1569 : Disabled --alter-foreign-keys-method=drop_swap in pt-osc
 * Fixed bug   PT-1563 : Fixed pt-show-grants for MySQL 5.6
 * Improvement PT-1562 : pt-mysql-summary: Fix mysqld command for Travis
 * Fixed bug   PT-1551 : pt-table-checksum fails on MySQL 8.0.11
 * Improvement  PT-242 : (pt-stalk) Include SHOW SLAVE STATUS on 5.7 (Thanks Marcelo Altmann)
 * Fixed bug    PT-241 : (pt-stalk) Slave queries doesn't run on 5.7 (Thanks Marcelo Altmann)

v3.0.10 released 2018-05-21

 * Fixed bug   PT-1556 : pt-table-checksum 3.0.9 doesn't change binlog_format to statement anymore
 * Improvement PT-1546 : Improved support of MySQL 8 roles
 * Improvement PT-1543 : Encrypted table status query causes high load over multiple minutes
 * Improvement PT-1536 : Add info about encrypted tablespaces in pt-mysql-summary
 * Feature      PT-131 : Make pt-table checksum to disable QRT plugin
 * Feature      PT-118 : pt-table-checksum report the number of rows of difference between master and slave

v3.0.9 released 2018-04-17

 * Feature     PT-1530 : Add support for encryption status to mysql-summary
 * Feature     PT-1526 : Add ndb status to pt-mysql-summary (Thanks Fernando Ipar)
 * Feature     PT-1525 : Added support for MySQL 8 roles into pt-mysql-summary
 * Feature     PT-1509 : Only set binlog_format when necessary (Thanks Moritz Lenz)
 * Feature     PT-1508 : Adding --read-only-interval flag, and read-only check on wake-up (Thanks Shlomi Noach)
 * Improvement PT-1507 : pt-summary does not reliably read in the transparent huge pages setting (Thanks Nick Veenhof)
 * New tool    PT-1501 : pt-secure-collect - New tool to collect and sanitize pt-tools outputs
 * Feature      PT-243 : Adding --max-hostname-length and --max-line-length to pt-query-digest

v3.0.8 released 2018-03-13

 * Feature     PT-1500 : add --secure-slowlog option to pt-query digest

v3.0.7 released 2018-03-01

 * Fixed Bug    PT-244 : pt-online-schema-change --data-dir option broken for partitioned table
 * Feature      PT-633 : Added --mysql-only option to pt-stalk for RDS
 * Fixed bug    PT-1256: pt-table-sync does not use the character set for the table it is synchronizing
 * Fixed bug    PT-1455: pt-osc is stuck when the table that is being altered is filtered out in the slave
 * Fixed bug    PT-1485: pt-mysql-summary has broken Security section in versions bigger then 5.6
 * Fixed bug   PMM-1905: Explain fails if encounters negative "ntoreturn"

v3.0.6 released 2017-12-20

 * Fixed bug     PT-234: Genaral log parser cannot handle timestamps with tz
 * Fixed bug     PT-229: pt-online-schema-change does not retry on deadlock error when using percona 5.7
 * Fixed bug     PT-225: pt-table-checksum ignores generated cols
 * Improvement   PT-221: pt-table-sync pt-table-sync support for MyRocks
 * Improvement   PT-218: pt-stalk checks RocksDB status
 * Improvement   PT-214: Added RocksDB section to pt-mysql-summary
 * Improvement   PT-205: pt-osc show message if trying to set engine to rocksdb and binlog_format != row
 * Improvement   PT-204: Make pt-table-checksum to skip RocksDB tables

v3.0.5 released 2017-11-20

 * Improvement PMM-1590: Improve MongoDB Profiler for PMM and PT
 * Improvement   PT-216: mongodb-query digest improved support for v<3.2 fixed incorrect output (Thanks MATSUU Takuto)
 * Fixed bug     PT-211: pt-mext fails on Rsa_public_key line
 * Fixed bug     PT-212: pt-mongodb-query-digest shows NaNs
 * Fixed bug     PT-202: pt-online-schema-change fails with virtual columns
 * Fixed bug     PT-200: Index with keyword 'unique' as prefix/suffix considered as unique
 * Fixed bug     PT-199: pt-table-checksum does not make the session statement based when using row based replication
 * Fixed bug     PT-196: pt-onine-schema-change is pausing because {some_status_variable}=0
 * Fixed bug     PT-193: pt-table-checksum reports misleading error if comment has apostroph
 * Fixed bug     PT-187: pt-table-checksum not able to get differences for columns
 * Fixed bug     PT-186: pt-online-schema-change --alter fails if fields are using mixed case
 * Fixed bug     PT-183: pt-mongodb-query-digest cannot connect to a db using authentication
 * Feature       PT-182: Provide JSON output format for pt-summary, pt-mysql-summary, pt-mongodb-summary
 * Fixed bug     PT-167: pt-kill kills prepared statements without checking busy-time
 * Fixed bug     PT-161: Safely check for undefined values in --skip-check-slave-lag
 * Feature       PT-152: Add Show Slave Hosts to pt-mysql-summary
 * Feature       PT-139: Add support for replication channels (MySQL 5.7+) to pt-table-sync

v3.0.4 released 2017-08-02

 * Fixed bug PT-181 : pt-online-schema-change not in sync with modules (Thanks Daniël van Eeden)
 * Fixed bug PT-180 : pt-online-schema-change --skip-check-slave-lag doesn't work
 * Fixed bug PT-178 : pt-online-schema-change appears to ignore the --check-slave-lag option
 * Fixed bug PT-162 : Updated pt-table-checksum ignored dbs (Thanks Agustin Gallego)
 * Fixed bug PT-161 : Safely check for undefined values in --skip-check-slave-lag (Thanks Chris Swingler)
 * Fixed bug PT-154 : pt-online-schema-change --no-use-insert-ignore is broken
 * Fixed bug PT-153 : pt-online-schema-change data loss when adding unique keys
 * Fixed bug PT-151 : point is not decimal
 * Fixed bug PT-148 : pt-osc Use of uninitialized value in printf
 * Fixed bug PT-146 : Turn off statement based binlog checks
 * Fixed bug PT-144 : Constraint name is too long (> 64 chars)
 * Fixed bug PT-143 : pt-archiver SELECT query fails because of primary key
 * Fixed bug PT-142 : pt-online-schema-change find_child_tables slow
 * Fixed bug PT-138 : Added --output-format option to pt-mongodb-summary
 * Fixed bug PT-136 : pt-table-checksum fails with columns having different collation/charset
 * Feature   PT-173 : Enable pt-table-checksum to ensure stale data is removed
 * Feature   PT-141 : pt-archiver archive records into csv file
 * Feature   PT-91  : Make pt-osc compatible with AFTER triggers
 * Feature   PT-90  : pt-stalk: Collect information about prepared statements if P_S is enabled (Thanks Agustin Gallego)

v3.0.3 released 2017-05-19

 * Fixed bug PT-133 : Sandbox won't start correctly if autocommit=0 in my.cnf
 * Fixed bug PT-132 : pt-online-schema-change should imply --no-drop-new-table
 * Fixed bug PT-130 : Fixed pt-mext not working with not empty Rsa_public_key
 * Fixed bug PT-128 : pt-stalk ps include memory usage outputs
 * Fixed bug PT-126 : Recognize comments in ALTER
 * Fixed bug PT-116 : pt-online-schema change eats data on adding a unique index. Added --[no]use-insert-ignore
 * Fixed bug PT-115 : Made OptionParser to accept repeatable DSNs
 * Fixed bug PT-111 : Collect MySQL variables
 * Fixed bug PT-087 : Add --skip-check-slave-lag to pt-table-checksum
 * Fixed bug PT-086 : Added --skip-check-slave-lag to pt-osc
 * Fixed bug PT-080 : Added support for slave status in pt-stalk
 * Feature   PT-115 : Make DSNs params able to be repeatable

v3.0.2 released 2017-03-23

 * Fixed bug PT-101 : pt-table-checksum ignores slave-user and slave-password
 * Fixed bug PT-105 : pt-table-checksum fails if a database is dropped while the tool is running
 * Fixed bug PT-73  : pt-mongodb tools add support for SSL connections
 * Fixed bug PT-74  : pt-mongodb-summary Cannot get security settings when connected to a mongod instance
 * Fixed bug PT-75  : pt-mongodb-query-digest Change the default sort order to -count (descending)
 * Fixed bug PT-76  : pt-mysql-summary password doesn't support '&' and '#' symbols
 * Fixed bug PT-77  : Update Makefile for mongodb tools
 * Fixed bug PT-81  : Collect information about locks and transactions using P_S (Thanks Agustin Gallego)
 * Fixed bug PT-89  : pt-stalk top CPU usage is useless
 * Fixed bug PT-93  : Fix pt-mongodb-query-digest query ID (Thanks Kamil Dziedzic)
 * Fixed bug PT-94  : pt-online-schema-change makes duplicate rows in _t_new for UPDATE t set pk=0 where pk=1
 * Fixed bug PT-96  : Fixed PT tests

v3.0.1 released 2017-02-16

v3.0 released 2017-02-03

 * Fixed bug 1402776: Improved fix (protocol parser fix): error when parsing tcpdump capture with pt-query-digest
 * Fixed bug 1632522: pt-osc: Fails with duplicate key in table for self-referencing (Thanks Amiel Marqeta)
 * Fixed bug 1654668: pt-summary exists with an error (Thanks Marcelo Altmann)
 * New tool         : pt-mongodb-summary
 * New tool         : pt-mongodb-query-digest

v2.2.20  released 2016-12-09

 * Fixed bug 1362942: pt-slave-restart fails on MariaDB 10.0.13 (gtid_mode confusion)
 * Fixed bug 1566556: pt-show-grants fails against MariaDB10+
 * Feature   1604834: pt-query-digest numbers in table or column names converted to question marks (--preserve-embedded-numbers)
 * Fixed bug 1613915: pt-online-schema-change misses data.  Fixed sort order for ENUM fields
 * Fixed bug 1625005: pt-online-schema-change doesn't apply underscores to foreign keys individually
 * Fixed bug 1634900: pt-upgrade fails with SELECT INTO
 * Fixed bug 1635734: pt-slave-restart --config does not recognize = as separator
 * Feature   1636068: Added pause to NibbleIterator
 * Feature   1638293: --data-dir parameter in order to create the table on a different partition
 * Feature   1639052: with pt-table-checksum automatically exclude checking schemas named percona, percona_schema
 * Feature   1642364: pt-online-schema-change Added --remove-data-dir feature
 * Feature   1643914: Fixed several typos in the doc (Thanks Dario Minnucci)
 * Feature   1643940: Add Transparent huge pages info to pt-summary
 * Feature   1643941: Add Memory management library to pt-mysql-summary

v2.2.19 released 2016-08-15

 * Feature   1610385: Recheck the list of slaves while OSC runs (Thanks Daniël van Eeden & Mikhail Izioumtchenko)
 * Fixed bug 1221372: pt-osc should error if server is a slave in row based replication
 * Fixed bug 1485195: pt-table-checksum should force replica table charset to utf8 Edit (Thanks Jaime Crespo)
 * Fixed bug 1517155: Added --create-table-engine param to pt-heartbeat
 * Fixed bug 1581752: SlowLogParser is able to handle dates in RFC339 format for MySQL 5.7 (Thanks Nickolay Ihalainen)
 * Fixed bug 1592166: pt-kill leaks memory each time it kills a query
 * Fixed bug 1592608: Large BLOB/TEXT/BINARY Produces NULL Checksum (Thanks Jervin Real)
 * Fixed bug 1593265: Fixed pt-archiver deletes wrong rows #103 (Thanks Tibor Korocz & David Ducos)
 * Fixed bug 1595678: Added --slave-user and --slave-password to pt-online-schema-change & pt-table-sync
 * Fixed bug 1610386: Handle GTID ranges where the left-side integer is larger than 9 (Thanks @sodabrew)
 * Fixed bug 1610387: Remove extra word 'default' from the --verbose help (Thanks @sodabrew)
 * Fixed bug 1610388: add enum column type to is_char check so that values are properly quoted (Thanks Daniel Kinon)

v2.2.18 released 2016-06-24

 * Feature 1537416  :  pt-stalk now sorts the output of transactions by id
 * Feature 1553340  :  Added "Shared" memory info to pt-summary
 * Feature PT-24    :  Added the --no-vertical-format option for pt-query-digest, allowing compatibility with non-standard MySQL clients that don't support the \G directive at the end of a statement
 * Fixed bug 1402776:  Fixed error when parsing tcpdump capture with pt-query-digest
 * Fixed bug 1521880:  Improved pt-online-schema-change plugin documentation
 * Fixed bug 1547225:  Clarified the description of the --attribute-value-limit option for pt-query-digest
 * Fixed bug 1569564:  Fixed all PERL-based tools to return a zero exit status when run with the --version option
 * Fixed bug 1576036:  Fixed error that sometimes prevented to choose the primary key as index, when using the -where option for pt-table-checksum
 * Fixed bug 1585412:  Fixed the inability of pt-query-digest to parse the general log generated by MySQL (and Percona Server) 5.7 instance
 * Fixed bug PT-36  :  Clarified the description of the --verbose option for pt-slave-restart

v2.2.17 released 2016-03-07

 * Feature          :  General compatibility with MySQL 5.7 tools, docs and test suite
 * Fixed bug 1529411:  pt-mysql-summary displays incorrect info about Fast Server Restarts for Percona Server 5.6
 * Fixed bug 1506748:  pt-online-schema-change cannot set sql_mode using --set-vars
 * Fixed bug 1336734:  pt-online-schema-change added --null-to-non-null option to allow NULLable columns to be converted to NOT NULL
 * Fixed bug 1498128:  pt-online-schema-change doesn't apply underscores to foreign keys individually
 * Fixed bug 1523685:  pt-online-schema Invalid recursion method: t=dsns
 * Fixed bug 1526105:  pt-online-schema-change fails when using --no-drop-old-table after 10 times
 * Fixed bug 1536305:  pt-query-digest : Redundant argument in sprintf
 * Fixed bug PT-27  :  pt-query-digest doc bug with --since and too many colons
 * Fixed bug PT-28  :  pt-query-digest: Make documentation of --attribute-value-limit option more clear
 * Fixed bug 1435370:  pt-show-grants fails against MySQL-5.7.6
 * Fixed bug 1523730:  pt-show-grants doesn't sort column-level privileges
 * Fixed bug 1362942:  pt-slave-restart fails on MariaDB 10.0.13 (gtid_mode confusion)
 * Fixed bug PT-30  :  pt-stalk: new var binlog_error_action causes bug in collect module
 * Fixed bug 1389041:  pt-table-checksum has high likelihood to skip a table when row count is around chunk-size * chunk-size-limit
 * Fixed bug 1480719:  pt-table-checksum redundant argument in printf

v2.2.16 released 2015-11-09

  * Fixed bug 1452895: pt-archiver dies with "MySQL server has gone away" when innodb_kill_idle_transaction set to low value and bulk insert/delete process takes too long time
  * Fixed bug 1488685: pt-kill option --filter does not work
  * Feature   1402051: pt-online-schema-change should reconnect to slaves
  * Fixed bug 1491261: pt-online-schema-change, MySQL 5.6, and InnoDB optimizer stats can cause downtime
  * Fixed bug 1494082: pt-stalk find -warn option is not portable
  * Feature   1389041: Document that pt-table-checksum has high likelihood to skip a table when row count is around chunk-size * chunk-size-limit

v2.2.15 released 2015-08-28

  * Fixed bug 1056507: pt-archiver checked lag too frequently
  * Fixed bug 1443763: pt-archiver clarified function of --check-interval [DOC]
  * Feature   1452911: pt-archiver now accepts checking lag on multiple slaves
  * Feature   1413137: pt-archiver now checks for PXC flow control via --max-flow-ctl option
  * Fixed bug 1452914: pt-archiver options --no-delete and --purge were not mutually exclusive
  * Fixed bug 1449226: pt-archiver mysql timed out when innodb_kill_idle_transaction set to low value and check-slave-lag used
  * Fixed bug 1462904: pt-duplicate-key-checker doesn't support triple quote in column name
  * Feature   1470127: pt-kill enable support for RDS
  * Fixed bug 1455486: pt-mysql-summary lacked an --ask-pass option
  * Feature   1413140: pt-online-schema-change added --sleep option
  * Fixed bug 1446928: pt-online-schema-change core dump on erroneous alter directive
  * Feature   1413101: pt-online-schema-change now checks for PXC flow control via --max-flow-ctl option
  * Fixed bug 1450499: pt-online-schema-change unstable signal handling
  * Feature   1215587: pt-online-schema-change now controls constraint name length
  * Fixed bug 1441928: pt-online-schema-change --chunk-size-limit=0 inhibited checksumming of single nibble tables
  * Fixed bug 1457573: pt-sift failed when fetching missing tools
  * Feature   1488600: pt-stalk monitors tokudb status
  * Fixed bug 1042727: pt-table-checksum doesn't reconnect to slaves when timed out on very long lags
  * Fixed bug 1277049: password parameter must escape commas - all tools [DOC]
  * Fixed bug BLD-271: changes needed to build packages from git tree
  * Fixed bug PT-21  : write-user-docs script stopped working after switching to github
  * Fixed bug 1488611: testing bugs related to newer perl versions

v2.2.14 released 2015-04-14

  * Fixed bug 1402730: pt-duplicate-key-checker seems useless with MySQL 5.6
  * Fixed bug 1415646: pt-duplicate-key-checker documentation does not explain how Size Duplicate Indexes is calculated
  * Fixed bug 1406390: pt-heartbeat crashes with sleep argument error
  * Fixed bug 1368244: pt-online-schema-change --alter-foreign-keys-method=drop-swap is not atomic
  * FIxed bug 1417864: pt-online-schema-change documentation, the interpretation of --tries create_triggers:5:0.5,drop_triggers:5:0.5 is wrong
  * Fixed bug 1404313: pt-query-digest: specifying a file that doesn't exist as log causes the tool to wait for STDIN instead of giving an error
  * Feature   1418446: pt-slave-find resolve IP addresses option
  * Fixed bug 1417558: pt-stalk with --collect-strace output doesn't go to an YYYY_MM_DD_HH_mm_ss-strace file
  * Fixed bug 1425478: pt-stalk removes non-empty files that start with empty line
  * Fixed bug  925781: pt-table-checksum checksum error when default-character-set = utf8
  * Fixed bug 1381280: pt-table-checksum fails on BINARY field in PK
  * Feature   1439842: pt-table-sync lacks --ignore-tables-regex option
  * Fixed bug 1401399: pt-table-sync fails to close one db handle
  * Fixed bug 1442277: pt-table-sync-ignores system databases but doc doesn't clarify this
  * Fixed bug 1421781: pt-upgrade fails on SELECT ... INTO queries
  * Fixed bug 1421405: pt-upgrade fails to aggregate queries based on fingerprint
  * Fixed bug 1439348: pt-upgrade erroneously reports number of diffs
  * Fixed bug 1421025: rpm missing dependency on perl-TermReadKey for --ask-pass

v2.2.13 released 2015-01-26

  * Feature   1391240: pt-kill added query fingerprint hash to output
  * Fixed bug 1402668: pt-mysql-summary fails on cluster in Donor/Desynced status
  * Fixed bug 1396870: pt-online-schema-change CTRL+C leaves terminal in inconsistent state
  * Fixed bug 1396868: pt-online-schema-change --ask-pass option error
  * Fixed bug 1266869: pt-stalk fails to start if $HOME environment variable is not set
  * Fixed bug 1019479: pt-table-checksum does not work with sql_mode ONLY_FULL_GROUP_BY
  * Fixed bug 1394934: pt-table-checksum error in debug mode
  * Fixed bug 1321297: pt-table-checksum reports diffs on timestamp columns in 5.5 vs 5.6
  * Fixed bug 1399789: pt-table-checksum fails to find pxc nodes when wsrep_node_incoming_address is set to AUTO
  * Fixed bug 1388870: pt-table-checksum has some errors with different time zones
  * Fixed bug 1408375: vulnerable to MITM attack which would allow exfiltration of MySQL configuration information via --version-check
  * Fixed bug 1404298: missing MySQL5.7 test files for pt-table-checksum
  * Fixed bug 1403900: added sandbox and fixed sakila test db for 5.7

v2.2.12 released 2014-11-14

  * Fixed bug 1376561: pt-archiver is not able to archive all the rows when a table has a hash partition
  * Fixed bug 1328686: pt-heartbeat check-read-only option does not prevent creates or inserts
  * Fixed bug 1269695: pt-online-schema-change does not allow ALTER for a table without a non-unique, while manual does not explain this
  * Fixed bug 1217466: pt-table-checksum refuses to run on PXC if server_id is the same on all nodes
  * Fixed bug 1373937: pt-table-checksum requires recursion when working with and XtraDB Cluster node
  * Fixed bug 1377888: pt-query-digest manual for --type binlog is ambiguous
  * Fixed bug 1349086: pt-stalk should also gather dmesg output
  * Fixed bug 1361293: Some scripts fail when no-version-check option is put in global config file

v2.2.11 released 2014-09-26

  * Fixed bug 1262456: pt-query-digest doesn't report host details
  * Fixed bug 1264580: pt-mysql-summary incorrectly tries to parse key/value pairs in wsrep_provider_options resulting in incomplete my.cnf information
  * Fixed bug 1318985: pt-stalk should use SQL_NO_CACHE
  * Fixed bug 1348679: pt-stalk handles mysql user password in awkward way
  * Fixed bug 1365085: Various issues with tests
  * Fixed bug 1368379: pt-summary problem parsing dmidecode output on some machines
  * Fixed bug 1303388: Typo in pt-variable-advisor

v2.2.10 released 2014-08-06

  * Fixed bug 1287253: pt-table-checksum deadlock
  * Fixed bug 1299387: 5.6 slow query log Thead_id becomes Id
  * Fixed bug 1311654: pt-table-checksum + PXC inconsistent results upon --resume
  * Fixed bug 1340728: pt-online-schema-change doesn't work with HASH indexes
  * Fixed bug 1253872: pt-table-checksum max load 20% rounds down
  * Fixed bug 1340364: some shell tools output error when queried for --version

v2.2.9 released 2014-07-08

  * Fixed bug 1258135: pt-deadlock-logger introduces a noise to MySQL
  * Fixed bug 1329422: pt-online-schema-change foreign-keys-method=none breaks constraints
  * Fixed bug 1315130: pt-online-schema-change not properly detecting foreign keys
  * Fixed bug 1335960: pt-query-digest cannot parse binlogs from 5.6
  * Fixed bug 1335322: pt-stalk fails when variable or threshold is non-integer

v2.2.8 released 2014-06-04

  * Removed pt-agent
  * Added pt-slave-restart GTID support
  * Added pt-table-checksum --plugin
  * Fixed bug 1304062: --ignore-tables does not work correctly
  * Fixed bug 1295667: pt-deadlock-logger logs incorrect ts
  * Fixed bug 1254233: pt-mysql-summary blank InnoDB section for 5.6
  * Fixed bug 1286250: pt-online-schema-change requests password twice
  * Fixed bug  965553: pt-query-digest dosn't fingerprint true/false literals correctly
  * Fixed bug  290911: pt-show-grant --ask-pass prints "Enter password" to STDOUT

v2.2.7 released 2014-02-20

  * Fixed bug 1279502: --version-check behaves like spyware

v2.2.6 released 2013-12-18

  * Added pt-query-digest support for Percona Server slow log rate limiting
  * Added pt-agent --ping
  * Added pt-mysql-summary --all-databases
  * Added pt-stalk --sleep-collect
  * Added pt-table-sync --[no]check-child-tables
  * Fixed bug 1249150: PTDEBUG prints some info to STDOUT
  * Fixed bug 1248363: pt-agent requires restart after changing MySQL options
  * Fixed bug 1248778: pt-agent --install on PXC is not documented
  * Fixed bug 1250973: pt-agent --install doesn't check for previous install
  * Fixed bug 1250968: pt-agent --install suggest MySQL user isn't quoted
  * Fixed bug 1251004: pt-agent --install error about slave is confusing
  * Fixed bug 1251726: pt-agent --uninstall fails if agent is running
  * Fixed bug 1248785: pt-agent docs don't list privs required for its MySQL user
  * Fixed bug 1215016: pt-deadlock-logger docs use pt-fk-error-logger
  * Fixed bug 1201443: pt-duplicate-key-checker error when EXPLAIN key_len=0
  * Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
  * Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
  * Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
  * Fixed bug 1249149: pt-query-digest stats prints to STDOUT instead of STDERR
  * Fixed bug 1071979: pt-stak error parsing df with NFS
  * Fixed bug 1223458: pt-table-sync deletes child table rows

v2.2.5 released 2013-10-16

  * Added Query_time histogram bucket counts to pt-query-digest JSON output
  * Added pt-online-schema-change --[no]drop-triggers option
  * Fixed bug 1206677: pt-agent docs reference clodu.percona.com
  * Fixed bug 1226721: pt-agent on CentOS 5 fails to send data
  * Fixed bug 1199589: pt-archiver deletes data despite --dry-run
  * Fixed bug 1206728: pt-deadlock-logger 2.2 requires DSN on command line
  * Fixed bug 1209436: pt-kill --log-dsn may not work on Perl 5.8
  * Fixed bug 1215608: pt-online-schema-change new table suffix is hard-coded
  * Fixed bug  821692: pt-query-digest doesn't distill LOAD DATA correctly
  * Fixed bug  984053: pt-query-digest doesn't distill INSERT/REPLACE without INTO correctly
  * Fixed bug  821690: pt-query-digest doesn't distill IF EXISTS correctly
  * Fixed bug 1210537: pt-table-checksum --recursion-method=cluster crashes if no nodes are found
  * Fixed bug  944051: pt-table-checksum has ambiguous exit status
  * Fixed bug 1229861: pt-table-sync quotes float values, can't sync

v2.2.4 released 2013-07-18

  * Implemented pt-query-digest anonymous JSON output
  * Implemented pt-online-schema-change timestamp output
  * Fixed bug 1182856: Zero values causes "Invalid --set-vars value: var=0"
  * Fixed bug 1195034: pt-deadlock-logger error: Use of uninitialized value $ts in pattern match (m//)
  * Fixed bug 1137556: pt-heartbeat docs don't account for --utc
  * Fixed bug 1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
  * Fixed bug 1171968: pt-query-digest docs don't mention --type=rawlog
  * Fixed bug 1176010: pt-query-digest doesn't group db and `db` together
  * Fixed bug 1174956: pt-query-digest and pt-fingerprint don't strip some multi-line comments
  * Fixed bug 1172317: pt-sift does not work if pt-stalk did not collect due to a full disk
  * Fixed bug 1136559: pt-table-checksum: Deep recursion on subroutine "SchemaIterator::_iterate_dbh"
  * Fixed bug 1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
  * Fixed bug 1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
  * Fixed bug 1168434: pt-upgrade reports differences on NULL
  * Fixed bug 1168106: pt-variable-advisor has the wrong default value for innodb_max_dirty_pages_pct in 5.5 and 5.6
  * Fixed bug 1168110: pt-variable-advisor shows key_buffer_size in 5.6 as unconfigured (even though it is)

v2.2.3 released 2013-06-17

  * Added new tool: pt-agent
  * Fixed bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): Table 'db._t_new' doesn't exist"

v2.2.2 released 2013-04-24

  * Added --show-all to pt-query-digest
  * Added --recursion-method=cluster to pt-table-checksum
  * Fixed bug 1127450: pt-archiver --bulk-insert may corrupt data
  * Fixed bug 1163372: pt-heartbeat --utc --check always returns 0
  * Fixed bug 1156901: pt-query-digest --processlist reports duplicate queries for replication thread
  * Fixed bug 1160338: pt-query-digest 2.2 prints unwanted debug info on tcpdump parsing errors
  * Fixed bug 1160918: pt-query-digest 2.2 prints too many string values
  * Fixed bug 1156867: pt-stalk prints the wrong variable name in verbose mode when --function is used
  * Fixed bug 1081733: pt-stalk plugins can't access the real --prefix
  * Fixed bug 1099845: pt-table-checksum pxc same_node function incorrectly uses wsrep_sst_receive_address
  * Fixed bug  821502: Some tools don't have --help or --version
  * Fixed bug  947893: Some tools use @@hostname without /*!50038*/
  * Fixed bug 1082406: An explicitly set wsrep_node_incoming_address may make SHOW STATUS LIKE 'wsrep_incoming_addresses' return a portless address

v2.2.1 released 2013-03-14

  * Official support for MySQL 5.6
  * Official support for Percona XtraDB Cluster
  * Redesigned pt-query-digest
  * Redesigned pt-upgrade
  * Redesigned pt-fk-error-logger
  * Redesigned pt-deadlock-logger
  * Changed --set-vars in all tools
  * Renamed --retries to --tries in pt-online-schema-change
  * Added --check-read-only to pt-heartbeat
  * Added MySQL options to pt-mysql-summary
  * Added MySQL options to pt-stalk
  * Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars)
  * Removed --lock-wait-timeout from pt-table-checksum (use --set-vars)
  * Removed pt-query-advisor
  * Removed pt-tcp-model
  * Removed pt-trend
  * Removed pt-log-player
  * Enabled --version-check by default in all tools
  * Fixed bug 1008796: Several tools don't have --database
  * Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values
  * Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options
  * Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time
  * Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE
  * Fixed bug 1113301: pt-online-schema-change blocks on metadata locks
  * Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically
  * Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions
  * Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found

v2.1.9 released 2013-02-14

  * Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
  * Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
  * Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
  * Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
  * Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function
  * Fixed bug  823411: pt-query-digest shouldn't print "Error: none" for tcpdump
  * Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors
  * Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
  * Fixed bug  918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
  * Fixed bug 1099933: pt-stalk is too verbose, fills up log

v2.1.8 released 2012-12-21

  * Beta support for MySQL 5.6
  * Beta support for Percona XtraDB Cluster
  * pt-online-schema-change: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
  * pt-table-checksum: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
  * pt-upgrade: Added --[no]disable-query-cache
  * Fixed bug  927955: Bad pod2rst transformation
  * Fixed bug  898665: Bad online docs formatting for --[no]vars
  * Fixed bug 1022622: pt-config-diff is case-sensitive
  * Fixed bug 1007938: pt-config-diff doesn't handle end-of-line comments
  * Fixed bug  917770: pt-config-diff Use of uninitialized value in substitution (s///) at line 1996
  * Fixed bug 1082104: pt-deadlock-logger doesn't handle usernames with dashes
  * Fixed bug  886059: pt-heartbeat handles timezones inconsistently
  * Fixed bug 1086259: pt-kill --log-dsn timestamp is wrong
  * Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
  * Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
  * Fixed bug  823431: pt-query-advisor hangs on big queries
  * Fixed bug  996069: pt-query-advisor RES.001 is incorrect
  * Fixed bug  933465: pt-query-advisor false positive on RES.001
  * Fixed bug  937234: pt-query-advisor issues wrong RES.001
  * Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
  * Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
  * Fixed bug  957442: pt-query-digest with custom --group-by throws error
  * Fixed bug  887638: pt-query-digest prints negative byte offset
  * Fixed bug  831525: pt-query-digest help output mangled
  * Fixed bug  932614: pt-slave-restart CHANGE MASTER query causes error
  * Fixed bug 1046440: pt-stalk purge_samples slows down checks
  * Fixed bug  986847: pt-stalk does not report NFS iostat
  * Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
  * Fixed bug  911385: pt-table-checksum v2 fails when --resume + --ignore-database is used
  * Fixed bug 1041391: pt-table-checksum debug statement for "Chosen hash func" prints undef
  * Fixed bug 1075638: pt-table-checksum Illegal division by zero at line 7950
  * Fixed bug 1052475: pt-table-checksum uninitialized value in numeric lt (<) at line 8611
  * Fixed bug 1078887: Tools let --set-vars clobber the required SQL mode

v2.1.7 released 2012-11-19

  * Fixed bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
  * Fixed bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes

v2.1.6 released 2012-11-13

  * pt-online-schema-change: Columns can now be renamed without data loss
  * pt-online-schema-change: New --default-engine option
  * pt-stalk: Plugin hooks available through the --plugin option to extend the tool's functionality
  * Fixed bug 1069951: --version-check default should be explicitly "off"
  * Fixed bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
  * Fixed bug 995896: Useless use of cat in Daemon.pm
  * Fixed bug 1039074: Tools exit 0 on error parsing options, should exit non-zero
  * Fixed bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
  * Fixed bug 1009510: pt-table-checksum breaks replication if a slave table is missing or different
  * Fixed bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
  * Fixed bug 1073532: pt-table-checksum error: Use of uninitialized value in int at line 2778
  * Fixed bug 1016131: pt-table-checksum can crash with --columns if none match
  * Fixed bug 1039569: pt-table-checksum dies if creating the --replicate table fails
  * Fixed bug 1059732: pt-table-checksum doesn't test all hash functions
  * Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
  * Fixed bug 1043528: pt-deadlock-logger can't parse db/tbl/index on partitioned tables
  * Fixed bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
  * Fixed bug 1058285: pt-online-schema-change fails if sql_mode explicitly or implicitly uses ANSI_QUOTES
  * Fixed bug 1073996: pt-online-schema-change fails with "I need a max_rows argument"
  * Fixed bug 1039541: pt-online-schema-change --quiet doesn't disable --progress
  * Fixed bug 1045317: pt-online-schema-change doesn't report how many warnings it suppressed
  * Fixed bug 1060774: pt-upgrade fails if select column > 64 chars
  * Fixed bug 1070916: pt-mysql-summary may report the wrong cnf file
  * Fixed bug 903229: pt-mysql-summary incorrectly categorizes databases
  * Fixed bug 866075: pt-show-grant doesn't support column-level grants
  * Fixed bug 978133: pt-query-digest review table privilege checks don't work
  * Fixed bug 956981: pt-query-digest docs for event attributes link to defunct Maatkit wiki
  * Fixed bug 1047335: pt-duplicate-key-checker fails when it encounters a crashed table
  * Fixed bug 1047701: pt-stalk deletes non-empty files
  * Fixed bug 1070434: pt-stalk --no-stalk and --iterations 1 don't wait for the collect
  * Fixed bug 1052722: pt-fifo-split is processing n-1 rows initially
  * Fixed bug 1013407: pt-find documentation error with mtime and InnoDB
  * Fixed bug 1059757: pt-trend output has no header
  * Fixed bug 1063933: pt-visual-explain docs link to missing pdf
  * Fixed bug 1075773: pt-fk-error-logger crashes if there's no foreign key error
  * Fixed bug 1075775: pt-fk-error-logger --dest table example doesn't work

v2.1.5 released 2012-10-08

  * Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
  * Fixed bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
  * Fixed bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
  * Fixed bug 1060423: Missing version-check page

v2.1.4 released 2012-09-20

  * pt-table-checksum: Percona XtraDB Cluster support
  * pt-table-checksum: Implemented the standard --run-time option
  * Implemented the version-check feature in several tools, enabled with the --version-check option
  * Fixed bug 856060: Document gdb dependency
  * Fixed bug 1041394: Unquoted arguments to tr break the bash tools
  * Fixed bug 1035311: pt-diskstats shows wrong device names
  * Fixed bug 1036804: pt-duplicate-key-checker error parsing InnoDB table with no PK or unique keys
  * Fixed bug 1022658: pt-online-schema-change dropping FK limitation isn't documented
  * Fixed bug 1041372: pt-online-schema-changes fails if db+tbl name exceeds 64 characters
  * Fixed bug 1029178: pt-query-digest --type tcpdump memory usage keeps increasing
  * Fixed bug 1037211: pt-query-digest won't distill LOCK TABLES in lowercase
  * Fixed bug 942114: pt-stalk warns about bad "find" usage
  * Fixed bug 1035319: pt-stalk df -h throws away needed details
  * Fixed bug 1038995: pt-stalk --notify-by-email fails
  * Fixed bug 1038995: pt-stalk does not get all InnoDB lock data
  * Fixed bug 952722: pt-summary should show information about Fusion-io cards
  * Fixed bug 899415: pt-table-checksum doesn't work if slaves use RBR
  * Fixed bug 954588: pt-table-checksum --check-slave-lag docs aren't clear
  * Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
  * Fixed bug 930693: pt-table-sync and text columns with just whitespace
  * Fixed bug 1028710: pt-table-sync base_count fails on n = 1000, base = 10
  * Fixed bug 1034717: pt-table-sync division by zero error with varchar primary key
  * Fixed bug 1036747: pt-table-sync priv checks need to be removed
  * Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
  * Fixed bug 1035260: sh warnings in pt-summary and pt-mysql-summary
  * Fixed bug 1038276: ChangeHandler doesn't quote varchar columns with hex-looking values
  * Fixed bug 916925: CentOS 5 yum dependency resolution for perl module is wrong
  * Fixed bug 1035950: Percona Toolkit RPM should contain a dependency on perl-Time-HiRes

v2.1.3 released 2012-08-03

  * pt-kill: Implemented --log-dsn to log info about killed queries to a table
  * Fixed bug 1016127: Install hint for DBD::mysql is wrong
  * Fixed bug 984915: DSNParser does not check success of --set-vars
  * Fixed bug 889739: pt-config-diff doesn't diff quoted strings properly
  * Fixed bug 969669: pt-duplicate-key-checker --key-types=k doesn't work
  * Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
  * Fixed bug 1028614: pt-index-usage ignores --database
  * Fixed bug 940733: pt-ioprofile leaves behind temp directory
  * Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
  * Fixed bug 1016114: pt-online-schema-change docs don't mention default values
  * Fixed bug 1020997: pt-online-schema-change fails when table is empty
  * Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
  * Fixed bug 937225: pt-query-advisor OUTER JOIN advice in JOI.003 is confusing
  * Fixed bug 821703: pt-query-digest --processlist may crash
  * Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
  * Fixed bug 924950: pt-query-digest --group-by db may crash profile report
  * Fixed bug 1022851: pt-sift error: PREFIX: unbound variable
  * Fixed bug 969703: pt-sift defaults to '.' instead of '/var/lib/pt-talk'
  * Fixed bug 962330: pt-slave-delay incorrectly computes lag if started when slave is already lagging
  * Fixed bug 954990: pt-stalk --nostalk does not work
  * Fixed bug 977226: pt-summary doesn't detect LSI RAID control
  * Fixed bug 1030031: pt-table-checksum reports wrong number of DIFFS
  * Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
  * Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
  * Fixed bug 953141: pt-table-checksum ignores its default and explicit --recursion-method
  * Fixed bug 1030975: pt-table-sync crashes if sql_mode includes ANSI_QUOTES
  * Fixed bug 869005: pt-table-sync should always set REPEATABLE READ
  * Fixed bug 903510: pt-tcp-model crashes in --type=requests mode on empty file
  * Fixed bug 934310: pt-tcp-model --quantile docs wrong
  * Fixed bug 980318: pt-upgrade results truncated if hostnames are long
  * Fixed bug 821696: pt-variable-advisor shows too long of a snippet
  * Fixed bug 844880: pt-variable-advisor shows binary logging as both enabled and disabled

v2.1.2 released 2012-06-12

  * pt-heartbeat: Implemented --recursion-method=none
  * pt-index-usage: MySQL 5.5 compatibility fixes
  * pt-log-player: MySQL 5.5 compatibility fixes
  * pt-online-schema-change: Added --chunk-index-columns
  * pt-online-schema-change: Added --[no]check-plan
  * pt-online-schema-change: Added --[no]drop-new-table
  * pt-online-schema-change: Implemented --recursion-method=none
  * pt-query-advisor: Added --report-type for JSON output
  * pt-query-digest: Removed --[no]zero-bool
  * pt-slave-delay: Added --database
  * pt-slave-find: Implemented --recursion-method=none
  * pt-slave-restart: Implemented --recursion-method=none
  * pt-table-checksum: Added --chunk-index-columns
  * pt-table-checksum: Added --[no]check-plan
  * pt-table-checksum: Implemented --recursion-method=none
  * pt-table-sync: Disabled --lock-and-rename except for MySQL 5.5 and newer
  * pt-table-sync: Implemented --recursion-method=none
  * Fixed bug 945079: Shell tools TMPDIR may break
  * Fixed bug 912902: Some shell tools still use basename
  * Fixed bug 987694: There is no --recursion-method=none option
  * Fixed bug 886077: Passwords with commas don't work, expose part of password
  * Fixed bug 856024: Lintian warnings when building percona-toolkit Debian package
  * Fixed bug 903379: pt-archiver --file doesn't create a file
  * Fixed bug 979092: pt-archiver --sleep conflicts with bulk operations
  * Fixed bug 903443: pt-deadlock-logger crashes on MySQL 5.5
  * Fixed bug 941064: pt-deadlock-logger can't clear deadlocks on 5.5
  * Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
  * Fixed bug 994176: pt-diskstats --group-by=all --headers=scroll prints a header for every sample
  * Fixed bug 894140: pt-duplicate-key-checker sometimes recreates a key it shouldn't
  * Fixed bug 923896: pt-kill: uninitialized value causes script to exit
  * Fixed bug 1003003: pt-online-schema-change uses different keys for chunking and triggers
  * Fixed bug 1003315: pt-online-schema-change --dry-run always fails on table with foreign keys
  * Fixed bug 1004551: pt-online-schema-change --no-swap-tables causes error
  * Fixed bug 976108: pt-online-schema-change doesn't allow to disable foreign key checks
  * Fixed bug 976109: pt-online-schema-change doesn't handle column renames
  * Fixed bug 988036: pt-online-schema-change causes deadlocks under heavy write load
  * Fixed bug 989227: pt-online-schema-change crashes with PTDEBUG
  * Fixed bug 994002: pt-online-schema-change 2.1.1 doesn't choose the PRIMARY KEY
  * Fixed bug 994010: pt-online-schema-change 2.1.1 crashes without InnoDB
  * Fixed bug 996915: pt-online-schema-change crashes with invalid --max-load and --critical-load
  * Fixed bug 998831: pt-online-schema-change -- Should have an option to NOT drop tables on failure
  * Fixed bug 1002448: pt-online-schema-change: typo for finding usable indexes
  * Fixed bug 885382: pt-query-digest --embedded-attributes doesn't check cardinality
  * Fixed bug 888114: pt-query-digest report crashes with infinite loop
  * Fixed bug 949630: pt-query-digest mentions a Subversion repository
  * Fixed bug 844034: pt-show-grants --separate fails with proxy user
  * Fixed bug 946707: pt-sift loses STDIN after pt-diskstats
  * Fixed bug 994947: pt-stalk doesn't reset cycles_true after collection
  * Fixed bug 986151: pt-stalk-has mktemp error
  * Fixed bug 993436: pt-summary Memory: Total reports M instead of G
  * Fixed bug 1008778: pt-table-checksum doesn't wait for checksum table to replicate
  * Fixed bug 1010232: pt-table-checksum doesn't check the size of checksum chunks
  * Fixed bug 1011738: pt-table-checksum SKIPPED is zero but chunks were skipped
  * Fixed bug 919499: pt-table-checksum fails with binary log error in mysql >= 5.5.18
  * Fixed bug 972399: pt-table-checksum docs are not rendered right
  * Fixed bug 978432: pt-table-checksum ignoring primary key
  * Fixed bug 995274: pt-table-checksum can't use an undefined value as an ARRAY reference at line 2206
  * Fixed bug 996110: pt-table-checksum crashes if InnoDB is disabled
  * Fixed bug 987393: pt-table-checksum: Empty tables cause "undefined value as an ARRAY" errors
  * Fixed bug 997155: pt-table-sync sets binlog_format needlessly
  * Fixed bug 1002365: pt-table-sync --ignore-* options don't work with --replicate
  * Fixed bug 1003014: pt-table-sync --replicate and --sync-to-master error "index does not exist"
  * Fixed bug 823403: pt-table-sync --lock-and-rename doesn't work on 5.1
  * Fixed bug 898138: pt-variable-advisor doesn't recognize 5.5.3+ concurrent_insert values

v2.1.1 released 2012-04-03

  * Completely redesigned pt-online-schema-change
  * Completely redesigned pt-mysql-summary
  * Completely redesigned pt-summary
  * Added new tool: pt-table-usage
  * Added new tool: pt-fingerprint
  * Fixed bug 955860: pt-stalk doesn't run vmstat, iostat, and mpstat for --run-time
  * Fixed bug 960513: SHOW TABLE STATUS is used needlessly
  * Fixed bug 969726: pt-online-schema-change loses foreign keys
  * Fixed bug 846028: pt-online-schema-change does not show progress until completed
  * Fixed bug 898695: pt-online-schema-change add useless ORDER BY
  * Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
  * Fixed bug 963225: pt-query-digest fails to set history columns for disk tmp tables and disk filesort
  * Fixed bug 967451: Char chunking doesn't quote column name
  * Fixed bug 972399: pt-table-checksum docs are not rendered right
  * Fixed bug 896553: Various documentation spelling fixes
  * Fixed bug 949154: pt-variable-advisor advice for relay-log-space-limit
  * Fixed bug 953461: pt-upgrade manual broken 'output' section
  * Fixed bug 949653: pt-table-checksum docs don't mention risks posed by inconsistent schemas

v2.0.4 released 2012-03-07

  * Added --filter to pt-kill to allow arbitrary --group-by
  * Added --[no]stalk to pt-stalk (bug 932331)
  * Added --execute to pt-online-schema-change (bug 933232)
  * Fixed bug 873598: pt-online-schema-change doesn't like reserved words in column names
  * Fixed bug 928966: pt-pmp still uses insecure /tmp
  * Fixed bug 933232: pt-online-schema-change can break replication
  * Fixed bug 941225: Use of qw(...) as parentheses is deprecated at pt-kill line 3511
  * Fixed bug 821694: pt-query-digest doesn't recognize hex InnoDB txn IDs
  * Fixed bug 894255: pt-kill shouldn't check if STDIN is a tty when --daemonize is given
  * Fixed bug 916999: pt-table-checksum error: DBD::mysql::st execute failed: called with 2 bind variables when 6 are needed
  * Fixed bug 926598: DBD::mysql bug causes pt-upgrade to use wrong precision (M) and scale (D)
  * Fixed bug 928226: pt-diskstats illegal division by zero
  * Fixed bug 928415: Typo in pt-stalk doc: --trigger should be --function
  * Fixed bug 930317: pt-archiver doc refers to nonexistent pt-query-profiler
  * Fixed bug 930533: pt-sift looking for *-processlist1; broken compatibility with pt-stalk
  * Fixed bug 932331: pt-stalk cannot collect without stalking
  * Fixed bug 932442: pt-table-checksum error when column name has two spaces
  * Fixed bug 932883: File Debian bug after each release
  * Fixed bug 940503: pt-stalk disk space checks wrong on 32bit platforms
  * Fixed bug 944420: --daemonize doesn't always close STDIN
  * Fixed bug 945834: pt-sift invokes pt-diskstats with deprecated argument
  * Fixed bug 945836: pt-sift prints awk error if there are no stack traces to aggregate
  * Fixed bug 945842: pt-sift generates wrong state sum during processlist analysis
  * Fixed bug 946438: pt-query-digest should print a better message when an unsupported log format is specified
  * Fixed bug 946776: pt-table-checksum ignores --lock-wait-timeout
  * Fixed bug 940440: Bad grammar in pt-kill docs

v2.0.3 released 2012-02-03

  * Completely redesigned pt-diskstats
  * Completely redesigned pt-stalk
  * Removed pt-collect and put its functionality in pt-stalk
  * Fixed bug 871438: Bash tools are insecure
  * Fixed bug 897758: Failed to prepare TableSyncChunk plugin: Use of uninitialized value $args{"chunk_range"} in lc at pt-table-sync line 3055
  * Fixed bug 919819: pt-kill --execute-command creates zombies
  * Fixed bug 925778: pt-ioprofile doesn't run without a file
  * Fixed bug 925477: pt-ioprofile docs refer to pt-iostats
  * Fixed bug 857091: pt-sift downloads http://percona.com/get/pt-pmp, which does not work
  * Fixed bug 857104: pt-sift tries to invoke mext, should be pt-mext
  * Fixed bug 872699: pt-diskstats: rd_avkb & wr_avkb derived incorrectly
  * Fixed bug 897029: pt-diskstats computes wrong values for md0
  * Fixed bug 882918: pt-stalk spams warning if oprofile isn't installed
  * Fixed bug 884504: pt-stalk doesn't check pt-collect
  * Fixed bug 897483: pt-online-schema-change "uninitialized value" due to update-foreign-keys-method
  * Fixed bug 925007: pt-online-schema-change Use of uninitialized value $tables{"old_table"} in concatenation (.) or string at line 4330
  * Fixed bug 915598: pt-config-diff ignores --ask-pass option
  * Fixed bug 919352: pt-table-checksum changes binlog_format even if already set to statement
  * Fixed bug 921700: pt-table-checksum doesn't add --where to chunk size test on replicas
  * Fixed bug 921802: pt-table-checksum does not recognize --recursion-method=processlist
  * Fixed bug 925855: pt-table-checksum index check is case-sensitive
  * Fixed bug 821709: pt-show-grants --revoke and --separate don't work together
  * Fixed bug 918247: Some tools use VALUE instead of VALUES

v2.0.2 released 2012-01-05

  * Fixed bug 911996: pt-table-sync --replicate causes "Unknown column" error

v2.0.1 released 2011-12-30

  * Completely redesigned pt-table-checksum
  * Fixed bug 856065: pt-trend does not work
  * Fixed bug 887688: Prepared statements crash pt-query-digest
  * Fixed bug 888286: align not part of percona-toolkit
  * Fixed bug 897961: ptc 2.0 replicate-check error does not include hostname
  * Fixed bug 898318: ptc 2.0 --resume with --tables does not always work
  * Fixed bug 903513: MKDEBUG should be PTDEBUG
  * Fixed bug 908256: Percona Toolkit should include pt-ioprofile
  * Fixed bug 821717: pt-tcp-model --type=requests crashes
  * Fixed bug 844038: pt-online-schema-change documentation example w/drop-tmp-table does not work
  * Fixed bug 864205: Remove the query to reset @crc from pt-table-checksum
  * Fixed bug 898663: Typo in pt-log-player documentation

v1.0.1 released 2011-09-01

  * Fixed bug 819421: MasterSlave::is_replication_thread() doesn't match all
  * Fixed bug 821673: pt-table-checksum doesn't include --where in min max queries
  * Fixed bug 821688: pt-table-checksum SELECT MIN MAX for char chunking is wrong
  * Fixed bug 838211: pt-collect: line 24: [: : integer expression expected
  * Fixed bug 838248: pt-collect creates a "5.1" file

v0.9.5 released 2011-08-04

  * Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit.
