Manual merge from mysql-5.1 into mysql-5.5.
Conflicts
=========
Text conflict in mysql-test/suite/rpl/t/rpl_row_until.test
Text conflict in sql/handler.h
Text conflict in storage/archive/ha_archive.cc
WORK WITH --START-POSITION
If setting --start-position to start after the FD event, mysqlbinlog
will output an error stating that it has not found an FD event.
However, its not that mysqlbinlog does not find it but rather that it
does not processes it in the regular way (i.e., it does not print it).
Given that one is using --base64-output=DECODE-ROWS then not printing
it is actually fine.
To fix this, we make mysqlbinlog not to complain when it has not
printed the FD event, is outputing in base64, but is decoding the
rows.
There are a couple of valgrind warnings in 5.5 codebase, that
do not exist in 5.6. The root cause was found and fixed in 5.6
codebase before (BUG#11763880 and BUG#11763879), but the patches
were only pushed to 5.6.
To fix it in 5.5, we cherrypicked the csets from 5.6 and merged
them in 5.5.
The problem was that wrong structure of mysql.event was not detected and
the server continued to use wrongly-structured data.
The fix is to check the structure of mysql.event after opening before
any use. That makes operations with events more strict -- some operations
that might work before throw errors now. That seems to be Ok.
Another side-effect of the patch is that if mysql.event is corrupted,
unrelated DROP DATABASE statements issue an SQL warning about inability
to open mysql.event table.
large prefix (>=768). Table with such large prefix index will not
be loaded into memory (for its metadata), unless innodb_force_recovery
is on.
rb://604 Approved by Marko
Make a qualified guess: if $basedir/lib does not exist but $basedir/lib64
does, then the latter is the proper value for $MYSQL_LIBDIR
Tested on the RPMS of 5.5.12.
.editrc on linux.
MySQL client when build with libedit support ignores
.editrc at startup.
The reason for this regression was the incluison of a
safety check, issetugid(), which is not available on
some linux platforms.
Fixed by adding an equivalent check for platforms which
have get[e][u|g]id() set of functions.
cmd-line-utils/libedit/el.c:
Bug#11757855 - 49967: built-in libedit doesn't read
.editrc on linux.
Added function calls to check user/group IDs on linux
systems which does not have issetugid() function.
configure.in:
Bug#11757855 - 49967: built-in libedit doesn't read
.editrc on linux.
Added check for getuid, geteuid, getgid, getegid
functions.
Add extra codes to wait_until_disconnected.inc that are present in 5.5,
but not in 5.1. The missing codes cause innodb_bug59641 to fail in 5.1 on
Windows PB2 runs. The addition of those codes in 5.5 was done in
luis.soares@sun.com-20090930233215-aup3kxy4j6ltvjfp
BEFORE: First packet sent by client-side plugin (generated by Windows
function InitializeSecurityContext()) could be longer than 255 bytes
violating the limitation imposed by authentication protocol.
AFTER: Handshake protocol is changed so that if first client's reply is
longer than 254 bytes then it is be sent in 2 parts. However, for replies
shorter than 255 bytes nothing changes.
ADDITIONAL CHANGES:
- The generic packet processing loop (Handshake::packet_processing_loop)
has been refactored. Communication with the peer has been abstracted
into virtual methods read/write_packet() which are implemented in client
and server and transparently do the required splitting and gluing of packets.
- Make it possible to optionally use dbug library in the plugin.
- Add code for testing splitting of long first client reply.
into the server repository
This patch adds client windows authentication plugin code to the client
library libmysql (only on Windows platform). The plugin is compiled into
the library and added to the list of built-in plugins. This way clients
should be able to connect to a server which uses windows authentication
plugin even as an SQL user which uses such authentication.
Note: this makes the client library to depend on Secur32 Windows system
library. When building clients, they must be linked against Secur32.
Command mysql_config --libs correctly lists Secur32 as a required
dependency.