- 26 Jul, 2006 5 commits
-
-
Changes in SQL parser: * Change default mode of SELECT from "lock in share mode" to "consistent read". * Remove support from SELECT for specifying "consistent read". * Add support in SELECT for specifying "lock in share mode". * Change all uses of SQL parser to specify "lock in share mode". * Modify syntax so that the only valid top-level statement is a procedure definition, since it's the only one that actually works. * Add support for lock waits.
-
aivanov@mysqld.localdomain authored
into mysql.com:/home/alexi/innodb/mysql-5.1-work Null merge.
-
aivanov@mysql.com authored
-
aivanov@mysql.com authored
into mysql.com:/home/alexi/innodb/mysql-5.0-work Null merge.
-
aivanov@mysql.com authored
-
- 12 Jul, 2006 3 commits
-
-
mkindahl@dl145k.mysql.com authored
into dl145k.mysql.com:/data0/mkindahl/bk/mysql-5.1-new-rpl
-
mkindahl@dl145k.mysql.com authored
into dl145k.mysql.com:/data0/mkindahl/bk/mysql-5.1-new-rpl
-
mkindahl@dl145k.mysql.com authored
-
- 11 Jul, 2006 5 commits
-
-
joerg@trift2. authored
into trift2.:/M51/merge-5.1
-
joerg@trift2. authored
into trift2.:/M51/merge-5.1
-
mkindahl@dl145k.mysql.com authored
into dl145k.mysql.com:/data0/mkindahl/bk/MERGE/mysql-5.1-merge
-
ingo/mydev@chilla.local authored
into chilla.local:/home/mydev/mysql-5.1-amerge
-
mkindahl@dl145k.mysql.com authored
into dl145k.mysql.com:/data0/mkindahl/bk/MERGE/mysql-5.0-merge
-
- 10 Jul, 2006 16 commits
-
-
cmiller@zippy.(none) authored
into zippy.(none):/home/cmiller/work/mysql/merge/mysql-5.1
-
patg@govinda.patg.net authored
-
aelkin/elkin@andrepl.(none) authored
into andrepl.(none):/home/elkin/MySQL/TEAM/FIXES/5.1/20919_temp_nlog
-
guilhem@gbichot3.local authored
We now reset the THD members related to auto_increment+binlog in MYSQL_LOG::write(). This is better than in THD::cleanup_after_query(), which was not able to distinguish between SELECT myfunc1(),myfunc2() and INSERT INTO t SELECT myfunc1(),myfunc2() from a binlogging point of view. Rows_log_event::exec_event() now calls lex_start() instead of mysql_init_query() because the latter now does too much (it resets the binlog format).
-
aelkin/elkin@andrepl.(none) authored
into andrepl.(none):/home/elkin/MySQL/TEAM/FIXES/5.1/20919_temp_nlog
-
guilhem@gbichot3.local authored
into gbichot3.local:/home/mysql_src/mysql-5.0
-
pekka@orca.ndb.mysql.com authored
-
pekka@orca.ndb.mysql.com authored
into orca.ndb.mysql.com:/space_old/pekka/ndb/version/my51-bug18781
-
pekka@orca.ndb.mysql.com authored
-
pekka@orca.ndb.mysql.com authored
into orca.ndb.mysql.com:/space_old/pekka/ndb/version/my51-bug18781
-
pekka@orca.ndb.mysql.com authored
-
guilhem@gbichot3.local authored
into gbichot3.local:/home/mysql_src/mysql-5.1
-
mats@romeo.(none) authored
into romeo.(none):/home/bk/b20821-mysql-5.1-new-rpl
-
ingo/mydev@chilla.local authored
into chilla.local:/home/mydev/mysql-5.1-aid
-
into dsl-hkigw8-feb1fb00-100.dhcp.inet.fi:/usr_rh9/home/elkin.rh9/MySQL/TEAM/FIXES/5.0/20919_temp_nlog
-
mats@romeo.(none) authored
set properly.
-
- 09 Jul, 2006 11 commits
-
-
closing temp tables through end_thread had a flaw in binlog-off branch of close_temporary_tables where next table to close was reset via table->next for (table= thd->temporary_tables; table; table= table->next) which was wrong since the current table instance got destoyed at close_temporary(table, 1); The fix adapts binlog-on branch method to engage the loop's internal 'next' variable which holds table->next prior table's destoying.
-
guilhem@gbichot3.local authored
into gbichot3.local:/home/mysql_src/mysql-5.1
-
guilhem@gbichot3.local authored
-
guilhem@gbichot3.local authored
into gbichot3.local:/home/mysql_src/mysql-5.1
-
guilhem@gbichot3.local authored
-
guilhem@gbichot3.local authored
-
guilhem@gbichot3.local authored
into gbichot3.local:/home/mysql_src/mysql-5.1
-
guilhem@gbichot3.local authored
were copied/split between 5.0 and 5.1).
-
guilhem@gbichot3.local authored
into gbichot3.local:/home/mysql_src/mysql-5.1
-
guilhem@gbichot3.local authored
this is a cleanup patch for our current auto_increment handling: new names for auto_increment variables in THD, new methods to manipulate them (see sql_class.h), some move into handler::, causing less backup/restore work when executing substatements. This makes the logic hopefully clearer, less work is is needed in mysql_insert(). By cleaning up, using different variables for different purposes (instead of one for 3 things...), we fix those bugs, which someone may want to fix in 5.0 too: BUG#20339 "stored procedure using LAST_INSERT_ID() does not replicate statement-based" BUG#20341 "stored function inserting into one auto_increment puts bad data in slave" BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY UPDATE" (now if a row is updated, LAST_INSERT_ID() will return its id) and re-fixes: BUG#6880 "LAST_INSERT_ID() value changes during multi-row INSERT" (already fixed differently by Ramil in 4.1) Test of documented behaviour of mysql_insert_id() (there was no test). The behaviour changes introduced are: - LAST_INSERT_ID() now returns "the first autogenerated auto_increment value successfully inserted", instead of "the first autogenerated auto_increment value if any row was successfully inserted", see auto_increment.test. Same for mysql_insert_id(), see mysql_client_test.c. - LAST_INSERT_ID() returns the id of the updated row if ON DUPLICATE KEY UPDATE, see auto_increment.test. Same for mysql_insert_id(), see mysql_client_test.c. - LAST_INSERT_ID() does not change if no autogenerated value was successfully inserted (it used to then be 0), see auto_increment.test. - if in INSERT SELECT no autogenerated value was successfully inserted, mysql_insert_id() now returns the id of the last inserted row (it already did this for INSERT VALUES), see mysql_client_test.c. - if INSERT SELECT uses LAST_INSERT_ID(X), mysql_insert_id() now returns X (it already did this for INSERT VALUES), see mysql_client_test.c. - NDB now behaves like other engines wrt SET INSERT_ID: with INSERT IGNORE, the id passed in SET INSERT_ID is re-used until a row succeeds; SET INSERT_ID influences not only the first row now. Additionally, when unlocking a table we check that the thread is not keeping a next_insert_id (as the table is unlocked that id is potentially out-of-date); forgetting about this next_insert_id is done in a new handler::ha_release_auto_increment(). Finally we prepare for engines capable of reserving finite-length intervals of auto_increment values: we store such intervals in THD. The next step (to be done by the replication team in 5.1) is to read those intervals from THD and actually store them in the statement-based binary log. NDB will be a good engine to test that.
-
guilhem@gbichot3.local authored
1) Fix for BUG#19630 "stored function inserting into two auto_increment breaks statement-based binlog": a stored function inserting into two such tables may fail to replicate (inserting wrong data in the slave's copy of the second table) if the slave's second table had an internal auto_increment counter different from master's. Because the auto_increment value autogenerated by master for the 2nd table does not go into binlog, only the first does, so the slave lacks information. To fix this, if running in mixed binlogging mode, if the stored function or trigger plans to update two different tables both having auto_increment columns, we switch to row-based for the whole function. We don't have a simple solution for statement-based binlogging mode, there the bug remains and will be documented as a known problem. Re-enabling rpl_switch_stm_row_mixed. 2) Fix for BUG#20630 "Mixed binlogging mode does not work with stored functions, triggers, views", which was a documented limitation (in mixed mode, we didn't detect that a stored function's execution needed row-based binlogging (due to some UUID() call for example); same for triggers, same for views (a view created from a SELECT UUID(), and doing INSERT INTO sometable SELECT theview; would not replicate row-based). This is implemented by, after parsing a routine's body, remembering in sp_head that this routine needs row-based binlogging. Then when this routine is used, the caller is marked to require row-based binlogging too. Same for views: when we parse a view and detect that its SELECT needs row-based binary logging, we mark the calling LEX as such. 3) Fix for BUG#20499 "mixed mode with temporary table breaks binlog": a temporary table containing e.g. UUID has its changes not binlogged, so any query updating a permanent table with data from the temporary table will run wrongly on slave. Solution: in mixed mode we don't switch back from row-based to statement-based when there exists temporary tables. 4) Attempt to test mysqlbinlog on a binlog generated by mysqlbinlog; impossible due to BUG#11312 and BUG#20329, but test is in place for when they are fixed.
-