mysqldump included character_set_client magic
that is unknown before 4.1 even when asked for
an appropriate compatibility mode.
In compatibility (3.23, 4.0) mode, we do not
output charset statements (not even in a
"comment conditional"), nor do we do magic on
the server, even if the server is sufficient
new (4.1+). Table-names will be output converted
to the charset requested by mysqldump; if such
a conversion is not possible (Ivrit -> Latin),
mysqldump will fail.
In case of ROW item each compared pair does not
check if argumet collations can be aggregated and
thus appropiriate item conversion does not happen.
The fix is to add the check and convertion for ROW
pairs.
mysql-test/r/row.result:
test result
mysql-test/t/row.test:
test case
sql/item.cc:
added agg_item_set_converter() function which was a part of
agg_item_charsets() func. The only difference is that
agg_item_set_converter() checks and converts items
using already known collation.
sql/item.h:
added agg_item_set_converter() function
sql/item_cmpfunc.cc:
In case of ROW item each compared pair does not
check if argumet collations can be aggregated and
thus appropiriate item conversion does not happen.
The fix is to add the check and convertion for ROW
pairs.
returns short string value.
Multibyte character sets were not taken into account when
calculating max_length in Item_param::convert_str_value(). As a
result, string parameters of a prepared statement could be
truncated later when calculating string length in characters by
dividing length in bytes by the charset's mbmaxlen value (e.g. in
Field_varstring::store()).
Fixed by taking charset's mbmaxlen into account when calculating
max_length in Item_param::convert_str_value().
sql/item.cc:
Multiply string's length in characters by charset's mbmaxlen when
calculating max_length.
tests/mysql_client_test.c:
Added a test case for bug #41078.
replace wild_case_compare with my_wildcmp which is multibyte safe function
mysql-test/r/lowercase_utf8.result:
test result
mysql-test/t/lowercase_utf8-master.opt:
test case
mysql-test/t/lowercase_utf8.test:
test case
sql/sql_show.cc:
replace wild_case_compare with my_wildcmp which is multibyte safe function
mysql-test/suite/funcs_1/r/memory_func_view.result:
Take additional precision into account.
mysql-test/suite/funcs_1/r/memory_views.result:
Take additional precision into account.
mysql-test/suite/funcs_1/r/myisam_func_view.result:
Take additional precision into account.
mysql-test/suite/funcs_1/r/myisam_views.result:
Take additional precision into account.
mysql-test/r/bdb_gis.result:
Take additional precision into account.
mysql-test/r/ndb_gis.result:
Take additional precision into account.
mysql-test/t/type_float.test:
Added missing DROP TABLE.
stack reservation too small
Problem: some tests fail on HP-UX due to insufficient stack reservation.
Fix: increase stack reservation.
sql/mysql_priv.h:
Fix for bug#21476: stack overflow crashes server; error-message
stack reservation too small
- raised STACK_MIN_SIZE to pass execution_constants.test on HP-UX.
Cleaned up SQL code in the test.
Needed to move the FLUSH TABLES statement prior to the DROP TABLE t1 to prevent a warning of
Table open on delete and a test fail.
Dirty close tricky does not work on Windows.
mysql-test/r/query_cache_notembedded.result:
Remove test case result.
mysql-test/t/query_cache_notembedded.test:
Remove test case.
Bug#38435 - LONG Microseconds cause MySQL to fail a CAST to DATETIME or DATE
Parsing of optional microsecond part in datetime did not
fail gracefully when field width was larger than the allowed
six places.
Now handles up to the correct six places, and disregards
any extra digits without messing up what we've already got.
mysql-test/r/type_datetime.result:
show graceful handling of overly long microsecond parts
(correct truncation).
mysql-test/t/type_datetime.test:
show graceful handling of overly long microsecond parts
(correct truncation).
sql-common/my_time.c:
Special case for time-parsing: for microsecond part,
leading zeroes are actually meaningful! Also, don't
break the entire date on more than the allowed six
digits in microsecond part, just truncate the extra
digits.