The bug is a regression introduced in 5.1 by the patch for bug28404.
Under some circumstances test_if_skip_sort_order() could leave some
data structures in an inconsistent state so that some parts of code
could assume the selected execution strategy for GROUP BY/DISTINCT as
a loose index scan (e.g. JOIN_TAB::is_using_loose_index_scan()), while
the actual strategy chosen was an ordered index scan, which led to
wrong data being returned.
Fixed test_if_skip_sort_order() so that when changing the type for a
join table, select->quick is reset not only for EXPLAIN, but for the
actual join execution as well, to not confuse code that depends on its
value to determine the chosen GROUP BY/DISTINCT strategy.
mysql-test/r/distinct.result:
Added a test case for bug #34928.
mysql-test/t/distinct.test:
Added a test case for bug #34928.
sql/sql_select.cc:
When changing the table's join type to JT_NEXT in
test_if_skip_sort_order(), also reset select->quick because other
code may depend on its value to determine the GROUP BY/DISTINCT
execution strategy.
into stella.local:/home2/mydev/mysql-5.1-axmrg
mysql-test/t/query_cache.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_delete.cc:
Auto merged
mysql-test/r/query_cache.result:
SCCS merged
into mail.hezx.com:/media/sda3/work/mysql/bkwork/b33029_5.0_to_5.1_fails_on_dup_key/5.1
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
into a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-marvel
mysql-test/lib/mtr_report.pl:
Auto merged
sql/handler.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/log.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
into stella.local:/home2/mydev/mysql-5.1-axmrg
mysql-test/r/federated.result:
Auto merged
mysql-test/t/federated.test:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_update.cc:
Auto merged
storage/federated/ha_federated.cc:
Auto merged
mysql-test/suite/binlog/r/binlog_unsafe.result:
Manual merge
mysql-test/suite/binlog/t/binlog_unsafe.test:
Manual merge
into stella.local:/home2/mydev/mysql-5.1-axmrg
mysql-test/r/ctype_big5.result:
Auto merged
mysql-test/r/ctype_euckr.result:
Auto merged
mysql-test/r/ctype_gb2312.result:
Auto merged
mysql-test/r/ctype_gbk.result:
Auto merged
mysql-test/r/ctype_uca.result:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
sql/slave.cc:
Auto merged
mysql-test/r/federated.result:
Manual merge from 5.0
mysql-test/t/federated.test:
Manual merge from 5.0
storage/federated/ha_federated.cc:
Manual merge from 5.0
into stella.local:/home2/mydev/mysql-5.1-axmrg
mysql-test/r/ctype_big5.result:
Auto merged
mysql-test/r/ctype_euckr.result:
Auto merged
mysql-test/r/ctype_gb2312.result:
Auto merged
mysql-test/r/ctype_gbk.result:
Auto merged
mysql-test/r/ctype_uca.result:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result:
Auto merged
mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/rpl_rli.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/lib/mtr_report.pl:
SCCS merged
into stella.local:/home2/mydev/mysql-5.0-axmrg
mysql-test/r/ctype_big5.result:
Auto merged
mysql-test/r/ctype_cp932.result:
Auto merged
mysql-test/r/ctype_euckr.result:
Auto merged
mysql-test/r/ctype_gb2312.result:
Auto merged
mysql-test/r/ctype_gbk.result:
Auto merged
mysql-test/r/ctype_uca.result:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
sql/slave.cc:
Auto merged
plugin_load.test created lines in the warnings files and made
pushbuild cells yellow. Some pushbuild systems are configured
so that they don't build the ha_example plugin. Trying to load
them creates error messages in the error log. These were copied
to the warnings file.
Fixed by ignoring expected error messages for non-existent
ha_example.
mysql-test/lib/mtr_report.pl:
Bug#35559 - plugin_load.test creates warnings
Ignore expected error messages for non-existent ha_example.
When trying to get the requested amount of memory for the keybuffer,
the out of memory could be signaled if one of the tentative allocations
fail. Later the server would crash (debug assert) when trying to send
a ok packet with a error set.
The solution is only to signal the error if all tentative allocations
for the keybuffer fail.
mysql-test/r/key_cache.result:
Add test case result for Bug#35272
mysql-test/t/key_cache.test:
Add test case for Bug#35272
mysys/mf_keycache.c:
Don't set error on my_large_malloc if allocation fails.
Set the error if all tentative allocations failed.
instructions)
This bug can not be reproduced in the current version,
adding the test case to the test suite for coverage, no code change.
mysql-test/r/sp-code.result:
Bug#20906 (Multiple assignments in SET in stored routine produce incorrect
instructions)
mysql-test/t/sp-code.test:
Bug#20906 (Multiple assignments in SET in stored routine produce incorrect
instructions)
into mysql.com:/home/svoj/devel/mysql/BUG34768/mysql-5.1-engines
mysql-test/t/federated.test:
Auto merged
storage/federated/ha_federated.cc:
Use local.
into host.loc:/home/uchum/work/5.1-opt
sql/sql_show.cc:
Auto merged
mysql-test/r/information_schema.result:
Merge with 5.0-opt.
mysql-test/t/information_schema.test:
Merge with 5.0-opt.
Minor test case cleanup after bug#34529.
mysql-test/r/information_schema.result:
Minor test case cleanup after bug#34529.
mysql-test/t/information_schema.test:
Minor test case cleanup after bug#34529.
mysql-test/mysql-test-run.pl:
Group all code to find extra suites together
Fix problem with infinite loop by using splitdir to split the path
Use a hash to map clone name -> extr suite
sql/set_var.h:
Changing order of initializer list for sys_var class constructor to
eliminate compiler warning.
mysql-test/suite/binlog/combinations:
New BitKeeper file ``mysql-test/suite/binlog/combinations''
BUG#34790 - 'create server' doesn't handle out of memory scenario
well enough
This is an addition to fixes for these bugs, which makes gcov
happy.
mysql-test/r/federated.result:
CREATE SERVER is only tested by federated_server.test, which requires
big-test option. Added dummy test case to make gcov happy.
mysql-test/t/federated.test:
CREATE SERVER is only tested by federated_server.test, which requires
big-test option. Added dummy test case to make gcov happy.
sql/sql_parse.cc:
Make gcov happy.
if binlog_format=mixed
Addition to fix for BUG#34768: fixed test case failures discovered
by pushbuild.
mysql-test/suite/binlog/r/binlog_stm_ps.result:
Fixed binlog_stm_ps failure when binlog format is statement:
- this test case makes sence only if binlog format is statement,
thus execute it only in this mode;
- added a warning that insert ... select ... limit is not safe
to execute in statement mode.
mysql-test/suite/binlog/t/binlog_stm_ps.test:
Fixed binlog_stm_ps failure when binlog format is statement:
- this test case makes sence only if binlog format is statement,
thus execute it only in this mode;
- added a warning that insert ... select ... limit is not safe
to execute in statement mode.
mysql-test/suite/rpl/t/rpl_optimize.test:
rpl_optimize test may be executed in various binlog format modes.
In statement mode delete ... limit issues a warning, in mixed and
row modes it does not.
Fixed a test case so it is still possible to execute it in all binlog
format modes by ignoring delete ... limit warnings.
mysql-test/suite/rpl/t/rpl_user_variables.test:
rpl_user_variables test may be executed in various binlog format modes.
In statement mode insert ... select ... limit issues a warning,
in mixed and row modes it does not.
Fixed a test case so it is still possible to execute it in all binlog
format modes by ignoring insert ... select ... limit warnings.
localhost/default port
When creating federated table that points to unspecified host or
localhost on unspecified port or port is 0, small memory leak occurs.
This happens because we make a copy of unix socket path, which is
never freed.
With this fix we do not make a copy of unix socket path, instead
share->socket points to MYSQL_UNIX_ADDR constant directly.
This fix is covered by a test case for BUG34788.
Affects 5.0 only.
mysql-test/t/federated.test:
A test case for BUG#35509.
sql/ha_federated.cc:
When creating federated table we call parse_url() to check if connect
string is correct. parse_url() may make a copy of unix socket path if
port is not specified or 0 and host is not specified or 'localhost'.
This copy is never freed.
As there is no need to make a copy of unix socket path, let
share->socket point to MYSQL_UNIX_ADDR directly.
for YEAR data type.
The problem was that for some unknown reason 0 was not allowed
as a default value for YEAR data type. That was coded before BK.
However the Manual does not say a word about such a limitation.
Also, it looks inconsistent with other data types.
The fix is to allow 0 as a default value.
mysql-test/r/create.result:
Update result file.
mysql-test/t/create.test:
Add a test case for Bug#34274: Invalid handling of 'DEFAULT 0'
for YEAR data type.
sql/unireg.cc:
Allow 0 as a default value for YEAR data type.
mysql-test/r/information_schema_db.result:
Update result file.
mysql-test/r/sp-security.result:
Update result file.
mysql-test/r/trigger_notembedded.result:
Update result file.
mysql-test/r/view_grant.result:
Update result file.
bytes in unimportant, unused pieces of index pages) and test failure
because test requires Maria. Compiler warning.
About Valgrind error, two of the three bzero() added here are
needed to silence the error (the third is added for symmetry).
mysql-test/t/maria-gis-rtree.test:
requires Maria
storage/maria/ma_loghandler.c:
"uint64->uint16 possible loss of precision" on Windows
storage/maria/ma_rt_index.c:
We bzero the entire new page, as is done in _ma_enlarge_root()
for B-tree pages. This silences Valgrind warnings and allows
better compression.
storage/maria/ma_rt_split.c:
We bzero the entire new page, as is done in _ma_enlarge_root()
for B-tree pages. This silences Valgrind warnings and allows
better compression.
Fixed the parser to reject SQLSTATE '00000',
since '00000' is the successful completion condition,
and can not be caught by an exception handler in SQL.
mysql-test/r/sp-error.result:
Bug#8759 (Stored Procedures: SQLSTATE '00000' should be illegal)
mysql-test/t/sp-error.test:
Bug#8759 (Stored Procedures: SQLSTATE '00000' should be illegal)
sql/sp_pcontext.cc:
Bug#8759 (Stored Procedures: SQLSTATE '00000' should be illegal)
correctly - crashes server !
Creating federated table with connect string containing empty
(zero-length) host name and port is evaluated as 0 (port is
incorrect, omitted or 0) crashes server.
This happens because federated calls strcmp() with NULL pointer.
Fixed by avoiding strcmp() call if hostname is set to NULL.
mysql-test/r/federated.result:
A test case for BUG#34788.
mysql-test/t/federated.test:
A test case for BUG#34788.
sql/ha_federated.cc:
Fixed that parse_url() may call strcmp() with NULL pointer.