
Changelog for mysql-archiver:

2007-08-23: version 1.0.1

   * MySQL socket connection option didn't work.
   * Added --askpass option.

2007-07-26: version 1.0.0

   * Added --safeautoinc option, enabled by default, to protect against re-using
     auto-increment values.

2007-07-20: version 0.9.4

   * Made --time suffix optional.
   * Added --statistics option to gather and print timing statistics.
   * Added signal handling so mysql-archiver exits cleanly when it can.
   * Changed exit status to 0 when --help is given.
   * Out-of-column-order primary keys were not ascended correctly.

2007-06-22: version 0.9.3

   Changes:
   * Added more hooks for plugins before and after archiving.
   * Documentation.
   * Made --time suffix optional.

   Bugs fixed:
   * MySQL Archiver could crash on a lock wait timeout when --txnsize was not set

2007-06-09: version 0.9.2

   Changes:
   * Added --stop option.
   * Added standard --version command-line option.
   * Added --skipfkchk.
   * Added a plugin mechanism to give arbitrary Perl code hooks into the archiving process.

   Bugs fixed:
   * Old versions of DBD::mysql do not quote identifiers correctly.
   * Old versions of Perl cannot handle the syntax "print $file func()".
   * Indexes on column prefixes were not parsed correctly.

2007-06-06: version 0.9.1

   Changes:
   * --where is now a required option.
   * Command-line parsing is strict to help catch mis-quoted --where.
   * Added --commit-each, --ascend and --ascendfirst options.

   Bugs fixed:
   * WHERE clause was not isolated in parentheses.
   * The ascending index WHERE clause was not properly parenthesized.
   * Rows could be skipped while ascending a multi-column primary key.

2007-06-06: version 0.9.0

   * Initial release

Changelog for mysql-deadlock-logger:

2007-09-20: version 1.0.4

   * Added --interval, --time, and --daemonize options, and signal handling.
   * --askpass did not allow different passwords on --source and --dest.

2007-08-23: version 1.0.3

   * MySQL socket connection option didn't work.
   * Added --askpass option.
   * Truncated output could crash on an undefined regex result.
   * Made --source and --dest accept bareword hostnames.
   * Made DBI errors only print once.

2007-06-22: version 1.0.2

   Incompatible changes:
   * Changed the format of the --source and --dest options.

   Changes:
   * Documentation.

2007-06-10: version 1.0.1

   * MySQL 5.1 shows tables in db.tbl format, not db/tbl in record locks.
   * Added --defaults-file option.
   * Added standard --version command-line option.

2007-03-25: version 1.0.0

   * Rewrite the GetOpt::Long code and rely on DBD to read MySQL option files.

2007-03-13: version 0.9.0

   * Fix a couple spots where InnoDB output parsing failed and caused a crash.

2007-03-08: version 0.8.0

   * Initial release

Changelog for mysql-duplicate-key-checker:

2007-09-20: version 1.1.1

   * Exit code wasn't always defined.

2007-09-01: version 1.1.0

   * Column printout was misaligned one space.
   * Refactored into a runnable module and added tests.
   * Redundant indexes were only detected if the shorter index was first.
   * Redundant foreign keys sometimes weren't detected.
   * All indexes on MEMORY tables were reported as HASH.
   * Added --clustered option to report appended PK columns as dupes for InnoDB and solidDB.

2007-08-23: version 1.0.5

   * MySQL socket connection option didn't work.
   * Added --askpass option.

2007-06-22: version 1.0.4

   * Documentation.

2007-06-10: version 1.0.3

   * Added --defaults-file option.
   * Added standard --version command-line option.

2007-03-25: version 1.0.2

   * Rewrite the GetOpt::Long code and rely on DBD to read MySQL option files.
   * Error handling if there aren't permissions to run SHOW CREATE TABLE on a
     view.
   * Documentation copy/paste error.

2007-03-02: version 1.0.1

   * Fixed several small bugs with quoting
   * Fixed bugs with index types (FULLTEXT, HASH etc)
   * Add --allatonce option

2007-03-01: version 1.0.0

   * Initial release.

Changelog for mysql-find:

2007-10-03: version 0.9.5

   * The --dbregex parameter didn't work right.

2007-08-23: version 0.9.4

   * MySQL socket connection option didn't work.
   * Added --askpass option.

2007-06-22: version 0.9.3

   * Documentation.

2007-06-10: version 0.9.2

   * --pid had a race condition.
   * Unrecognized --sprintf directives could cause crashes.
   * Added --defaults-file option.
   * Added standard --version command-line option.

2007-05-09: version 0.9.1

   * Added --host command-line option.  Oops.

2007-05-08: version 0.9.0

   * Initial release.

Changelog for mysql-heartbeat:

2007-10-03: version 1.0.1

   * --check hung forever.

2007-09-20: version 1.0.0

   * Initial release.

Changelog for mysql-parallel-dump:

2007-10-05: version 0.9.8

   * Added --setperdb option.
   * Print each chunk's details to 00_master_data.sql file.
   * Do locking and list-building as late as possible for efficiency.
   * Error handling.

2007-10-03: version 0.9.6

   * Arguments to external program weren't honored.
   * System exit codes were lost, so errors weren't reported.
   * Added chunking.
   * Modularized and tested.
   * Added documentation.
   * Made --locktables negatable.
   * Changed default output to be less verbose and added --verbose option.
   * Added summary output.

2007-10-01: version 0.9.5

   * Initial release.

Changelog for mysql-query-profiler and mysql-profile-compact:

2007-09-20: version 1.1.5

   * Documentation didn't specify how queries in FILE are separated.

2007-09-01: version 1.1.4

   * SHOW STATUS inconsistencies after a FLUSH were skewing status.

2007-08-23: version 1.1.3

   * MySQL socket connection option didn't work.
   * Large queries overflowed the formatting room available.

2007-06-22: version 1.1.2

   * Documentation

2007-06-10: version 1.1.1

   * Added --defaults-file option.
   * Added standard --version command-line option.
   * Added --defaults-file option.

2007-04-05: version 1.1.0

   * Profile "Potential filesorts".
   * Allow to read STDIN, many files possible.
   * Allow to execute other programs in --external mode.
   * Make columns always have headings for consistency and scriptability.
   * Add mysql-profile-compact helper tool.

2007-04-01: version 1.0.3

   * Profile Bytes_received and Bytes_sent.
   * Add --external option so you can profile another program without running its queries.
   * Fix commandline options: change --flush and --verbose, and change --debug to --verify.
   * Fix behavior of --calibrate.  It was not calibrating by default.  This was
     making things look too expensive.
   * More documentation.

2007-03-25: version 1.0.2

   * Rewrite the GetOpt::Long code and rely on DBD to read MySQL option files.
   * Documentation.

2007-03-02: version 1.0.1

   * Fix prompting

2007-03-01: version 1.0.0

   * Initial re-release on Sourceforge.
   * A lot of improvements as I've learned more about coding :-)

Changelog for mysql-show-grants:

2007-08-23: version 1.0.3

   * MySQL socket connection option didn't work.
   * Added --askpass option.

2007-06-22: version 1.0.2

   * Documentation.

2007-06-10: version 1.0.1

   * Added --defaults-file option.
   * Added standard --version command-line option.
   * Added --defaults-file option.

2007-03-25: version 1.0.0

   * Rewrite the GetOpt::Long code and rely on DBD to read MySQL option files.
   * Fix the --revoke and --separate options so revokes are not separate unless
     specified.  Add REVOKE GRANT OPTION when the user has it.

2007-03-19: version 0.9.1

   * Added --separate, --drop, --revoke and --flush options.

2007-03-17: version 0.9.0

   * Initial release.

Changelog for mysql-slave-delay:

2007-09-20: version 1.0.1

   * Added a --daemonize option to detach from the shell and run in the background.

2007-08-23: version 1.0.0

   * MySQL socket connection option didn't work.
   * Added a check that the server is a slave.

2007-08-04: version 0.9.0

   * Initial release.

Changelog for mysql-slave-restart:

2007-09-20: version 1.0.1

   * Added a --daemonize option to detach from the shell and run in the background.

2007-08-23: version 1.0.0

   * MySQL socket connection option didn't work.
   * Added --askpass option.

2007-08-04: version 0.9.3

   * Fixed a crash caused by omitting --verbose.
	* Changed exit status to 0 when --help is given.

2007-07-05: version 0.9.2

   * Initial release.

Changelog for mysql-table-checksum and mysql-checksum-filter:

2007-10-01: version 1.1.16

   * Made mysql-checksum-filter able to compare tables in different databases.

2007-09-20: version 1.1.15

   * The CHECKSUM strategy was always disabled.

2007-09-01: version 1.1.14

   * Added documentation about the storage engine for the checksum table.
   * The --replcheck option now checks the server and its slaves.

2007-08-23: version 1.1.13

   * MySQL socket connection option didn't work.
   * Added --askpass option.

2007-07-26: version 1.1.12

   * MySQL Table Checksum could crash when it tried to checksum on a table that
	  was removed.

2007-07-20: version 1.1.11

   * Added --replcheck option to check --replicate results on slaves.
   * Added --recursecheck option to do --replcheck recursively.

2007-07-10: version 1.1.10

   * Handle malformed values that will return undef start and end points in
     chunking.
   * Updated documentation's example query to be run on the slave.

2007-07-10: version 1.1.9

   Changes:
   * Enabled chunking on FLOAT, DOUBLE and DECIMAL columns.

   Bugs fixed:
   * mysql-table-checksum crashed when EXPLAIN said an empty table had rows.
   * mysql-table-checksum failed to find rows on slaves that didn't exist
     on the master.
   * Changed from BETWEEN to WHERE clauses.

2007-06-22: version 1.1.8

   Changes:
   * Documentation.
   * Support complex host definitions.
   * Added --explainhosts option to debug host definitions.
   * Added --explain option.
   * When exact chunking is impossible, mysql-table-checksum will use approximate.

   Incompatible changes:
   * Added required 'boundaries' column to checksum table for --replicate.

   Bugs fixed:
   * Chunking on temporal types defeated indexes.

2007-06-10: version 1.1.7

   * Added --defaults-file option.
   * Added standard --version command-line option.

2007-06-03: version 1.1.6

   Incompatible changes:
   * The chunking functionality no longer guarantees chunks will be no larger
     than the specified size.  Use --chunksize-exact for that.  Note that the
     chunking functionality is still experimental and likely to change further.

   Changes:
   * Chunking now works with multiple-column indexes.
   * Added --quiet option, useful for cron jobs with --replicate.
   * Added --float-precision option; works around different floating-point formats.
   * Added --sleep-coef option; sleeps a multiple of the time the last checksum took.
   * Added error handling for tables that are dropped during checksumming.
   * Added documentation on the finer points of --replicate-do and --binlog-do.

   Bugs fixed:
   * There was a race condition between listing and checksumming tables.
   * Perl's auto-vivify hashes could cause all tables to be skipped after the
     first VIEW.
   * Some DBIs did not consider ? inside a comment to be a placeholder.
   * Systems that return nothing from CHECKSUM TABLE crashed mysql-table-checksum.
   * --askpass did not print a newline after reading password.
   * Different TIMESTAMP display formatting could cause spurious checksum differences.
   * Checksumming by chunks did not work when the chunk column contained NULL.
   * --replicate did not always work correctly with binlog_do_db.

2007-05-16: version 1.1.5

   Incompatible changes:
   * Output includes a new CHUNK column.
   * When using --replicate, the specified table structure needs a new 'chunk' column.

   Changes:
   * Added --chunksize and --chunkcol options to checksum tables in chunks.
   * Added --sleep option to pause between checksum queries.
   * Added --emptyrepltbl option to empty --replicate table before starting work.
   * Added --defaults-file option to read a given MySQL options file.
   * Check for existence of --replicate table before starting work.
   * Updated mysql-checksum-filter to handle the new CHUNK column in the output.
   * More documentation.
   * More tests in the test suite.

   Bugs fixed:
   * The output in --replicate mode had an empty string in CHECKSUM when the
     table had no rows (bad for scriptability).
   * The --optxor optimization was broken and always disabled itself.

2007-05-05: version 1.1.0

   * Added a way to do checksums on slaves via replication.
   * Added a row-order-independent BIT_XOR checksum algorithm.
   * Much better documentation, which reflects more logically designed program.
   * Added compatibility options for MySQL 3.23.58 through 6.0 alpha.
   * Added a test suite.
   * As per Heikki Tuuri, InnoDB and other engines can do CHECKSUM TABLE since 4.1.1
   * Made existing ACCUM user-variable algorithm work with SELECT and INSERT.
   * Changed default behavior for --count to avoid extra COUNT(*) query.
   * Added --algorithm, --askpass, --defaults-file, --index, --replicate, and --separator options.
   * Added warnings if the cmdline options are wrong.
   * Don't fork when there is only one host.
   * Speed and query optimizations.

2007-04-05: version 1.0.4

   * Verify servers have compatible MySQL version so checksums are valid.
   * Documentation.

2007-03-25: version 1.0.3

   * Rewrite the GetOpt::Long code and rely on DBD to read MySQL option files.
   * Make the exit code behave as expected.
   * Handle errors from tables that have gone away or can't be read.
   * Change command-line option names.

2007-03-06: version 1.0.2

   * Fix more quoting
   * Fix an off-by-one error in mysql-checksum-filter

2007-03-02: version 1.0.1

   * Fix quoting and skip lost+found database
   * Add documentation

2007-02-26: version 1.0.0

   * Initial release.

Changelog for mysql-table-sync:

2007-10-01: version 0.9.7

   * The special command-line syntax didn't allow a bare hostname.
   * Added an informative printout of what is being synced.

2007-08-23: version 0.9.6

   * Added --askpass option.
   * Changed --replicate option to --synctomaster.
   * Fixed the MySQL socket option.
   * Made --synctomaster able to connect to the master from SHOW SLAVE STATUS.
   * MySQL socket connection option didn't work.
   * Suppress duplicated error messages from MySQL.
   * Changed DSN from URL-ish format to key=value format.
   * Generated WHERE clauses weren't properly isolated in parentheses.
   * Changed exit status to 0 when --help is given.
   * Made --replicate imply --wait 60.

2007-06-22: version 0.9.5

   * Documentation.

2007-06-10: version 0.9.4

   * Added --defaults-file option.
   * Added standard --version command-line option.

2007-05-17: version 0.9.3

   New features:

   * Added --where option to limit syncing to part of a table.
   * Added --defaults-file option to mimic MySQL's tools better.
   * Added --skipforeignkey option to disable foreign key checks.

   Bug fixes:
   * Server-side STRCMP comparisons were being done on an in-use connection.

2007-04-12: version 0.9.2

   * Documentation (added OPTIONS section to perldoc).
   * Bug fix: get a row at a time from the server by default.
   * Bug fix: when the user specifies --columns, ignore other columns.
   * Bug fix: make sure fetch handle is active before trying to fetch a row.

2007-04-05: version 0.9.1

   * Documentation.
   * Fix order of drilldown groupings in topdown algorithm.
   * Fix logarithmic math for bottomup algorithm (determining size from level).
   * Add --queries option.  Add SQL comments to some queries.
   * Add --singletxn option.
   * Fix key comparison to match MySQL's sort order.
   * Re-order statements to DELETE, UPDATE, INSERT.
   * Add --deleteinsert option.
   * Verify CONCAT_WS is compatible on both servers.
   * Add test script.

2007-03-25: version 0.9.0

   * Rewrite the GetOpt::Long code and rely on DBD to read MySQL option files.
   * Change some parsing of DSNs.
   * Handle UPDATE statements correctly in handle_data_change.
   * Handle some special cases in locking for consistency.

2007-03-18: version 0.8.0

   * Initial release.

Changelog for mysql-visual-explain:

2007-09-20: version 1.0.3

   * filesort wasn't applied to the first non-constant table.

2007-09-01: version 1.0.2

   * FULLTEXT indexes were not recognized (type=fulltext in EXPLAIN).
   * Temporary/filesort were not added to the right node in the tree.
   * Added a new node type for "Range checked for each record."

2007-08-23: version 1.0.1

   * MySQL socket connection option didn't work.
   * Added --askpass option.
   * UNIONs inside a SUBQUERY weren't correctly nested.
   * Some types of impossible queries weren't handled.

2007-07-28: version 1.0.0

   * Initial release.
