"Rows not deleted from innodb partitioned tables if --innodb_autoinc_lock_mode=0"
Due to a previous bugfix which initializes a previously uninitialized
variable, ha_partition::get_auto_increment() may fail to operate
correctly when the storage engine reports that it is only reserving
one value and one or more partitions have a different 'next-value'.
Currently, only affects Innodb's new-style auto-increment code which
reserves larger blocks of values and has less inter-thread contention.
"Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases"
Bug#28430
"Failure in replication of innodb partitioned tables on row/mixed format"
Bug#30888
"Innodb table + stored procedure + row deletion = server crash"
Apply Oracle patch from Sunny
Include tests cases by Omer
Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0
No need for "if" guard around row_unlock_table_autoinc_for_mysql() because
it already performs same check.
Make autoinc_lock_mode variable read-only for duration of running mysqld process.
- Updated row help count information
- Added missing 'order by' clauses (altrady fixed in build tree)
- Fixed isses with ndb_storeproc06/10 tests (added use database)
- Corrected use of wrong engine in ndb tests (already fixed in build tree)
- Update to ndb__datadict to replect additional fields in I_S (already corrected in build tree)
of statement breaks binlog.
There were two problems discovered by this bug:
1. Default (current) database is not fixed at the creation time.
That leads to wrong output of DATABASE() function.
2. Database attributes (@@collation_database) are not fixed at
the creation time. That leads to wrong resultset.
Binlog breakage and Query Cache wrong output happened because of
the first problem.
The fix is to remember the current database at the PREPARE-time and
set it each time at EXECUTE.
Bug#21422 GRANT/REVOKE possible inside stored function, probably in a trigger
Bug#17244 GRANT gives strange error message when used in a stored function
GRANT/REVOKE statements are non-transactional (no explicit transaction
boundaries) in nature and hence are forbidden inside stored functions and
triggers, but they weren't being effectively forbidden. Furthermore, the
absence of implict commits makes changes made by GRANT/REVOKE statements to
not be rolled back.
The implemented fix is to issue a implicit commit with every GRANT/REVOKE
statement, effectively prohibiting these statements in stored functions
and triggers. The implicit commit also fixes the replication bug, and looks
like being in concert with the behavior of DDL and administrative statements.
Since this is a incompatible change, the following sentence should be
added to the Manual in the very end of the 3rd paragraph, subclause
13.4.3 "Statements That Cause an Implicit Commit": "Beginning with
MySQL 5.0.??, the GRANT and REVOKE statements cause an implicit commit."
Patch contributed by Vladimir Shebordaev
ChangeSet@1.2509, 2007-08-28
http://lists.mysql.com/commits/33239
Fixes for the funcs_1 datadict test bugs
#30418 "datadict" tests (all engines) fail:
Dependency on the host name for ordering
#30420 "datadict" tests (all engines) fail:
Release build has help tables loaded
#30438 "{memory,myisam,ndb}__datadict" tests fail:
Use "InnoDB" without checking
#30440 "datadict" tests (all engines) fail:
Character sets depend on
configuration
The functions ROW_COUNT/FOUND_ROWS are indeed not safe to be used in
statement based replication.
Added code to declare them as such and switch the statement they're in
to row based logging for mixed mode.
ChangeSet@1.2509, 2007-08-28
http://lists.mysql.com/commits/33239
Fixes for the funcs_1 datadict test bugs
#30418 "datadict" tests (all engines) fail:
Dependency on the host name for ordering
#30420 "datadict" tests (all engines) fail:
Release build has help tables loaded
#30438 "{memory,myisam,ndb}__datadict" tests fail:
Use "InnoDB" without checking
#30440 "datadict" tests (all engines) fail:
Character sets depend on
configuration
There are more post merge fixes needed.
Bug#30418 "datadict" tests (all engines) fail: Dependency on the host name
for ordering
Bug#30420 "datadict" tests (all engines) fail: Release build has help tables loaded
Bug#30438 "{memory,myisam,ndb}__datadict" tests fail: Use "InnoDB" without checking
Bug#30440 "datadict" tests (all engines) fail: Character sets depend on configuration
Attention: Only the build team can check if Bug#30440 is really fixed.
Bug #30316: Some "parts" tests fail because the server uses "--secure-file-priv"
Bug #30341: Test suite "parts" needs to be adapted to the new rules disallowing many functio
Bug #30408: Suite "parts" needs bug numbers updated
Bug #30411: Suite "parts" needs bug numbers updated: ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
Bug #30576: part_supported_sql_func_innodb.test tries to LOAD DATA outside of var dir
Bug #30581: partition_value tests use disallowed CAST() function
Included are some general fixes to allow the "parts" test suite to be run
successfully. This includes disabling a few tests or parts of tests,
cleaning up the test cases and their results, etc. Basically, these tests
have not been run for some time, and had suffered some bit rot.
The bugs were fixed as a single changeset, because in some ways they depend
on each other. I couldn't be sure I'd updated all the error codes (for
bugs 30408 and 30411) without also adapting to the new allowed functions
rules (bug 30341), and vice versa.