into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
mysql-test/t/disabled.def:
Auto merged
sql/item_sum.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
include/my_base.h:
Manual merge main->rpl 5.1
mysql-test/t/innodb.test:
Manual merge main->rpl 5.1
into olga.mysql.com:/home/igor/dev-opt/mysql-5.1-opt
mysql-test/r/binary.result:
Auto merged
mysql-test/r/ctype_collate.result:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/binary.test:
Auto merged
mysql-test/t/create.test:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/field_conv.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_sum.h:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_select.h:
Auto merged
sql/table.cc:
Auto merged
storage/myisam/mi_open.c:
Auto merged
strings/ctype-simple.c:
Auto merged
mysql-test/r/create.result:
Manual merge.
mysql-test/r/subselect.result:
Manual merge.
mysql-test/r/type_enum.result:
Manual merge.
mysql-test/t/type_enum.test:
Manual merge.
mysql-test/include/mix1.inc:
Manual merge.
mysql-test/r/innodb_mysql.result:
Manual merge.
mysql-test/t/subselect.test:
Manual merge.
sql/sql_parse.cc:
Manual merge.
storage/myisam/mi_key.c:
Manual merge.
into olga.mysql.com:/home/igor/mysql-5.0-opt
mysql-test/r/type_enum.result:
Auto merged
mysql-test/t/type_enum.test:
Auto merged
sql/field_conv.cc:
SCCS merged
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-rpl
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/t/ndb_alter_table.test:
Auto merged
mysql-test/t/ndb_alter_table2.test:
Auto merged
mysql-test/t/ndb_alter_table3.test:
Auto merged
mysql-test/t/ndb_autodiscover3.test:
Auto merged
mysql-test/t/ndb_binlog_log_bin.test:
Auto merged
mysql-test/t/ndb_binlog_multi.test:
Auto merged
mysql-test/t/ndb_cache_multi.test:
Auto merged
mysql-test/t/ndb_cache_multi2.test:
Auto merged
mysql-test/t/ndb_single_user.test:
Auto merged
sql/ha_ndbcluster.cc:
SCCS merged
Test that we can start a MySQL Server with a default multibyte charset with
NDB running. Test *really* basic functionality too.
Index: ndb-work/mysql-test/r/rpl_ndb_ctype_ucs2_def.result
===================================================================
mysql-test/r/rpl_ndb_ctype_ucs2_def.result:
Test for BUG#27404 util thd mysql_parse sig11 when default multibyte charset
mysql-test/t/rpl_ndb_ctype_ucs2_def-master.opt:
Test for BUG#27404 util thd mysql_parse sig11 when default multibyte charset
mysql-test/t/rpl_ndb_ctype_ucs2_def.test:
Test for BUG#27404 util thd mysql_parse sig11 when default multibyte charset
NDB util thread calls mysql_parse internally with plain old c strings (7bit ascii) to create tables (e.g. mysql.ndb_schema). With mysqld default charset set to a multibyte one (e.g. ucs2) mysql_parse would try to interpret the 7bit string as UCS2 and promptly explode in a heap.
Solution is to set the util thread to be using utf8 charset.
Index: ndb-work/sql/ha_ndbcluster.cc
===================================================================
sql/ha_ndbcluster.cc:
BUG#27404 util thd mysql_parse sig11 when mysqld default multibyte charset
When a UNION statement forced conversion of an UTF8
charset value to a binary charset value, the byte
length of the result values was truncated to the
CHAR_LENGTH of the original UTF8 value.
sql/item.cc:
Fixed bug #29205.
The calculation of data length was modified in
the Item_type_holder::join_types method to take into
account possible conversion of a multibyte charset
value to a binary charset value, when each
multibyte character is converted into a sequence
of bytes (not to a single byte of binary charset).
mysql-test/t/ctype_utf8.test:
Updated test case for bug #29205.
mysql-test/r/ctype_utf8.result:
Updated test case for bug #29205.
spaces.
When the my_strnncollsp_simple function compares two strings and one is a prefix
of another then this function compares characters in the rest of longer key
with the space character to find whether the longer key is greater or less.
But the sort order of the collation isn't used in this comparison. This may
lead to a wrong comparison result, wrongly created index or wrong order of the
result set of a query with the ORDER BY clause.
Now the my_strnncollsp_simple function uses collation sort order to compare
the characters in the rest of longer key with the space character.
mysql-test/t/ctype_collate.test:
Added a test case for the bug#29261: Sort order of the collation wasn't used
when comparing trailing spaces.
mysql-test/r/ctype_collate.result:
Added a test case for the bug#29261: Sort order of the collation wasn't used
when comparing trailing spaces.
strings/ctype-simple.c:
Bug#29261: Sort order of the collation wasn't used when comparing trailing
spaces.
Now the my_strnncollsp_simple function uses collation sort order to compare
the characters in the rest of longer key with the space character.
query / no aggregate of subquery
The optimizer counts the aggregate functions that
appear as top level expressions (in all_fields) in
the current subquery. Later it makes a list of these
that it uses to actually execute the aggregates in
end_send_group().
That count is used in several places as a flag whether
there are aggregates functions.
While collecting the above info it must not consider
aggregates that are not aggregated in the current
context. It must treat them as normal expressions
instead. Not doing that leads to incorrect data about
the query, e.g. running a query that actually has no
aggregate functions as if it has some (and hence is
expected to return only one row).
Fixed by ignoring the aggregates that are not aggregated
in the current context.
One other smaller omission discovered and fixed in the
process : the place of aggregation was not calculated for
user defined functions. Fixed by calling
Item_sum::init_sum_func_check() and
Item_sum::check_sum_func() as it's done for the rest of
the aggregate functions.
mysql-test/r/subselect.result:
Bug #27333: test case
mysql-test/t/subselect.test:
Bug #27333: test case
sql/item_subselect.cc:
Bug#27333: need select_lex to filter out
aggregates that are not aggregated in
the current select.
sql/item_sum.cc:
Bug#27333: need select_lex to filter out
aggregates that are not aggregated in
the current select.
sql/item_sum.h:
Bug#27333: calculate the place of
aggregation for user defined functions.
sql/sql_select.cc:
Bug#27333: When counting the aggregated functions
and collecting a list of them we must not consider
the aggregates that are not aggregated in the local
context as "local" : i.e. we must treat them as
normal functions and not add them to the aggregate
functions list.
sql/sql_select.h:
Bug#27333: need select_lex to filter out
aggregates that are not aggregated in
the current select.
Sometimes the number of really updated rows (with changed
column values) cannot be determined at the server level
alone (e.g. if the storage engine does not return enough
column values to verify that). So the only dependable way
in such cases is to let the storage engine return that
information if possible.
Fixed the bug at server level by providing a way for the
storage engine to return information about wether it
actually updated the row or the old and the new column
values are the same. It can do that by returning
HA_ERR_RECORD_IS_THE_SAME in ha_update_row().
Note that each storage engine may choose not to try to
return this status code, so this behaviour remains
storage engine specific.
include/my_base.h:
Bug #29157: handle the row not updated special return value
sql/log_event.cc:
Bug #29157: handle the row not updated special return value
sql/sp.cc:
Bug #29157: handle the row not updated special return value
sql/sql_acl.cc:
Bug #29157: handle the row not updated special return value
sql/sql_insert.cc:
Bug #29157: handle the row not updated special return value
sql/sql_servers.cc:
Bug #29157: handle the row not updated special return value
sql/sql_update.cc:
Bug #29157: handle the row not updated special return value
what caused some consequitive tests failures
mysql-test/r/events_bugs.result:
test result fixed
mysql-test/t/events_bugs.test:
typo fixed, event removed
into poseidon.mysql.com:/home/tomas/mysql-5.1-new-rpl
mysql-test/r/rpl_ndb_stm_innodb.result:
Auto merged
mysql-test/t/rpl_ndb_stm_innodb.test:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
Auto merged
- only log statements locally (changes will not be logged on other servers)
mysql-test/r/ndb_binlog_format.result:
New BitKeeper file ``mysql-test/r/ndb_binlog_format.result''
mysql-test/t/ndb_binlog_format.test:
New BitKeeper file ``mysql-test/t/ndb_binlog_format.test''
Thanks to Martin Friebe for finding and submitting a fix for this bug!
A table with maximum number of key segments and maximum length key name
would have a corrupted .frm file, due to an incorrect calculation of the
complete key length. Now the key length is computed correctly (I hope) :-)
MyISAM would reject a table with the maximum number of keys and the maximum
number of key segments in all keys. It would allow one less than this total
maximum. Now MyISAM accepts a table defined with the maximum. (This is a
very minor issue.)
myisam/mi_open.c:
Bug #26642: change >= to > in a comparison (i.e., error
only if key_parts_in_table really is greater than
MAX_KEY * MAX_KEY_SEG)
mysql-test/r/create.result:
Bug #26642: test case
mysql-test/t/create.test:
Bug #26642: test case
sql/table.cc:
Bug #26642: In create_frm(), fix formula for key_length;
it was too small by (keys * 2) bytes
don't free thd->lex->sphead if we didn't do lex_start(),
as we can have garbage there
mysql-test/r/events_bugs.result:
Bug #29156 events crash server in test suite
test result added
mysql-test/t/events_bugs.test:
Bug #29156 events crash server in test suite
testcase
Sometimes special 0 ENUM values was ALTERed to normal
empty string ENUM values.
Special 0 ENUM value has the same string representation
as normal ENUM value defined as '' (empty string).
The do_field_string function was used to convert
ENUM data at an ALTER TABLE request, but this
function doesn't care about numerical "indices" of
ENUM values, i.e. do_field_string doesn't distinguish
a special 0 value from an empty string value.
A new copy function called do_field_enum has been added to
copy special 0 ENUM values without conversion to an empty
string.
sql/field_conv.cc:
Fixed bug #29251.
The Copy_field::get_copy_func method has been modified to
return a pointer to the do_field_enum function if a conversion
between two columns of incompatible enum types is required.
The do_field_enum function has been added for the correct
conversion of special 0 enum values.
mysql-test/t/type_enum.test:
Updated test case for bug #29251.
mysql-test/r/type_enum.result:
Updated test case for bug #29251.
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
Auto merged
storage/ndb/src/kernel/blocks/pgman.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
merge
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
merge
This patch contains enhancements to the rpl_events test to correct
timing issues related to the firing of events and verification of the
results of those events.
mysql-test/include/rpl_events.inc:
BUG#28991 : rpl_events failure in pushbuild
This patch contains refinements to the rpl_events test to remove all
timing issues related to sleep commands. It also refines the test to
include additional documentation.
mysql-test/r/rpl_events.result:
BUG#28991 : rpl_events failure in pushbuild
This patch contains the result file for the refinements to the
rpl_events test.