Note: bug#21726 does not directly apply to 4.1, as it doesn't have stored
procedures. However, 4.1 had some bugs that were fixed in 5.0 by the
patch for bug#21726, and this patch is a backport of those fixes.
Namely, in 4.1 it fixes:
- LAST_INSERT_ID(expr) didn't return value of expr (4.1 specific).
- LAST_INSERT_ID() could return the value generated by current
statement if the call happens after the generation, like in
CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT);
INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID());
- Redundant binary log LAST_INSERT_ID_EVENTs could be generated.
mysql-test/r/rpl_insert_id.result:
Add result for bug#21726: Incorrect result with multiple invocations
of LAST_INSERT_ID.
mysql-test/t/rpl_insert_id.test:
Add test case for bug#21726: Incorrect result with multiple invocations
of LAST_INSERT_ID.
sql/item_func.cc:
Add implementation of Item_func_last_insert_id::fix_fields(), where we
set THD::last_insert_id_used when statement calls LAST_INSERT_ID().
In Item_func_last_insert_id::val_int(), return THD::current_insert_id
if called like LAST_INSERT_ID(), otherwise return value of argument if
called like LAST_INSERT_ID(expr).
sql/item_func.h:
Add declaration of Item_func_last_insert_id::fix_fields().
sql/log_event.cc:
Do not set THD::last_insert_id_used on LAST_INSERT_ID_EVENT. Though we
know the statement will call LAST_INSERT_ID(), it wasn't called yet.
sql/set_var.cc:
In sys_var_last_insert_id::value_ptr(), set THD::last_insert_id_used,
and return THD::current_insert_id for @@LAST_INSERT_ID.
sql/sql_class.h:
Update comments.
Remove THD::insert_id(), as it has lost its purpose now.
sql/sql_insert.cc:
Now it is OK to read THD::last_insert_id directly.
sql/sql_load.cc:
Now it is OK to read THD::last_insert_id directly.
sql/sql_parse.cc:
In mysql_execute_command(), remember THD::last_insert_id (first
generated value of the previous statement) in THD::current_insert_id,
which then will be returned for LAST_INSERT_ID() and @@LAST_INSERT_ID.
sql/sql_select.cc:
If "IS NULL" is replaced with "= <LAST_INSERT_ID>", use right value,
which is THD::current_insert_id, and also set THD::last_insert_id_used
to issue binary log LAST_INSERT_ID_EVENT.
sql/sql_update.cc:
Now it is OK to read THD::last_insert_id directly.
tests/mysql_client_test.c:
Add test case for bug#21726: Incorrect result with multiple invocations
of LAST_INSERT_ID.
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
Improve 'run_testcase_need_slave_restart' to detect if a slave restart really is necessary.
So far all rpl test requires a slave restart, but for all other tests it can be skipped
Improve the sort order used by --reorder
mysql-test/lib/mtr_cases.pl:
Improve the sort order used by reorder
mysql-test/mysql-test-run.pl:
Improve 'run_testcase_need_master_restart' to require restart if master is not already started
Improve 'run_testcase_need_slave_restart' to detect if a slave restart really is necessary.
So far all rpl test requires a slave restart, but for all other tests it can be skipped
into mysql.com:/home/svoj/devel/mysql/BUG10974/mysql-5.0-engines
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
Auto merged
mysql-test/r/merge.result:
Manual merge.
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
Makefile.am:
Manual merge
Cleanup .progress, .reject, .log and .warnings files produced by mysqltest
client/mysqltest.c:
Add printout of file in which warning was detected
mysql-test/include/ctype_like_escape.inc:
Remove warnings, convert -- comments to # comments
mysql-test/mysql-test-run.pl:
Cleanup all files produced by mysqltest before starting mysqltest again
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
client/mysqltest.c:
Auto merged
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Add policy directive about keeping mysqltest framework tools identical in all versions
Cleanup the initial comment to reflect current state
but having it on tmpfs gives a big speedup.
mysql-test/mysql-test-run.pl:
Make use of opt_mem and let 4.1 allow vardir to be set. Still relies on the var/ directory
but having it on tmpfs gives a big speedup.
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/rpl_loaddatalocal.result:
Auto merged
mysql-test/mysql-test-run.pl:
Use same location for slave-load-tmpdir in all versions
mysql-test/mysql-test-run.sh:
Use same location for slave-load-tmpdir in all versions
mysql-test/r/rpl_loaddata.result:
Update result after changing slave-load-tmpdir to use a shorter path
mysql-test/r/rpl_loaddatalocal.result:
Update result after changing slave-load-tmpdir to use a shorter path
mysql-test/r/rpl_log.result:
Update result after changing slave-load-tmpdir to use a shorter path
mysql-test/t/rpl_loaddatalocal.test:
Use MYSQLTEST_VARDIR when specifying path to load from(backport from 5.0)
Use new command "remove_file" instead of s"ystem rm"
into mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-5.0-engines
mysql-test/r/ndb_update.result:
Auto merged
mysql-test/t/ndb_update.test:
Auto merged
sql/sql_update.cc:
Manual merge.
Though this is not storage engine specific problem, I was able to
repeat this problem with BDB and NDB engines only. That was the
reason to add a test case into ndb_update.test. As a result
different bad things could happen.
BDB has removed duplicate rows which is not expected.
NDB returns an error.
For multi table update notify storage engine about UPDATE IGNORE
as it is done in single table UPDATE.
mysql-test/r/ndb_update.result:
A test case for bug#21381.
mysql-test/t/ndb_update.test:
A test case for bug#21381.
sql/sql_update.cc:
For multi table update notify storage engine about UPDATE IGNORE
as it is done in single table UPDATE.
from var/ to a tmpfs area and thereby speed up the execution of the testsuite
significantly
mysql-test/mysql-test-run.pl:
Add new option --mem to mysql-test-run.pl. It will automatically setup a symlink
from var/ to a tmpfs area and thereby speed up the execution of the testsuite
significantly
Backport. See #20910: NOT NULL column reported as NULL in SHOW FIELDS or INFORMATION_SCHEMA
mysql-test/r/type_ranges.result:
Fix for bug #22377: iNCONSISTENCY WITH null
- results adjusted.
mysql-test/r/type_timestamp.result:
Fix for bug #22377: iNCONSISTENCY WITH null
- results adjusted.
sql/sql_show.cc:
Fix for bug #22377: iNCONSISTENCY WITH null
- as NULL values cannot be stored in 'timestamp not null' fields,
don't make an exception for them.
into mysql.com:/home/gluh/MySQL/Merge/4.1-kt
include/m_ctype.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/table.cc:
Auto merged
sql/unireg.cc:
Auto merged
Some variable names in 5.1 is soo long that there is no space inbetween
name and value. Outputing a warning about it, as that should probably be fixed.
At least one space should be put between the name and value.
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/mysqltest.result:
Auto merged
The problem appears when we have a space followed by a non-format symbol.
Fix: properly skip spaces.
mysql-test/r/date_formats.result:
Fix for bug #22029: str_to_date returning NULL, while date_format works using identical format.
- test result.
mysql-test/t/date_formats.test:
Fix for bug #22029: str_to_date returning NULL, while date_format works using identical format.
- test case.
sql/item_timefunc.cc:
Fix for bug #22029: str_to_date returning NULL, while date_format works using identical format.
- skipping pre-spaces between each argument moved.
I.e take advantage of the fact that a # comment is always terminated by a new line
Add tests for the above
client/mysqltest.c:
Improve "check_eol_junk" to detect junk although there are multi line comments in the way.
I.e take advantage of the fact that a # comment is always terminated by a new line
mysql-test/r/mysqltest.result:
Update resut file
mysql-test/t/mysqltest.test:
Add test for improved check_eol_junk
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/rpl_charset.result:
Use local
mysql-test/t/rpl_charset.test:
Manual merge(basically keep test file as is in 5.0)