"LOAD DATA INFILE is badly filtered by binlog-*-db rules".
There will probably be a second final one to merge Dmitri's changes
to rpl_log.result and mine.
2 new tests:
rpl_loaddata_rule_m : test of logging of LOAD DATA INFILE when the master has binlog-*-db rules,
rpl_loaddata_rule_s : test of logging of LOAD DATA INFILE when the slave has binlog-*-db rules and --log-slave-updates.
mysql-test/r/rpl_loaddata.result:
Test that logging of LOAD DATA INFILE is done on the slave
mysql-test/t/rpl_loaddata.test:
Test that logging of LOAD DATA is done on the slave
sql/log.cc:
debug info
sql/log_event.cc:
* Append_block, Exec_load and Delete_file now have a member 'db' like Create_file.
This member is filled by mysql_load(). It is used for filtering by binlog-*-db rules,
that's all. It's not written to the binlog, and so can't be read from the binlog.
In other words, that's temporary info which is stored in the event and lost when
it is written and deleted.
* Better error messages in Append_block et al. events.
* The slave now logs (log-slave-updates) the Create_file et al. events in mysql_load()
(they are not directly copied from the events in the relay log, because this
prevented filtering by binlog-*-db rules). Before, mysql_load() in the slave
did no logging, now it does the logging, as in any regular thread.
sql/log_event.h:
New member 'db' for Append_block et al. events.
sql/slave.cc:
Removed useless code. Why was it useless:
- CREATE_FILE_EVENT is not defined in 3.23. It appeared in 4.0.
- in queue_old_event(), which is called only if the master is 3.23, we had a
case CREATE_FILE_EVENT:
so this case can be removed.
- this case was the only caller of process_io_create_file() so this function
can be removed.
sql/sql_load.cc:
Pass the db to events, so that they can be well filtered.
sql/sql_repl.cc:
Pass the db to events so that they can be well filtered.
Set min value of max_allowed_packet to 1024
Fixed problem with UNION's without braces and SQL_CALC_FOUND_ROWS, LIMIT #,#
and ORDER BY...LIMIT
include/m_string.h:
Added memcpy_overlap() to avoid warnings when using valgrind on memcpy(A,A,...)
myisam/mi_create.c:
Fixed comment
myisam/mi_search.c:
Fix warning from valgrind
myisam/mi_write.c:
Indentation fix
mysql-test/mysql-test-run.sh:
Add options handled by general skip- option
mysql-test/r/packet.result:
Update results after change to mysqld (min max_allowed_packet length is now 1024)
mysql-test/r/union.result:
Added testing of UNION with SQL_CALC_FOUND_ROWS
mysql-test/t/packet.test:
Update results after change to mysqld (min max_allowed_packet length is now 1024)
mysql-test/t/union.test:
Added testing of UNION with SQL_CALC_FOUND_ROWS
sql/field.cc:
Fix to remove waarning from valgrind
sql/ha_innodb.cc:
Remove wrong include file
sql/item_cmpfunc.cc:
Safety fix to handle EOM conditions in IN
sql/item_sum.cc:
Fixed prototype for update_field() (argument was alwys 0)
sql/item_sum.h:
Fixed prototype for update_field() (argument was alwys 0)
sql/item_uniq.h:
Fixed prototype for update_field() (argument was alwys 0)
sql/log.cc:
Indentation fix
sql/mysqld.cc:
Set min value of max_allowed_packet to 1024 (to avoid it getting set to 0)
sql/net_serv.cc:
Indentation changes + trivial optimization
sql/sql_select.cc:
Fixed prototype for update_field() (argument was alwys 0)
sql/sql_union.cc:
Fixed problem with UNION's without braces and
- SQL_CALC_FOUND_ROWS
- LIMIT #,#
- ORDER BY ... LIMIT
Test case for the LEAST() bug in LEFT JOIN
mysql-test/t/func_test.test:
Test case for the LEAST() bug in LEFT JOIN
mysql-test/r/func_test.result:
Test case for the LEAST() bug in LEFT JOIN
Fix for a bug with LEAST() in WHERE clause
ha_innodb.cc:
Fix for a configure bug
multi_update.result, multi_update.test:
Fix for the update with NULL's in the result set
sql_update.cc:
Fix for the update with NULL's in the result set
Fix for the update with NULL's in the result set
Fix for the update with NULL's in the result set
sql/sql_update.cc:
Fix for the update with NULL's in the result set
Fix for the update with NULL's in the result set
Fix for the update with NULL's in the result set
mysql-test/t/multi_update.test:
Fix for the update with NULL's in the result set
mysql-test/r/multi_update.result:
Fix for the update with NULL's in the result set
sql/ha_innodb.cc:
Fix for a configure bug
sql/item_func.h:
Fix for a bug with LEAST() in WHERE clause
log-slave-updates since this causes unexpected values in
Exec_master_log_pos in A->B->C replication setup, synchronization
problems in master_pos_wait()...
Still this brokes some functionality in sql/repl_failsafe.cc
(but this file is not used now)
mysql-test/r/rpl_log.result:
SHOW BINLOG EVENTS for binlog on slave should give the same
Orig_log_pos and Pos values
sql/log_event.cc:
Do not propagate our master's log pos to our bin log
sql/repl_failsafe.cc:
Added comment about broken SHOW NEW MASTER
sql/slave.cc:
Do not propagate our master's log pos to our bin log
sql/sql_class.cc:
THD::log_pos is no longer needed
sql/sql_class.h:
THD::log_pos is no longer needed
sql/sql_parse.cc:
Added comment about broken SHOW NEW MASTER
the first 4 bytes of the relay log. Indeed comments in mysys/mf_iocache.c
say we must always use my_b_append for such a cache.
This *could* avoid a very rare assertion failure which is:
030524 19:32:38 Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log '/
users/gbichot/4.1.1/mysql-test/var/log/slave-relay-bin.000001' position: 4
030524 19:32:38 next log '/users/gbichot/4.1.1/mysql-test/var/log/slave-relay-bin.000002' is currently active
mysqld: mf_iocache.c:701: _my_b_seq_read: Assertion `pos_in_file == info->end_of_file' failed.
and which seemed to happen always when the SQL thread and/or the I/O thread
were at position 4 in a relay log.
include/my_sys.h:
moving a function from log_event.cc so that it can be widely used
mysys/mf_iocache.c:
moving a function from log_event.cc so that it can be widely used
sql/log.cc:
my_b_write should not be used on a SEQ_READ_APPEND cache, one should use my_b_append
(otherwise there could be some locking problems).
sql/log_event.cc:
moved to mysys/mf_iocache.c for wider use.
A typo.
"mysqlbinlog does not comment the original LOAD DATA INFILE if it has a "use xx""
client/mysqlbinlog.cc:
a comment
sql/log_event.cc:
in mysqlbinlog we want to have a leading '#' before LOAD DATA INFILE when we
print a Create_file event.
This was not done properly when the query had *2* lines: only the "use db" got
commented.
To fix this I had to add an argument to Load_log_event::print, it could not be
handled in Create_file_log_event::print alone.
sql/log_event.h:
prototype
mysqlbinlog segfaults if --position is just before Exec_load event
mysqlbinlog prints uncommented warnings if --database and compiled with debug
mysqlbinlog --database does not filter LOAD DATA INFILE
client/mysqlbinlog.cc:
* Don't stop in Append_block when there is no Create_file. Just print a warning.
* Test LOAD DATA (Create_file) against --database.
* Don't print "no skip" when you don't skip an event when using --database (it
causes syntax errors in 'mysql').
* Print a warning in Exec_load if there is no Create_file.
for Mac OS X and add it to the installation Disk Image.
Build-tools/Do-pkg:
- added code to build the StartupItem PKG along with the MySQL PKG and
add it to the resulting Disk Image (can be skipped with --skip-si)
- lots of cleanups (use more builtin Perl functions instead of
subprocesses, enable a full dry run without errors)
support-files/MacOSX/StartupItem.Info.plist:
- removed IFPkgFlagOverwritePermissions and IFPkgFlagUseUserMask
- Enhanced Do-rpm to support building RPMs with different compilers
and options
Build-tools/Bootstrap:
- small optimization (use builtin Perl cwd() function instead of running
"pwd" twice)
Build-tools/Do-rpm:
- added options to handle different compilers and compile flags (e.g. when
compiling on IA64 using the Intel ecc compiler)
- code cleanups (use more builtin Perl functions instead of forking
subrocesses)
- don't try to probe various distribution-specific RPM options - query rpm
directly instead
- Pass the MySQL version as an argument, not an option (as it's not
optional anyway)
That's to make resolveip work on our FreeBSD-5.0/Sparc64 build host.
extra/resolveip.c:
Fix for 64-bit CPUs (u_long is 64 bit there, but in_addr_t is always uint32).
contain max 1280 characters, but sometimes in rare cases when --columns
was used, more than 1280 characters was needed. This is case when a lot
of columns was specified using this option. Raised the max value to 8448,
which should be enough.
startup item: MySQL (the startup script), StartupItem.Description.plist,
StartupItem.Info.plist (PKGMaker control files), StartupItem.postinstall
(post-installation script for the Startup Item package)
- modified support-files/MacOSX/Makefile.am to include the newly added files
in the source distribution
BitKeeper/etc/ignore:
Added scripts/make_win_src_distribution to the ignore list
support-files/MacOSX/Makefile.am:
- added the Mac OS X StartupItem files to the source distribution
Fix packet error when using wrong GRANT command
include/config-win.h:
Changed back to test for HAVE_SETFILEPOINTER instead of operating system
mysql-test/r/grant.result:
Extra test to catch wrong packet bug
mysql-test/t/grant.test:
Extra test to catch wrong packet bug
mysys/my_chsize.c:
Cleanup
sql/opt_range.cc:
Fix to recent BETWEEN patch
sql/sql_acl.cc:
Fix packet error when using wrong GRANT command
sql/sql_select.cc:
Cleanups
Added not critical out-of-memory check
Add --zip option for finer grain control over what package formats are created
Bootstrap:
Create both Windows source packages
Build-tools/Bootstrap:
Create both Windows source packages
scripts/make_win_src_distribution.sh:
Add --zip option for finer grain control over what package formats are created
Adding *.txt here didn't work well-- infolist.txt is in a path containing spaces
scripts/make_win_src_distribution.sh:
Adding *.txt here didn't work well-- infolist.txt is in a path containing spaces
Clean up script, add needed modifications to generate a complete 4.0 Windows source package
scripts/make_win_src_distribution.sh:
Clean up script, add needed modifications to generate a complete 4.0 Windows source package
Corrections to Bootstrap for --win-dist
Build-tools/Bootstrap:
Corrections to for --win-dist
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
(Do-compile)
- added mysql.info to the binary distribution files (BUG#1019)
- heavily reworked the Do-rpm script to be more in line with Do-pkg
- create a "docs" subdirectory in the binary distribution and moved the
manual, ChangeLog and mysql.info file into it to unclutter the top
directory
Build-tools/Do-compile:
- enable compiling with the embedded server by default (as requested by
BrianA) - disable it with the "--disable-embedded" compile option.
Build-tools/Do-rpm:
- replaced the original Shell script with a Perl script, similar to Do-pkg.
Some more work remains to be done (copying the resulting packages,
enable using different compile flags and compilers).
scripts/make_binary_distribution.sh:
- move some docs into a subdirectory "docs" to not clutter the top
directory with too many files.
- added mysql.info info file to the docs dir (BUG#1019)