(back to behaviour of 4.1.7). Warning was not fatal: mysqldump continued. And the good thing is that it helped spot that starting from 4.1.7,
SHOW CREATE DATABASE failed (if --single-transaction and first db has non-empty InnoDB table and there is a second db) and thus mysqldump
produced CREATE DATABASE statements missing the CHARACTER SET clause. Removing the bug which was in the server, and the warning reporting in
mysqldump (compatibility with old servers).
corrected mysql_test_run_new.dsp
added dependency
corrected path of mysql_test_run_new.dsp
fixed wrong code
added my_create_tables.c
removed command_line
fixed #elif
restored NAME_MAX and MAX_FNAME
added create_system_files()
added compare() for windows
added all files of testes in script
added mysql-test in script
Moved "../regex/libregex.a" before "../libmysql/libmysqlclient.la"
when linking. For -all-static linking libtool put -lc after the .la
file and this put the libc regex functions before our regex functions
when linking on Linux.
no need for dvlags to have DEFINE_CXA_PURE_VIRTUAL anymore
aligned the parsing of connectstring, retries for connect, allocation of nodeid for all cluster nodes
removed all dependencies of LocalConfig, except for mgmapi internals
enabled multiple management servrs to fetch data configurations from eachother
clause the the SELECT statement used to dump the data
for any table which has a primary or unique key. This
is useful for dumping MyISAM tables which will be later
imported into InnoDB tables.
added libs variable for ndbmgmclient used by mysqladmin
add linkage with @ndb_mgmclient_libs@
additional options for ndbcluster
added support for managing the cluster to mysqladmin
added DEFINE_CXA_PURE_VIRTUAL flag to CFLAGS to enable linkage with c++ libs
use macros for C_MODE_START/END so that define of FIX_GCC_LINKING_PROBLEM works in c-programs
binlog coordinates corresponding to the dump".
The good news is that now mysqldump can be used to get an online backup of InnoDB *which works for
point-in-time recovery and replication slave creation*. Formerly, mysqldump --master-data --single-transaction
used to call in fact mysqldump --master-data, so the dump was not an online dump (took big lock all time of dump).
The only lock which is now taken in this patch is at the beginning of the dump: mysqldump does:
FLUSH TABLES WITH READ LOCK; START TRANSACTION WITH CONSISTENT SNAPSHOT; SHOW MASTER STATUS; UNLOCK TABLES;
so the lock time is in fact the time FLUSH TABLES WITH READ LOCK takes to return (can be 0 or very long, if
a table is undergoing a huge update).
I have done some more minor changes listed in the paragraph of mysqldump.c.
WL#2237 "WITH CONSISTENT SNAPSHOT clause for START TRANSACTION":
it's a START TRANSACTION which additionally starts a consistent read on all
capable storage engine (i.e. InnoDB). So, can serve as a replacement for
BEGIN; SELECT * FROM some_innodb_table LIMIT 1; which starts a consistent read too.
Revise the --hex-blob help message string. (This will need
revising after merge to 4.1, too, but the CHAR BINARY and
VARCHAR BINARY data types will be BINARY and VARBINRY.)
Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
This gives us the following benefits:
- Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
- Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
- We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
- 'mysqldump --help' comment that --xeh-blob
doesn't work with --extended-inserts was removed.
It does work now. Thanks to Lachlan
who noticed this wrong help message.
- Switched to use the recently introduced
mysql_hex_string() instead of slow sprintf().
Thanks to Sinisa for the idea.
- 'mysqldump --hex-blob' dumps in HEX not only
BLOBs but also BINARY(x) columns.
Thanks to Paul.