tables open
When executing a DROP DATABASE statement in ROW mode and having temporary
tables open at the same time, the existance of temporary tables prevent
the server from switching back to row mode after temporarily switching to
statement mode to handle the logging of the statement.
Fixed the problem by removing the code to switch to statement mode and added
code to temporarily disable the binary log while dropping the objects in the
database.
mysql-test/extra/binlog_tests/database.test:
Added test to ensure that DROP DATABASE does not affect the replication mode.
sql/sql_db.cc:
Removed code that clears the current_stmt_binlog_row_based flag.
Added code to disable the binary log while dropping the objects
in a database.
post push fix
Updated partition_symlink since different error behavior
if embedded (or not partitioned)
mysql-test/r/partition_symlink.result:
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY
updated result file
mysql-test/t/partition_symlink.test:
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY
Fix for embedded
Problem: data consistency check (maximum record length) for a correct
MyISAM table with CHECKSUM=1 and ROW_FORMAT=DYNAMIC option
may fail due to wrong inner MyISAM parameter. In result we may
have the table marked as 'corrupted'.
Fix: properly set MyISAM maximum record length parameter.
myisam/mi_create.c:
Fix for bug #37310: 'on update CURRENT_TIMESTAMP' option crashes the table
Use HA_OPTION_PACK_RECORD instead of HA_PACK_RECORD (typo?)
calculating packed record length.
mysql-test/include/wait_for_slave_sql_error_and_skip.inc:
include/start_slave.inc not exist yet, changed to start slave and source include/wait_for_slave_to_start.inc
mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result:
update result
Mostly, this affected files (programs, scripts, and manual pages)
which got built during a RPM build but were not listed in the
appropriate "%files" section of the "spec" file.
This is fixed now, they are added.
To make this consistent, this patch also makes the build of "innochecksum"
(and its inclusion in a tar.gz or other package) depend on whether InnoDB
is configured in the build.
Also, some tools to create Windows packages are irrelevant in any binary
Unix package (not the sources !), and so they are deleted before packaging.
configure.in:
To prevent "innochecksum" from getting built even if InnoDB is not configured
(and then being included in such packages),
we need an "automake condition" that evaluates whether we have InnoDB.
extra/Makefile.am:
Evaluate the new automake condition about having InnoDB,
and make the build of "innochecksum" depend on it.
man/Makefile.am:
Cleanup: There are manual files which we do not need,
like those about tools for Windows builds / packaging
(irrelevant in any Unix binary package)
and about NDB tools which do not get built.
scripts/make_binary_distribution.sh:
In any Unix binary package, do not include tools for Windows builds
(and their manual pages).
This does not affect source packages, of course.
support-files/mysql.spec.sh:
There were several files (binaries, scripts, and manuals)
which got built with a RPM but never packages,
add them to the respective RPM.
- Use the compiler's default copy constructor for QUICK_RANGE_SELECT.
bcopy(this, copy, ...) call caused some odd action on gcc-4.1.2 on x86_64
sql/opt_range.cc:
BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind
- Set QUICK_SELECT_DESC not to use MRR implementation (code moved to here
from opt_range.h)
sql/opt_range.h:
BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind
- Use the compiler's default copy constructor for QUICK_RANGE_SELECT.
bcopy(this, copy, ...) call caused some odd action on gcc-4.1.2 on x86_64
Dumping information about locks in use by sending a SIGHUP signal
to the server or by invoking the "mysqladmin debug" command may
lead to a server crash in debug builds or to undefined behavior in
production builds.
The problem was that a mutex that protects a lock object (THR_LOCK)
might have been destroyed before the lock object was actually removed
from the list of locks in use, causing a race condition with other
threads iterating over the list. The solution is to destroy the mutex
only after removing lock object from the list.
mysys/thr_lock.c:
Destroy the mutex that protects the lock object only after removing
the lock object from the list of locks in use.
Bug#26687 rpl_ddl test fails if run with --innodb option
Details:
- The current test + the expected results do only fit
if the slave uses MyISAM for mysqltest1.t1.
Therefore skip the test if we do not meet these
conditions.
- The solution for 5.1 will look quite different
because "ps_ddl" is already much improved in
MySQL 5.1.
test_if_data_home_dir fixed to look into real path.
Checks added to mi_open for symlinks into data home directory.
per-file messages:
include/my_sys.h
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
my_is_symlink interface added
include/myisam.h
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
myisam_test_invalid_symlink interface added
myisam/mi_check.c
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
mi_open_datafile calls modified
myisam/mi_open.c
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
code added to mi_open to check for symlinks into data home directory.
mi_open_datafile now accepts 'original' file path to check if it's
an allowed symlink.
myisam/mi_static.c
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
myisam_test_invlaid_symlink defined
myisam/myisamchk.c
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
mi_open_datafile call modified
myisam/myisamdef.h
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
mi_open_datafile interface modified - 'real_path' parameter added
mysql-test/r/symlink.test
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
error codes corrected as some patch now rejected pointing inside datahome
mysql-test/r/symlink.result
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
error messages corrected in the result
mysys/my_symlink.c
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
my_is_symlink() implementsd
my_realpath() now returns the 'realpath' even if a file isn't a symlink
sql/mysql_priv.h
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
test_if_data_home_dir interface
sql/mysqld.cc
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
myisam_test_invalid_symlik set with the 'test_if_data_home_dir'
sql/sql_parse.cc
Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
error messages corrected
test_if_data_home_dir code fixed
- Cherry pick 6.0 changes for Visual Studio 2008 support
- Add scripts win\build-vs9.bat and win\build-vs9_x64.bat
Also, remove CMake generated visual studio project files.
extra/yassl/taocrypt/taocrypt.vcproj:
remove file that is generated each time by cmake
extra/yassl/yassl.vcproj:
remove file that is generated each time by cmake
server-tools/instance-manager/mysqlmanager.vcproj:
remove file that is generated each time by cmake
win/build-vs9.bat:
Add script for Visual Studio 2008 support
win/build-vs9_x64.bat:
Add script for Visual Studio 2008 support
zlib/zutil.h:
support Visual Studio 2008
Details of the fix:
- wrong command and state in processlist -> insert poll routine
- unexpected additional session -> abort if unexpected session found
- Implementing --base64-format=decode-rows, to display
SQL-alike decoded row events without their BINLOG statements.
- Adding --base64-format=decode-rows into tests when
calling mysqlbinlog to avoid non-deterministic results
- Removing resetting of last_table_id in "RESET MASTER",
which appeared to be dangerous.
add'l portability fixes
mysys/safemalloc.c:
Make the various print-functions happy:
sf_malloc_(cur|max)_memory are size_t now, might as well use %u instead
of %d. Ideally, we'd use %zu, but we can't rely on having that, so we'll
use %lu instead. Likewise, we could cast to unsigned for our poor man's
%p -- pointers are never negative, and neither is %x --, but since it
was fixed to %p with seemingly no ill effects in 6.0 anyway, we'll back
port that instead.