BUG#4335 - one name can be handler open'ed many times.
Reworked the HANDLER functions and interface.
Using a HASH to store information on open tables that
survives FLUSH TABLE.
HANDLER tables alias names must now be unique, though it
is allowed in 4.0 to qualify them with the database name
of the base table.
lowercase_table.result:
New results for modified lowercase_table test
lowercase_table.test:
Added test case for all uppercase database when running under lower_case_table_names. This really only failed under Windows. Bug# 4792
Added test case for bug #4256.
join_outer.result:
Fixed bug #4256.
item_cmpfunc.h:
Fixed inconsistency of values of used_tables_cache and
const_item_cache for Item_func_isnull objects.
This inconsistency caused bug #4256.
in a deadlock-free manner. This splits locking the global read lock in two steps.
This fixes a consequence of this bug, known as:
BUG#4953 'mysqldump --master-data may report incorrect binlog position if using InnoDB'
And a test.
replacing the no_log argument of mysql_create_table() by some safer method
(temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
is opened by mysql_create_table().
from the select list and TEXT field
make setup_copy_fields to insert Item_copy_string for blobs in
the beginning of the copy_funcs (push_back instead of push_front)
the thing is that Item_copy_string::copy for function can call
Item_copy_string::val_int for blob via Item_ref.
But if Item_copy_string::copy for blob isn't called before,
it's value will be wrong.
So all the Item_copy_string::copy for blobs should be called before
Item_copy_string::copy for functions.
The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines",
BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table" with a test file.
It was not possible to add a test for BUG#4506 as in the test suite we must use --short-form
which does not display the "# at" lines.
Added put_length() to get_length() and unpack_key() to pack_key().
Keys were packed with the minimum size of the length field for the key part and
unpacked with length size of the base column.
For the purpose of optimal key packing we have the method pack_key(), while rows are
packed with pack(). Now keys are unpacked with unpack_key() and no longer with
unpack() which is used for rows.