There are two main idea of this fix:
- introduce a common function for server and client to split user value
(<user name>@<host name>) into user name and host name parts;
- dump DEFINER clause in correct format in mysqldump.
So, use --replace and instead of getting INSERT INTO you will INSTEAD get REPLACE INTO. Buyer beward, REPLACE is a MySQL SQL, so you will not end up with a dump that can be used for other databases.
Though I hear you could just use a sed line to modify it back :)
mysqldump.result:
BUG# 12838
New test results for mysqldump -x on a DB with views
mysqldump.test:
sqldump.test:
BUG# 12838
New test to run mysqldump -x on a DB with views
mysqldump.c:
BUG# 12838
Removed/Changed code which created tables to be put into the dump
(For loading views of views) by creating temp tables and then using
the CREATE TABLE information in those temp tables. The problem with this
is that when mysqldump -x is called, it locks all tables, so the
temp tables could not be created, causing the mysqldump to exit with
failure. The code was changed to use SHOW FIELDS to get the column
names and type to build CREATE TABLE text used to create these tables
that views need in the dump.
Clean application of patch -
- Added --tz-utc to fix issue of dumping timestamp values between
servers with different global time zone settings, particularly
with regard to the day of DST changeover, which without this fix,
would dump duplicate timestamp values.
- CHAR() now returns binary string as default
- CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
- Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
(Some old systems returns ETIME and it's safer to test for both values
than to try to write a wrapper for each old system)
- Fixed new introduced bug in NOT BETWEEN X and X
- Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
- Use octet2hex() for all conversion of string to hex
- Simplify and optimize code
Ensure that ccache is also used for C programs
mysql: Ensure that 'delimiter' works the same way in batch mode as in normal mode
mysqldump: Change to use ;; (instead of //) as a stored procedure/trigger delimiter
Fixed test cases by adding missing DROP's and rename views to be of type 'v#'
Removed MY_UNIX_PATH from fn_format()
Removed current_db_used from TABLE_LIST
Removed usage of 'current_thd' in Item_splocal
Removed some compiler warnings
A bit faster longlong2str code
Change bool in C code to my_bool
Added to mysqltest --enable_parsning and --disable_parsing to avoid to have to comment parts of tests
Added comparison of LEX_STRING's and use this to compare file types for view and trigger files.
tree on brian's amd 64 box (which was already approved).
[patg@zim mysql-5.0]$ bk changes
ChangeSet@1.1882, 2005-07-21 18:43:55+05:00, gluh@eagle.intranet.mysql.r18.ru
merge fix
Was the changeset level I applied this patch to.
Master shutdown finished
Slave shutdown finished
All 326 tests were successful.
[patg@zim mysql-5.0]$