Merge release-2.2.1 to get Lmo with headers.

This commit is contained in:
Daniel Nichter
2013-03-19 11:56:17 -06:00
55 changed files with 6411 additions and 105 deletions

View File

@@ -1,5 +1,48 @@
Changelog for Percona Toolkit
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

View File

@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'percona-toolkit',
VERSION => '2.1.8',
VERSION => '2.2.1',
EXE_FILES => [ <bin/*> ],
MAN1PODS => {
'docs/percona-toolkit.pod' => 'blib/man1/percona-toolkit.1p',

View File

@@ -217,6 +217,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-align 2.1.8
pt-align 2.2.1
=cut

View File

@@ -42,7 +42,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -7800,6 +7800,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-archiver 2.1.8
pt-archiver 2.2.1
=cut

View File

@@ -42,7 +42,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -5647,6 +5647,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-config-diff 2.1.8
pt-config-diff 2.2.1
=cut

View File

@@ -41,7 +41,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -5420,6 +5420,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-deadlock-logger 2.1.8
pt-deadlock-logger 2.2.1
=cut

View File

@@ -37,7 +37,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -5484,6 +5484,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-diskstats 2.1.8
pt-diskstats 2.2.1
=cut

View File

@@ -38,7 +38,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -5463,6 +5463,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-duplicate-key-checker 2.1.8
pt-duplicate-key-checker 2.2.1
=cut

View File

@@ -1562,6 +1562,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-fifo-split 2.1.8
pt-fifo-split 2.2.1
=cut

View File

@@ -34,7 +34,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -4929,6 +4929,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-find 2.1.8
pt-find 2.2.1
=cut

View File

@@ -2135,7 +2135,7 @@ software from Percona.
=head1 COPYRIGHT, LICENSE, AND WARRANTY
This program is copyright 2011-2012 Percona Ireland Ltd.
This program is copyright 2011-2013 Percona Ireland Ltd.
THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
@@ -2153,6 +2153,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-fingerprint 2.1.8
pt-fingerprint 2.2.1
=cut

View File

@@ -36,7 +36,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -4428,6 +4428,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-fk-error-logger 2.1.8
pt-fk-error-logger 2.2.1
=cut

View File

@@ -37,7 +37,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -5001,9 +5001,12 @@ sub main {
$heartbeat_sth = $dbh->prepare($heartbeat_sql);
my $ro_check = !!$o->get('check-read-only');
$update_heartbeat = sub {
my ($sth) = @_;
my @vals;
return if $ro_check && server_is_readonly($dbh);
my $sql;
if ( @master_status_cols ) {
@@ -5252,6 +5255,18 @@ sub main {
# Subroutines.
# ############################################################################
sub server_is_readonly {
my ($dbh) = @_;
my ( $is_read_only ) = $dbh->selectrow_array(q{SELECT @@global.read_only});
if ( $is_read_only ) {
my ( $privs ) = eval { $dbh->selectrow_array(q{SHOW GRANTS}) };
if ( $privs && $privs =~ /\b(?:ALL|SUPER)\b/ ) {
$is_read_only = undef;
}
}
return $is_read_only;
}
# Check the delay on a single server. Optionally recurse to all its slaves.
sub check_delay {
my ( %args ) = @_;
@@ -5568,6 +5583,11 @@ tool will try to discover slave's of the given slave and check and print
their lag, too. The hostname or IP and port for each slave is printed
before its delay. L<"--recurse"> only works with MySQL.
=item --check-read-only
Check if the server has read_only enabled; If it does, the tool skips doing
any inserts.
=item --config
type: Array
@@ -5910,7 +5930,7 @@ not check or adjust for different system or MySQL time zones which can
cause the tool to compute the lag incorrectly. Specifying this option is
a good idea because it ensures that the tool works correctly regardless of
time zones, but it also makes the tool backwards-incompatible with
pt-heartbeat 2.1.7 and older (unless the older version of pt-heartbeat
pt-heartbeat 2.2.1 and older (unless the older version of pt-heartbeat
is running on a system that uses UTC).
=item --version
@@ -6092,6 +6112,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-heartbeat 2.1.8
pt-heartbeat 2.2.1
=cut

View File

@@ -44,7 +44,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -7459,6 +7459,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-index-usage 2.1.8
pt-index-usage 2.2.1
=cut

View File

@@ -1115,7 +1115,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-ioprofile 2.1.8
pt-ioprofile 2.2.1
=cut

View File

@@ -46,7 +46,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -8060,6 +8060,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-kill 2.1.8
pt-kill 2.2.1
=cut

View File

@@ -281,7 +281,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-mext 2.1.8
pt-mext 2.2.1
=cut

View File

@@ -3111,7 +3111,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-mysql-summary 2.1.8
pt-mysql-summary 2.2.1
=cut

View File

@@ -53,7 +53,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -11238,6 +11238,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-online-schema-change 2.1.8
pt-online-schema-change 2.2.1
=cut

View File

@@ -405,7 +405,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-pmp 2.1.8
pt-pmp 2.2.1
=cut

View File

@@ -63,7 +63,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -16010,6 +16010,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-query-digest 2.2.0
pt-query-digest 2.2.1
=cut

View File

@@ -2396,6 +2396,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-show-grants 2.1.8
pt-show-grants 2.2.1
=cut

View File

@@ -780,7 +780,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-sift 2.1.8
pt-sift 2.2.1
=cut

View File

@@ -39,7 +39,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -4807,6 +4807,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-slave-delay 2.1.8
pt-slave-delay 2.2.1
=cut

View File

@@ -4317,6 +4317,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-slave-find 2.1.8
pt-slave-find 2.2.1
=cut

View File

@@ -40,7 +40,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -5749,6 +5749,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-slave-restart 2.1.8
pt-slave-restart 2.2.1
=cut

View File

@@ -2197,7 +2197,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-stalk 2.1.8
pt-stalk 2.2.1
=cut

View File

@@ -2682,7 +2682,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-summary 2.1.8
pt-summary 2.2.1
=cut

View File

@@ -56,7 +56,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -12194,6 +12194,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-table-checksum 2.1.8
pt-table-checksum 2.2.1
=cut

View File

@@ -54,7 +54,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -12599,6 +12599,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-table-sync 2.1.8
pt-table-sync 2.2.1
=cut

View File

@@ -7512,6 +7512,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-table-usage 2.1.8
pt-table-usage 2.2.1
=cut

View File

@@ -60,7 +60,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -11111,6 +11111,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-upgrade 2.2.0
pt-upgrade 2.2.1
=cut

View File

@@ -43,7 +43,7 @@ BEGIN {
# ###########################################################################
{
package Percona::Toolkit;
our $VERSION = '2.1.8';
our $VERSION = '2.2.1';
1;
}
@@ -6077,6 +6077,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-variable-advisor 2.1.8
pt-variable-advisor 2.2.1
=cut

View File

@@ -3233,6 +3233,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
pt-visual-explain 2.1.8
pt-visual-explain 2.2.1
=cut

View File

@@ -1,3 +1,50 @@
percona-toolkit (2.2.1) unstable; urgency=low
* 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
-- Percona Toolkit Developers <toolkit-dev@percona.com> Thu, 14 Mar 2013 17:18:34 +0000
percona-toolkit (2.1.9) unstable; urgency=low
* 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
-- Percona Toolkit Developers <toolkit-dev@percona.com> Thu, 14 Feb 2013 17:25:44 +0000
percona-toolkit (2.1.8) unstable; urgency=low
* Beta support for MySQL 5.6

View File

@@ -23,6 +23,6 @@ Description: Advanced MySQL and system command-line tools
They are also fully self-contained, so installation is quick and easy and
no libraries are installed.
.
Percona Toolkit is developed and supported by Percona Inc. For more
Percona Toolkit is developed and supported by Percona. For more
information and other free, open-source software developed by Percona,
visit http://www.percona.com/software/.

View File

@@ -9,7 +9,7 @@ Upstream Author:
Copyright:
Copyright 2011 Percona Inc.
Copyright 2013 Percona Ireland Ltd.
License:

View File

@@ -4,7 +4,7 @@ Version: %{version}
Release: %{release}
Group: Applications/Databases
License: GPL
Vendor: Percona Inc.
Vendor: Percona
URL: http://www.percona.com/software/percona-toolkit/
Source: percona-toolkit-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
@@ -22,7 +22,7 @@ they are professionally developed, formally tested, and fully documented.
They are also fully self-contained, so installation is quick and easy and
no libraries are installed.
Percona Toolkit is developed and supported by Percona Inc. For more
Percona Toolkit is developed and supported by Percona. For more
information and other free, open-source software developed by Percona,
visit http://www.percona.com/software/.

View File

@@ -41,16 +41,16 @@ master_doc = 'index'
# General information about the project.
project = u'Percona Toolkit'
copyright = u'2011, Percona Inc'
copyright = u'2013, Percona Ireland Ltd'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '2.1'
version = '2.2'
# The full version, including alpha/beta/rc tags.
release = '2.1.8'
release = '2.2.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -179,7 +179,7 @@ htmlhelp_basename = 'PerconaToolkitdoc'
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('index', 'PerconaToolkit.tex', u'Percona Toolkit Documentation',
u'Percona Inc', 'manual'),
u'Percona Ireland Ltd', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -212,5 +212,5 @@ latex_documents = [
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'perconatoolkit', u'Percona Toolkit Documentation',
[u'Percona Inc'], 1)
[u'Percona Ireland Ltd'], 1)
]

View File

@@ -289,7 +289,7 @@ If you spotted innacuracies, errors, don't understood it or you think something
Call us: 1-888-316-9775 • <a href="/contact">Contact Us</a><br>
MySQL and InnoDB are trademarks of Oracle Corp.<br>
Proudly running <a href="/software/percona-server/">Percona Server<span id="recentServerVersion"></span></a><br>
Copyright &copy; 2006-2011 Percona Inc.<br>
Copyright &copy; 2006-2013 Percona Ireland Ltd.<br>
<a href="/about-us/policies/">Copyright, Trademark, and Privacy Policy</a><a href="/sitemap/">Sitemap</a>
<span class="inv"><!--[CDATA[</noindex-->]]&gt;</span>
</div>

View File

@@ -0,0 +1,21 @@
$ cpanm App::FatPacker
$ mkdir /tmp/pod2rst
$ cp util/pod2rst-fixed /tmp/pod2rst/
$ cd /tmp/pod2rst
$ mkdir lib
$ fatpack trace pod2rst-fixed
$ fatpack packlists-for `cat fatpacker.trace` >packlists
$ fatpack tree `cat packlists`
$ (echo "#!/usr/bin/env perl"; fatpack file; cat pod2rst-fixed) > pod2rst-fixed.packed
$ cp pod2rst-fixed.packed ~/percona-toolkit/util/
$ cd ~/
$ rm -rf /tmp/pod2rst
Notes:
1. Don't do this from the root of the bzr repo. fatpack tries to be clever
and inlines everything under lib/
2. mkdir lib/ is to get around a bug(?) in fatpack
3. these two lines are safe to ignore:
File /tmp/pod2rst/fatlib/darwin-thread-multi-2level/auto/HTML/Parser/Parser.bs isn't a .pm file - can't pack this and if you hoped we were going to things may not be what you expected later
File /tmp/pod2rst/fatlib/darwin-thread-multi-2level/auto/HTML/Parser/Parser.bundle isn't a .pm file - can't pack this and if you hoped we were going to things may not be what you expected later

View File

@@ -14,7 +14,7 @@ no libraries are installed.
Percona Toolkit is derived from Maatkit and Aspersa, two of the best-known
toolkits for MySQL server administration. It is developed and supported by
Percona Inc. For more information and other free, open-source software
Percona. For more information and other free, open-source software
developed by Percona, visit `http://www.percona.com/software/ <http://www.percona.com/software/>`_.
Getting Percona Toolkit

View File

@@ -40,7 +40,7 @@ Diff MySQL configuration files and server variables.
=item pt-deadlock-logger
Extract and log MySQL deadlock information.
Log MySQL deadlocks.
=item pt-diskstats
@@ -64,7 +64,7 @@ Convert queries into fingerprints.
=item pt-fk-error-logger
Extract and log MySQL foreign key errors.
Log MySQL foreign key errors.
=item pt-heartbeat
@@ -82,10 +82,6 @@ Watch process IO and print a table of file and I/O activity.
Kill MySQL queries that match certain criteria.
=item pt-log-player
Replay MySQL query logs.
=item pt-mext
Look at many samples of MySQL C<SHOW GLOBAL STATUS> side-by-side.
@@ -102,13 +98,9 @@ ALTER tables without locking them.
Aggregate GDB stack traces for a selected program.
=item pt-query-advisor
Analyze queries and advise on possible problems.
=item pt-query-digest
Analyze query execution logs and generate a query report, filter, replay, or transform queries for MySQL, PostgreSQL, memcached, and more.
Analyze MySQL queries from logs, processlist, and tcpdump.
=item pt-show-grants
@@ -132,7 +124,7 @@ Watch and restart MySQL replication after errors.
=item pt-stalk
Gather forensic data about MySQL when a problem occurs.
Collect forensic data about MySQL when problems occur.
=item pt-summary
@@ -150,17 +142,9 @@ Synchronize MySQL table data efficiently.
Analyze how queries use tables.
=item pt-tcp-model
Transform tcpdump into metrics that permit performance and scalability modeling.
=item pt-trend
(DEPRECATED) Compute statistics over a set of time-series data points.
=item pt-upgrade
Execute queries on multiple servers and check for differences.
Verify that query results are identical on different servers.
=item pt-variable-advisor
@@ -574,6 +558,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
=head1 VERSION
Percona Toolkit v2.1.8 released 2012-12-21
Percona Toolkit v2.2.1 released 2013-03-14
=cut

View File

@@ -1,6 +1,270 @@
Release Notes
*************
v2.2.1 released 2013-03-14
==========================
Percona Toolkit 2.2.1 has been released. This is the first release in
the new 2.2 series which supersedes the 2.1 series and renders the 2.0
series obsolete. We plan to do one more bug fix release for 2.1 (2.1.10),
but otherwise all new development and fixes and will now focus on 2.2.
Percona Toolkit 2.2 has been several months in the making, and it turned
out very well, with many more new features, changes, and improvements than
originally anticipated. Here are the highlights:
----
* Official support for MySQL 5.6
We started beta support for MySQL 5.6 in 2.1.8 when 5.6 was still beta.
Now that 5.6 is GA, so is our support for it. Check out the Percona Toolkit
supported platforms and versions:
http://www.percona.com/mysql-support/policies/percona-toolkit-supported-platforms-and-versions
When you upgrade to MySQL 5.6, be sure to upgrade to Percona Toolkit 2.2, too.
* Official support for Percona XtraDB Cluster (PXC)
We also started beta support for Percona XtraDB Cluster in 2.1.8, but
now that support is official in 2.2 because we have had many months to
work with PXC and figure out which tools work with it and how. There's
still one noticeable omission: pt-table-sync. It's still unclear if
or how one would sync a cluster that, in theory, doesn't become out-of-sync.
As Percona XtraDB Cluster develops, Percona Toolkit will continue to
evolve to support it.
* pt-online-schema-change (pt-osc) is much more resilient
pt-online-schema-change 2.1 has been a great success, and people have been
using it for evermore difficult and challenging tasks. Consequently, we
needed to make it "try harder", even though it already tried pretty hard
to keep working despite recoverable errors and such. Whereas pt-osc 2.1
only retries certain operations, pt-osc 2.2 retries every critical operation,
and its tries and wait time between tries for all operations are configurable.
Also, we removed --lock-wait-timeout which set innodb_lock_wait_timeout
because that now conflicts, or is at least confused with, lock_wait_timeout
(introduced in MySQL 5.5) for metadata locks. Now --set-vars is used to
set both of these (or any) system variables. For a quick intro to metadata
locks and how they may affect you, see Ovais's article:
http://www.mysqlperformanceblog.com/2013/02/01/implications-of-metadata-locking-changes-in-mysql-5-5/
What does this all mean? In short: pt-online-schema-change 2.2 is far more
resilient out of the box. It's also aware of metadata locks now, whereas
2.1 was not really aware of them. And it's highly configurable, so you can
make the tool try _very_ hard to keep working.
* pt-upgrade is brand-new
pt-upgrade was written once long ago, thrown into the world, and then never
heard from again... until now. Now that we have four base versions of
MySQL (5.0, 5.1, 5.5, and 5.6), plus at least four major forks (Percona
Server, MariaDB, Percona XtraDB Cluster, and MariaDB Galera Cluster),
upgrades are fashionable, so to speak. Problem is: "original" pt-upgrade
was too noisy and too complex. pt-upgrade 2.2 is far simpler and far
easier to use. It's basically what you expect from such a tool.
Moreover, it has a really helpful new feature: "reference results", i.e.
saved results from running queries on a server. Granted, this can take
_a lot_ of disk space, but it allows you to "run now, compare later."
If you're thinking about upgrading, give pt-upgrade a try. It also reads
every type of log now (slow, general, binary, and tcpdump), so you shouldn't
have a problem finding queries to run and compare.
* pt-query-digest is simpler
pt-query-digest 2.2 has fewer options now. Basically, we re-focused it
on its primary objective: analyzing MySQL query logs. So the ability
to parse memcached, Postgres, Apache, and other logs was removed. We
also removed several options that probably nobody ever used, and
changed/renamed other options to be more logical. The result is a simpler,
more focused tool, i.e. less overwhelming.
Also, pt-query-digest 2.2 can save results in JSON format (--output=json).
This feature is still in development while we determine the optimal
JSON structure.
* Version check is on by default
Way back in 2.1.4, released September/October 2012, we introduced a feature
called "version check" into most tools: http://percona.com/version-check
It's like a lot of software that automatically checks for updates, but
it's also more: it's a free service from Percona that advises when certain
programs (Percona Toolkit tools, MySQL, Perl, etc.) are either out of date
or are known bad versions. For example, there are two versions of the
DBD::mysql Perl module that have problems. And there are certain versions
of MySQL that have critical bugs. Version check will warn you about these
if your system is running them.
What's new in 2.2 is that, whereas this feature (specifically, the option
in tools: --version-check) was off by default, now it's on by default.
If the IO::Socket::SSL Perl module is installed (easily available through
your package manager), it will use a secure (https) connection over the web,
else it will use a standard (http) connection.
Check out http://percona.com/version-check for more information.
* pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player are gone
We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player.
Granted, no tool is ever really gone: if you need one of these tools,
get it from 2.1. pt-log-player is now superseded by Percona Playback
(http://www.percona.com/doc/percona-playback/). pt-query-advisor was
removed so that we can focus our efforts on its online counterpart instead:
https://tools.percona.com/query-advisor. The other tools were special
projects that were not widely used.
* pt-stalk and pt-mysql-summary have built-in MySQL options
No more "pt-stalk -- -h db1 -u me". pt-stalk 2.2 and pt-mysql-summary 2.2
have all the standard MySQL options built-in, like other tools: --user,
--host, --port, --password, --socket, --defaults-file. So now the command
line is what you expect: pt-stalk -h dhb1 -u me.
* pt-stalk --no-stalk is no longer magical
Originally, pt-stalk --no-stalk was meant to simulate pt-collect, i.e.
collect once and exit. To do that, the tool magically set some options
and clobbered others, resulting in no way to do repeated collections
at intervals. Now --no-stalk means only that: don't stalk, just collect,
respecting --interval and --iterations as usual. So to collect once
and exit: pt-stalk --no-stalk --iterations 1.
* pt-fk-error-logger and pt-deadlock-logger are standardized
Similar to the pt-stalk --no-stalk changes, pt-fk-error-logger and
pt-deadlock-logger received mini overhauls in 2.2 to make their
run-related options (--run-time, --interval, --iterations) standard.
If you hadn't noticed, one tool would run forever by default, while
the other would run once and exit. And each treated their run-related
options a little differently. This magic is gone now: both tools run
forever by default, so specify --iterations or --run-time to limit how
long they run.
----
There were other miscellaneous bug fixes, too. See
https://launchpad.net/percona-toolkit/+milestone/2.2.1 for the full list.
As the first release in a new series, 2.2 features are not yet finalized.
In other words, we may change things like the pt-query-digest --output json
format in future releases after receiving real-world feedback.
Percona Toolkit 2.2 is an exciting release with many helpful new
features. Users are encouraged to begin upgrading, particularly given
that, except for the forthcoming 2.1.10 release, no more work will be
done on 2.1 (unless you're a Percona customer with a support contract or
other agreement).
If you upgrade from 2.1 to 2.2, be sure to re-read tools' documentation
to see what has changed because much as changed for certain tools.
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/).
Changelog
---------
* 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
==========================
Percona Toolkit 2.1.9 has been released. This release primarily aims to
restore backwards-compatibility with pt-heartbeat 2.1.7 and older, but it
also has important bug fixes for other tools.
* 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
The previous release switched the time authority from Perl to MySQL, and from
local time to UTC. Unfortunately, these changes caused a loss of precision and,
if mixing versions of pt-heartbeat, made the tool report a huge amount of
replication lag. This release makes the tool compatible with pt-heartbeat
2.1.7 and older again, but the UTC behavior introduced in 2.1.8 is now only
available by specifying the new --utc option.
* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
This is an important bug fix for pt-table-sync: certain chunks from
pt-table-checksum resulted in an impossible WHERE, causing the false-positive
"Cannot nibble" error, if those chunks had diffs.
* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
MariaDB 5.5.28 (https://kb.askmonty.org/en/mariadb-5528-changelog/) fixed
a bug: "Added warnings for duplicate key errors when using INSERT IGNORE".
However, standard MySQL does not warn in this case, despite the docs saying
that it should. Since pt-online-schema-change has always intended to ignore
duplicate entry errors by using "INSERT IGNORE", it now handles the MariaDB
case by also ignoring duplicate entry errors in the code.
* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
pt-online-schema-change 2.1.9 handles another case of changing the primary key.
However, since changing the primary key is tricky, the tool stops if --alter
contains "DROP PRIMARY KEY", and you have to specify --no-check-alter to
acknowledge this case.
* Fixed bug 1099933: pt-stalk is too verbose, fills up log
Previously, pt-stalk printed a line for every check. Since the tool is
designed to be a long-running daemon, this could result in huge log files
with "matched=no" lines. The tool has a new --verbose option which makes it
quieter by default.
All users should upgrade, but in particular, users of versions 2.1.7 and
older are strongly recommended to skip 2.1.8 and go directly to 2.1.9.
Users of pt-heartbeat in 2.1.8 who prefer the UTC behavior should keep in
mind that they will have to use the --utc option after upgrading.
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/).
Changelog
---------
* 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
==========================

View File

@@ -1,3 +1,22 @@
# This program is copyright 2013 Percona Ireland Ltd.
# Feedback and improvements are welcome.
#
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
# licenses.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
# ###########################################################################
# Lmo::Meta package
# ###########################################################################
{
package Lmo::Meta;
use strict;
@@ -42,4 +61,7 @@ sub attributes_for_new {
}
1;
}
}
# ###########################################################################
# End Lmo::Meta package
# ###########################################################################

View File

@@ -1,4 +1,24 @@
# Mo::Object is the parent of every Mo-derived object. Here's where new
# This program is copyright 2013 Percona Ireland Ltd.
# Feedback and improvements are welcome.
#
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
# licenses.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
# ###########################################################################
# Lmo::Object package
# ###########################################################################
# Lmo::Object is the parent of every Mo-derived object. Here's where new
# and BUILDARGS gets inherited from.
package Lmo::Object;
@@ -93,5 +113,7 @@ sub meta {
return Lmo::Meta->new(class => $class);
}
1;
# ###########################################################################
# End Lmo::Object package
# ###########################################################################

View File

@@ -1,3 +1,23 @@
# This program is copyright 2013 Percona Ireland Ltd.
# Feedback and improvements are welcome.
#
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
# licenses.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
# ###########################################################################
# Lmo::Role package
# ###########################################################################
package Lmo::Role;
use strict;
@@ -70,3 +90,6 @@ sub unimport {
}
1;
# ###########################################################################
# End Lmo::Role package
# ###########################################################################

View File

@@ -1,3 +1,22 @@
# This program is copyright 2013 Percona Ireland Ltd.
# Feedback and improvements are welcome.
#
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
# licenses.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
# ###########################################################################
# Lmo::Types package
# ###########################################################################
package Lmo::Types;
use strict;
@@ -96,3 +115,6 @@ sub _nested_constraints {
}
1;
# ###########################################################################
# End Lmo::Types package
# ###########################################################################

View File

@@ -1,4 +1,24 @@
# This program is copyright 2013 Percona Ireland Ltd.
# Feedback and improvements are welcome.
#
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
# licenses.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
# ###########################################################################
# Lmo::Types package
# ###########################################################################
package Lmo::Utils;
use strict;
use warnings qw( FATAL all );
require Exporter;
@@ -6,7 +26,12 @@ our (@ISA, @EXPORT, @EXPORT_OK);
BEGIN {
@ISA = qw(Exporter);
@EXPORT = @EXPORT_OK = qw(_install_coderef _unimport_coderefs _glob_for _stash_for);
@EXPORT = @EXPORT_OK = qw(
_install_coderef
_unimport_coderefs
_glob_for
_stash_for
);
}
{
@@ -44,3 +69,6 @@ sub _unimport_coderefs {
}
1;
# ###########################################################################
# End Lmo::Utils package
# ###########################################################################

View File

@@ -238,6 +238,41 @@ is(
"No slave error"
);
# #############################################################################
# --check-read-only
# #############################################################################
diag(`/tmp/12345/use -u root -e "GRANT ALL ON *.* TO 'bob'\@'%' IDENTIFIED BY 'msandbox'"`);
diag(`/tmp/12345/use -u root -e "REVOKE SUPER ON *.* FROM 'bob'\@'%'"`);
$output = output(
sub { pt_heartbeat::main("u=bob,F=/tmp/12346/my.sandbox.cnf",
qw(-D test --update --replace --run-time 1))
},
stderr => 1
);
like(
$output,
qr/--read-only/,
"By default, fails if the server is read_only=1"
);
$output = output(
sub { pt_heartbeat::main("u=bob,F=/tmp/12346/my.sandbox.cnf",
qw(-D test --update --replace --run-time 1 --check-read-only))
},
stderr => 1
);
unlike(
$output,
qr/--read-only/,
"...but just skips doing any work and waits if --check-read-only was specified"
);
diag(`/tmp/12345/use -u root -e "DROP USER 'bob'\@'%'"`);
# #############################################################################
# Done.
# #############################################################################

View File

@@ -358,6 +358,7 @@ build_rpm() {
fi
mkdir -p rpm rpm/BUILD rpm/SOURCES rpm/RPMS rpm/SRPMS
mkdir -p RPM
cd rpm
local topdir=`pwd`
@@ -375,7 +376,7 @@ build_rpm() {
if [ ! -f "RPMS/noarch/$PKG-1.noarch.rpm" ]; then
die "RPMS/noarch/$PKG-1.noarch.rpm did not build"
fi
mv "RPMS/noarch/$PKG-1.noarch.rpm" $RELEASE_DIR
mv "RPMS/noarch/$PKG-1.noarch.rpm" $RELEASE_DIR/RPM
rm -rf $RELEASE_DIR/rpm
echo "OK"
@@ -398,9 +399,9 @@ build_deb() {
fi
cp $BRANCH/config/deb/* $RELEASE_DIR/$PKG/debian/
# Build Debian "binary" package.
# Build Debian binary and source packages.
cd $RELEASE_DIR/$PKG
dpkg-buildpackage -b -us -uc >$tmpdir/dpkg-buildpackage 2>&1
dpkg-buildpackage -us -uc >$tmpdir/dpkg-buildpackage 2>&1
if [ $? -ne 0 ]; then
warn "dpkg-buildpackage has warnings; see $tmpdir/dpkg-buildpackage"
fi
@@ -410,6 +411,9 @@ build_deb() {
cd $RELEASE_DIR
rm -rf *.changes >/dev/null
mkdir -p deb
mv percona-toolkit_* deb/
echo "OK"
}

View File

@@ -6,21 +6,21 @@ use English qw(-no_match_vars);
eval {
my ($year, $copyright) = @ARGV;
my ($years) = $copyright =~ m/(\S+) Percona Inc./;
my ($years) = $copyright =~ m/(\S+) Percona Ireland Ltd/;
my ($first_year, $last_year) = split /-/, $years;
my $new_copyright;
if ( $first_year && $last_year ) {
$new_copyright = "$first_year-$year Percona Inc."
$new_copyright = "$first_year-$year Percona Ireland Ltd"
}
elsif ( $first_year < $year ) {
$new_copyright = "$first_year-$year Percona Inc."
$new_copyright = "$first_year-$year Percona Ireland Ltd"
}
else {
$new_copyright = "$first_year Percona Inc."
$new_copyright = "$first_year Percona Ireland Ltd"
}
$copyright =~ s/\S+ Percona Inc./$new_copyright/;
$copyright =~ s/\S+ Percona Ireland Ltd/$new_copyright/;
print $copyright;
};
die $EVAL_ERROR if $EVAL_ERROR;

View File

@@ -6,8 +6,6 @@ use English qw(-no_match_vars);
use IO::File;
use HTML::Entities;
use File::Basename qw(basename);
use Pod::POM::View::Restructured;

5771
util/pod2rst-fixed.packed Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -68,18 +68,20 @@ RST_DIR=$DOCS_DIR/user
fix_html () {
local name="$1"
perl -MFile::Basename=basename -MFile::Slurp=read_file,write_file -le '
perl -MFile::Basename=basename -le '
my $f = shift;
my $tool = basename($f);
$tool =~ s/\.html//;
my $out = read_file($f);
my $out = do { open my $fh, '<', $f or die $!; local $/; <$fh> };
$out =~ s{
\Q<dt id="\E(cmdoption-$tool--)\Q">\E\s*
\Q<tt class="descname">--</tt><tt class="descclassname">\E([^<]+)
\Q</tt><a class="headerlink" href="\E[^"]+"
}{<dt id="$1$2">
<tt class="descname">--$2</tt><tt class="descclassname"></tt><a class="headerlink" href="#$1$2"}xg;
write_file($f, $out);
open my $fh, '>', $f or die "Cannot open $f for writing: $!";
print { $f } $out;
close $fh or die "Cannot close $f: $!";
' $RST_DIR/html/$name.html
}
@@ -91,7 +93,7 @@ write_rst() {
return
fi
$BRANCH/util/pod2rst-fixed $file > $RST_DIR/$tool.rst
$BRANCH/util/pod2rst-fixed.packed $file > $RST_DIR/$tool.rst
if [ $? -eq 0 ]; then
echo "Wrote $RST_DIR/$tool.rst"
else
@@ -121,7 +123,7 @@ write_sections() {
$BRANCH/util/extract-text $DOCS_DIR/percona-toolkit.pod "^=head1 $header" "^=head1|=cut" > /tmp/$filename.pod
# Convert POD to RST and remove all the Perl highlight blocks.
cat /tmp/$filename.pod | pod2rst | sed -e 's/.. highlight:: perl//g' > /tmp/$filename.tmp
$BRANCH/util/pod2rst-fixed.packed /tmp/$filename.pod | sed -e 's/.. highlight:: perl//g' > /tmp/$filename.tmp
# Remove extra blank lines.
cat -s /tmp/$filename.tmp > $RST_DIR/$filename.rst