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-15: version 0.9.10 * ANSI_QUOTES SQL_MODE or SQL_QUOTE_SHOW_CREATE0= could cause an error. * Disabled --flushlog by default so error log doesn't get trashed. 2007-10-09: version 0.9.9 * Table and database names were not quoted in arguments to mysqldump. * LOCK TABLES not inside transaction caused infinite wait (see http://bugs.mysql.com/31479) * Made exit status 1 if any errors, 0 if successful. 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-parallel-restore: 2007-10-15: version 0.9.0 * 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.