------------------------------------------------------------
revno: 5085 committer: Tor Didriksen <tor.didriksen@oracle.com> branch nick: 5.6.12-release timestamp: Tue 2013-05-21 17:07:01 +0200 message: Backport of fix for: Bug#69119 Bug#16760474 Wrong FOUND_ROWS() on MySQL 5.6.11 ------------------------------------------------------------ revno: 5084 committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> branch nick: mysql-5.6.12-release timestamp: Mon 2013-05-13 10:19:07 +0200 message: Updated copyright year information ------------------------------------------------------------ revno: 5083 committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> branch nick: mysql-5.6.12-release timestamp: Mon 2013-05-13 09:50:34 +0200 message: Adding fix for Bug#16798868 ------------------------------------------------------------ revno: 5082 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6.12-release timestamp: Thu 2013-05-09 07:31:00 +0300 message: Push to 5.6.12 release clone: ------------------------------------------------------------ revno: 5097 revision-id: marko.makela@oracle.com-20130508201655-4uefvpqc1vytohpp parent: marko.makela@oracle.com-20130508201601-e9furpa8h3z9eeyl committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Wed 2013-05-08 23:16:55 +0300 message: Bug#16774118 RACE CONDITION IN BLOB ACCESS DURING ONLINE ALTER TABLE This is a race condition in BLOB access during online ALTER TABLE, when applying the table modification log for other than the very last log block. row_log_table_apply_convert_mrec(): Acquire the index B-tree lock to protect the access to log->blobs and the BLOB page itself. rb#2401 approved by Kevin Lewis ------------------------------------------------------------ revno: 5081 committer: Annamalai Gurusami <annamalai.gurusami@oracle.com> branch nick: mysql-5.6.12-release timestamp: Mon 2013-05-06 20:28:02 +0530 message: Bug #16722314 FOREIGN KEY ID MODIFIED DURING EXPORT Bug #16754901 PARS_INFO_FREE NOT CALLED IN DICT_CREATE_ADD_FOREIGN_TO_DICTIONARY Merging the fix from mysql-5.6 to mysql-5.6.12-release. ------------------------------------------------------------ revno: 5080 committer: Jon Olav Hauglid <jon.hauglid@oracle.com> branch nick: mysql-5.6.12-release timestamp: Mon 2013-05-06 16:04:21 +0200 message: Bug#16757869: INNODB: POSSIBLE REGRESSION IN 5.5.31, BUG#16004999 The problem was that if UPDATE with subselect caused a deadlock inside InnoDB, this deadlock was not properly handled by the SQL layer. This meant that the SQL layer would try to unlock the row after InnoDB had rolled back the transaction. This caused an assertion inside InnoDB. This patch fixes the problem by checking for errors reported by SQL_SELECT::skip_record() and not calling unlock_row() if any errors have been reported. This bug is similar to Bug#13586591, but for UPDATE rather than DELETE. Similar issues in filesort/opt_range/ sql_select will be investigated and handled in the scope of Bug#16767929 ------------------------------------------------------------ revno: 5079 committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> branch nick: mysql-5.6.12-release timestamp: Mon 2013-05-06 15:45:13 +0200 message: Updated spec file for Bug16488773 ------------------------------------------------------------ revno: 5078 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6.12-release timestamp: Mon 2013-05-06 14:50:12 +0300 message: Cherry-pick from mysql-5.6 into mysql-5.6.12-release: revno: 5079 revision-id: marko.makela@oracle.com-20130506113412-2b24o44ojkp6mo4a parent: mysql-build@oss.oracle.com-20130506103306-y5nnl41oy5e2pe54 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-05-06 14:34:12 +0300 message: Bug#16765255 Bug#16735660 ASSERT TABLE2 == NULL NOT FIXED COMPLETELY Fix a regression introduced by Bug#16593427 ROLLBACK OF RECOVERED TRANSACTION CORRUPTS CREATE INDEX The fix in Bug#16735660 was incomplete. Approved on IM by Jimmy Yang. ------------------------------------------------------------ revno: 5077 [merge] tags: clone-5.6.12-build committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-05-06 11:02:01 +0200 message: Empty version change upmerge ------------------------------------------------------------ revno: 2875.437.86 [merge] committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com> branch nick: mysql-5.5 timestamp: Mon 2013-05-06 10:56:48 +0200 message: Empty version change upmerge ------------------------------------------------------------ revno: 2661.876.27 author: murthy.narkedimilli@oracle.com committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com> branch nick: mysql-5.1 timestamp: Mon 2013-05-06 10:25:03 +0200 message: Raise version number after cloning 5.1.70 ------------------------------------------------------------ revno: 5076 [merge] committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-05-06 10:22:08 +0200 message: Empty version change upmerge ------------------------------------------------------------ revno: 2875.437.85 author: balasubramanian.kandasamy@oracle.com committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> branch nick: mysql-5.5 timestamp: Mon 2013-05-06 09:51:25 +0200 message: Raise version number after cloning 5.5.32 ------------------------------------------------------------ revno: 5075 [merge] committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Fri 2013-05-03 16:56:38 +0300 message: Merge mysql-5.5 to mysql-5.6. ------------------------------------------------------------ revno: 2875.437.84 tags: clone-5.5.32-build committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.5 timestamp: Fri 2013-05-03 16:39:17 +0300 message: Attempt to fix a test failure on Windows by not accessing a file while the server is running. ------------------------------------------------------------ revno: 5074 committer: Nuno Carvalho <nuno.carvalho@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-05-02 21:52:14 +0100 message: BUG#16715809: REPLICATION WAS BROKEN WHILE EXECUTING FLUSH TABLES Fix for BUG 16062608, which disallowed commands that were not flagged as write commands but implicit commit when GTID_NEXT type is different of AUTOMATIC, introduced some regressions, more precisely made some commands to break replication. In order to fix this incorrect behaviour, that fix was reverted. ------------------------------------------------------------ revno: 5073 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-05-02 22:02:59 +0300 message: Bug#16754776 MEMORY LEAK IN TRX_ROLLBACK_OR_CLEAN_RECOVERED() trx_rollback_resurrected(): Free the trx object after calling trx_cleanup_at_db_startup() or trx_rollback_active(). rb#2366 approved by Kevin Lewis ------------------------------------------------------------ revno: 5072 committer: Jorgen Loland <jorgen.loland@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-05-02 13:53:53 +0200 message: Bug#16437940: BAD CHANGE FROM REF TO RANGE DUE TO HEURISTICS The MySQL optimizer has the following heuristic: "if decision is to use ref access on index 'i', and it is possible to use range access utilizing more keyparts than ref on the same index 'i' => switch to range access". This heuristic makes sense when ref access refers to a constant, but is not so good when it refers to a column of a table earlier in the join sequence. In this case the range access method will not utilize the join condition. Fix: don't apply the heuristic if 'ref' access refers to a column of another table. ------------------------------------------------------------ revno: 5071 committer: Anil Toshniwal <anil.toshniwal@oracle.com> branch nick: mysql-5.6.11 timestamp: Thu 2013-05-02 16:50:08 +0530 message: Bug#16737332 MEMORY LEAK IN DICT_CHECK_TABLESPACES_AND_STORE_MAX_ID() Problem: Memory leak in dict_check_tablespaces_and_store_max_id() when space_id is zero. Approved by Marko. rb#2360 ------------------------------------------------------------ revno: 5070 committer: Thayumanavar <thayumanavar.x.sachithanantha@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-05-02 16:22:57 +0530 message: BUG#11765644: DEBUG 'D' LIST SHOULD STAY EMPTY AFTER SET DEBUG="+D,<SYMBOL>" PROBLEM AND FIX: When the debug 'd' flag has been set to empty, then all DBUG_ macros are enabled. But if one then sets debug=" +d,foo" then only foo, all others are turned off. The expected/intended behaviour should be to add debug for 'symbol' in addition to whatever was enabled before. The fix adds keyword to the stack of active keyword list if debug was not enabled for all symbols. Also turn debug off if the last keyword is removed from the stack of keywords. NOTE: This shall require a change in the docs to reflect the changed behaviour in this bug ------------------------------------------------------------ revno: 5069 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-05-02 13:02:45 +0300 message: Fix a race condition in the test. ------------------------------------------------------------ revno: 5068 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-05-02 13:02:06 +0300 message: Make the test work with different page sizes. ------------------------------------------------------------ revno: 5067 committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.6 timestamp: Thu 2013-05-02 13:57:09 +0530 message: Bug#16346367 : QUERY PROC RE-EXECUTE OF STORED ROUTINE, INEFFICIENT QUERY PLAN --patch for the test case failure in DAILY-TRUNK with "--mysqld=--query_cache_type=1 --mysqld=--query_cache_size=1M" ------------------------------------------------------------ revno: 5066 committer: Jorgen Loland <jorgen.loland@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-05-02 09:36:04 +0200 message: Bug#16697792: POOR EXECUTION PLAN WHEN ORDER BY WITH LIMIT X When we have a LIMIT that is lower than the row estimate on the first table, the optimizer checks whether or not it's possible to switch to an index that provides correct ordering. If there is, execution can be short-cut'ed immediately after finding 'limit' number of records. The optimizer (in make_join_select()) will in such cases go through all ORDER BY items and make note of all indexes that can be used to provide ordering for that item and then run the range optimizer to see if changing index makes sense. That happens for this bug too. make_join_select() looks at the ORDER BY clause and finds indexes that cover the fields. The range optimizer is then run to see if those indexes are useful. In the bug, the indexes with that index number may not be used, so range access is discarded. The problem is that the first table - the one we run range optimizer for - is not the same table referred to in the ORDER BY clause. Thus, the range optimizer will check if an index in a different table is useful. The fix is to check if the fields in the ORDER BY clause are from the table being analyzed, and leave the query plan as earlier computed if any of them belong to a different table. ------------------------------------------------------------ revno: 5065 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-05-02 10:23:54 +0300 message: Remove a race condition and unnecessary filtering from a test case. ------------------------------------------------------------ revno: 5064 committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.6 timestamp: Wed 2013-05-01 12:43:04 +0530 message: Bug#16296268 : UNEXCEPTED "USING WHERE" IN "EXPLAIN UPDATE/DELETE" Problem:- In a single-table update, when there is a constant equality predicate on a key.The bug reporter is expecting explain output type as const. Analysis:- In query like create table tb(id int primary key , c int); mysql> explain update tb set c=2 where id=1\G id 1 select_type SIMPLE table tb type range possible_keys PRIMARY key PRIMARY key_len 4 ref NULL rows 1 Extra Using where EXPLAIN does not print type: eq_ref/const even though we have an equality predicate on a Unique key field. However, we can't show const/eq_ref as range access is used, and single-table UPDATE/DELETE "optimizer" does not even consider index lookups. The proper fix for this bug would be to make single-table U/D go through the normal query optimizer, but that's a complex task(for which WL#6367 Single code path for multi-table and single-table UPDATE(DELETE) is created). But to improve readability, we are changing value of the ref column to ref:const. ------------------------------------------------------------ revno: 5063 [merge] committer: Luis Soares <luis.soares@oracle.com> branch nick: mysql-5.6-push timestamp: Tue 2013-04-30 22:09:49 +0100 message: BUG#16532543 Automerged bzr bundle into latest mysql-5.6. ------------------------------------------------------------ revno: 5055.2.1 committer: Luis Soares <luis.soares@oracle.com> branch nick: mysql-5.6 timestamp: Tue 2013-04-30 01:18:43 +0100 message: BUG#16532543: MYSQLBINLOG + MULTIPLE GTID BINLOGS + MYSQL => UNABLE TO APPLY LOGS: ERROR 1837 When using mysqlbinlog and mysql client to roll forward two (or more) binary logs with GTIDs enabled, the server will report an error when switching from the first to the second binary log. This happens because the variable GTID_NEXT is not properly reset when the first log file ends. Therefore, when executing the format description event of the second log file, GTID_NEXT will still be set to the last transaction identifier from the first log. Ultimately, this results in the following error: 1837. The fix is to make mysqlbinlog to output SET @@SESSION.GTID_NEXT=AUTOMATIC when processing a non-fake rotate event. Furthermore, even though transactions do not span multiple binary log files, they can span multiple relay-log files. Therefore, the resetting of GTID_NEXT should only occur if mysqlbinlog is not handling a rotate event in the middle of a transaction (as it may be the case when parsing relay-logs). In this patch, I also fixed: 1. a few replace_regex in some .inc files 2. some result files that had strange results after the defective regex kicked in ------------------------------------------------------------ revno: 5062 [merge] committer: michael.izioumtchenko@oracle.com branch nick: mysql_src_c563 timestamp: Tue 2013-04-30 20:42:01 +0200 message: merge from mysql-5.5 ------------------------------------------------------------ revno: 2875.437.83 [merge] committer: michael.izioumtchenko@oracle.com branch nick: mysql_src_c553 timestamp: Tue 2013-04-30 20:40:38 +0200 message: merge from mysql-5.1 ------------------------------------------------------------ revno: 2661.876.26 tags: clone-5.1.70-build committer: michael.izioumtchenko@oracle.com branch nick: mysql_src_c2s3 timestamp: Tue 2013-04-30 20:39:12 +0200 message: Bug#16405422 - RECOVERY FAILURE, ASSERT !RECV_NO_LOG_WRITE eliminate a race condition over recv_sys->n_addrs which might result in a database corruption in recovery, without reporting a recovery error. recv_recover_page_func(): move the code segment that decrements recv_sys->n_addrs to the end of the function, after the call to mtr_commit() rb://2282 approved by Inaam ------------------------------------------------------------ revno: 5061 [merge] committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.6 timestamp: Tue 2013-04-30 22:48:21 +0530 message: BUG#16222245 - CRASH WITH EXPLAIN FOR A QUERY WITH LOOSE SCAN FOR GROUP BY, MYISAM Merge fix for Bug#16222245 from mysql-5.5 to mysql-5.6 ------------------------------------------------------------ revno: 2875.437.82 [merge] committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.5 timestamp: Tue 2013-04-30 22:46:37 +0530 message: BUG#16222245 - CRASH WITH EXPLAIN FOR A QUERY WITH LOOSE SCAN FOR GROUP BY, MYISAM Merge fix for Bug#16222245 from mysql-5.1 to mysql-5.5 ------------------------------------------------------------ revno: 2661.876.25 committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.1 timestamp: Tue 2013-04-30 22:38:34 +0530 message: BUG#16222245 - CRASH WITH EXPLAIN FOR A QUERY WITH LOOSE SCAN FOR GROUP BY, MYISAM Problem:- In a query, where we are using loose index scan optimization and we have MIN() causes segmentation fault(where table row length is less then key_length). Analysis: While using loose index scan for MIN(), we call key_copy(), to copy the key data from record. This function is using temporary record buffer to store key data from the record buffer.But in case where the key length is greater then the buffer length, this will cause a segmentation fault. Solution: Give a proper buffer to store a key record. ------------------------------------------------------------ revno: 5060 committer: Dmitry Shulga <Dmitry.Shulga@oracle.com> branch nick: mysql-5.6-bug16388996 timestamp: Tue 2013-04-30 20:51:41 +0700 message: This is a patch for bug#16388996 - ASSERTION IN TRX_START_IF_NOT_STARTED_LOW WITH QUERY CACHE ENABLED. This bug relates to working with XA-transaction when query cache is enabled. In some cases when XA-transaction is in a state either IDLE or PREPARED the execution of QUERY with query_cache enable could led to a crash for the server built in debug mode. To fix this bug we added checking for a state of XA-transaction before looking for the query in the cache. If a state of XA-transaction is an IDLE or PREPARED the query cache isn't called to look for the result of query execution. ------------------------------------------------------------ revno: 5059 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Tue 2013-04-30 14:57:39 +0300 message: Bug#16735660 ASSERT TABLE2 == NULL, ROLLBACK OF RESURRECTED TXNS, DICT_TABLE_ADD_TO_CACHE trx_resurrect_table_locks(): Do not resurrect locks for tables whose tablespace file is missing. rb#2357 approved by Jimmy Yang ------------------------------------------------------------ revno: 5058 [merge] committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Tue 2013-04-30 14:45:16 +0300 message: Merge mysql-5.5 to mysql-5.6. ------------------------------------------------------------ revno: 2875.437.81 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.5 timestamp: Tue 2013-04-30 13:39:50 +0300 message: Bug#16720368 INNODB IGNORES *.IBD FILE BREAKAGE AT STARTUP After a clean shutdown, InnoDB will not check the *.ibd file headers, for maximum performance. This is unchanged before and after this patch. What this fix addresses is the case when crash recovery is needed. Previously, InnoDB could load a corrupted tablespace file. buf_page_is_corrupted(): Add the parameter check_lsn. fil_check_first_page(): New function, to perform a consistency check on the first page of a file. This can be overridden by setting innodb_force_recovery. fil_read_first_page(), fil_open_single_table_tablespace(), fil_load_single_table_tablespace(): Invoke fil_check_first_page(). open_or_create_data_files(): Check the status of fil_open_single_table_tablespace(). rb#2352 approved by Jimmy Yang ------------------------------------------------------------ revno: 5057 committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.6 timestamp: Tue 2013-04-30 14:54:09 +0530 message: Bug#16346367 : QUERY PROC RE-EXECUTE OF STORED ROUTINE, INEFFICIENT QUERY PLAN Problem:- In derived tables implementation, We only get to use indexes on derived tables on the first execution of a procedure and in later execution we are not able to use indexes. Analysis:- In case of derived tables, we call add_key_field() to add new fake keys for range optimizer. To choose the best key to read data. After creating the actual keys from this fake keys. We set the variable in TABLE_LIST::derived_keys_ready, to show that actual keys are created. This table_list is maintained in the memory after our exection is completed. So when we call our procedure second time, this TABLE_LIST::derived_keys_ready is already set and we assume that actual keys are already being created, but we will not find any key, which cause change in query execution plan. Solution:- Reset the TABLE_LIST::derived_keys_ready at the time JOIN_TAB::cleanup. ------------------------------------------------------------ revno: 5056 [merge] committer: Luis Soares <luis.soares@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-04-29 22:55:26 +0100 message: BUG#16621923 Automerge into latest mysql-5.6. ------------------------------------------------------------ revno: 5055.1.1 committer: Luis Soares <luis.soares@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-04-29 22:51:54 +0100 message: BUG#16621923: RBR: HASH_SCAN LOOKUP MAY FAIL WHEN NULL FIELDS ARE INVOLVED The HASH_SCAN lookup mechanism was not working properly. This mechanism works as follow: (i) For each before image in an Update_rows_log_event or Delete_rows_log_event, it hashes this image and saves its coordinates on an hash table. If it is an Update_rows_log_event, it also saves the coordinates of the after image. (ii) Then the table is scanned once, and each record fetched from the physical table is hashed and looked up on the hash table. If the lookup succeeds, then the changes are applied. And this is fine. Unfortunately, when a field contains a NULL value, the engine may return garbage as the field content. Then the hash of the physical record will not match the hash calculated from the (Delete_|Update_)rows_log_event. This makes the applier assume that it cannot find the record to apply and stop. This patch fixes this, by discarding from the hash calculation those fields that are marked as NULL. This is the bulk of the fix. Additionally, this patch also: (i) fixes the limitation of not considering BLOBs and BIT fields as part of the hash calculation. They had not been considered since their data may not be stored inside the record itself, but on a different memory area. We circumvent this by getting the value explicitly through the member function: val_str. Similar pattern may be found in the function: mysql_checksum_table. (ii) Fixes some comments and indentation. (iii) Refactors a few parts in do_hash_scan_and_update_record (splits it into two simpler member functions). (iv) Fixes a potential issue with the fact that we unpack the before image on top of previous unpacked data, thus might have implications with partial rows. We call prepare_record before we unpack now. (v) Removes unnecessary memory structures for after image positions that are not used. ------------------------------------------------------------ revno: 5055 committer: Tor Didriksen <tor.didriksen@oracle.com> branch nick: 5.6 timestamp: Mon 2013-04-29 15:07:37 +0200 message: BUG#16556597: DBUG_PRINT EXPRESSION IS EVALUATED EVEN WHEN Postpush fix for: : error LNK2001: unresolved external symbol _dbug_on_ ------------------------------------------------------------ revno: 5054 committer: Igor Solodovnikov <igor.solodovnikov@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-04-29 13:43:32 +0300 message: Bug #16591288 WINAUTH PLUGIN LEAKS MEMORY AFTER EACH CONNECTION Memory leak was caused by Security_buffer helper class. Its free() method was implemented to set m_allocated=false after freeing context buffer. Since Security_buffer has no means to set m_allocated back to true this leads to not freeing all subsequent context buffers. Fixed by: - making Security_buffer::m_allocated const object (so it can be assigned by constructor only) - rewriting Security_buffer::free() to not alter value of Security_buffer::m_allocated - Disallow copying/assignment of Security_buffer class instances to prevent new memory leaks in the future This patch also fixes minor bugs in Map_cache class. ------------------------------------------------------------ revno: 5053 committer: Thayumanavar <thayumanavar.x.sachithanantha@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-04-29 13:52:46 +0530 message: BUG#16556597: DBUG_PRINT EXPRESSION IS EVALUATED EVEN WHEN THE CONDITION DOES NOT HOLD. PROBLEM AND FIX: DBUG_PRINT("label",("printf-style format",...)) is a macro that should evaluate the printf style part when DEBUG is enabled and the label keyword is active. However in the current code, the printf-style part gets evaluated and the condition evaluation for checking whether DEBUG and label keyword is active is being done in the function _db_doprnt_ .This result in CPU cycles being consumed even when no --debug option or SET DEBUG is being used. The fix redefines the macro DBUG_PRINT so that _db_prnt_ is being called only when DEBUG and the label keyword is active. ------------------------------------------------------------ revno: 5052 committer: Ramil Kalimullin <ramil.kalimullin@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-04-29 11:28:02 +0400 message: Bug#12772601 CENTROID FUNCTION ASSERTS: ASSERTION FAILED: N_LINEAR_RINGS > 0 Bug#16510712 SERVER CRASHES IN GET_POINT ON A GEOMETRY QUERY Addendum: variable initialization added to keep compiler happy. ------------------------------------------------------------ revno: 5051 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-04-29 09:48:05 +0300 message: Fix regression from Bug#16593427 fix. fil_space_create(): Use "%lu" instead of IB_ID_FMT for printing out tablespace id, which is 32-bit, not 64-bit in the data files. ------------------------------------------------------------ revno: 5050 committer: Manish Kumar<manish.4.kumar@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-04-29 11:00:16 +0530 message: Bug#16475866 - START SLAVE AFTER IMPORT OF TABLE-BASED REPOSITORIES GIVES EMPTY ERROR MESSAGE Problem - Trying to START SLAVE after loading slave_master_info and slave_relay_log_info into a clean MySQL instance results in an empty error message: mysql 5.6.10-log (root) [test]> start slave; ERROR 1593 (HY000): Fatal error: %s Analysis - The slave code just prints the ER(slave_errno) in the start_slave function call and since the error is due to non initialization of the master info and relay log info structures, ie. error number 1593, the corresponding error message is printed which is " Fatal error: %s ". Fix - Fixed the problem by introducing a two new error codes for handeling the failure during the initialization of the master info and relay log info structure from the repository. ------------------------------------------------------------ revno: 5049 committer: Bill Qu <bill.qu@Oracle.com> branch nick: mysql-5.6 timestamp: Sun 2013-04-28 09:21:43 +0800 message: Bug #16666456 A REGRESSION IN 5.6 CRASH RECOVERY ATOMICITY A crash commit error causes the last transaction to loss in an InnoDB table after RESET MASTER. The root cause is that the prepare phase causes fsync while the commit phase does not cause fsync inside InnoDB. That means the last transaction is not fsynced inside InnoDB. But RESET MASTER erases binlog events of the last transaction. In the following crash commit error, InnoDB has the last prepared row on recovery and calls server on how to deal with the prepared row and server does not find relevant binlog events from binary log file and rolls it back finally. To fix the problem, RESET MASTER should cause to flush logs for storage engines, so that the last transaction is fsynced inside storage engines. The same solution to internal EXPIRE_LOGS_DAYS. There is not the problem with PURGE BINARY LOGS TO, as the binlog events of last transaction in current binlog file is not purged. ------------------------------------------------------------ revno: 5048 committer: Ramil Kalimullin <ramil.kalimullin@oracle.com> branch nick: b12772601-5.6 timestamp: Sat 2013-04-27 17:23:03 +0400 message: Bug#12772601 CENTROID FUNCTION ASSERTS: ASSERTION FAILED: N_LINEAR_RINGS > 0 Bug#16510712 SERVER CRASHES IN GET_POINT ON A GEOMETRY QUERY Problem: most of the Geometry methods that work with WKB did not properly validate input data, so they could access memory beyond the range of provided data, which led to crashes and/or valgrind errors. Fix: introducing new class wkb_parser with methods that strictly validate the provided WKB data; convenience changes and clean-ups in the related code. ------------------------------------------------------------ revno: 5047 committer: Bill Qu <bill.qu@Oracle.com> branch nick: mysql-5.6 timestamp: Sat 2013-04-27 18:25:29 +0800 message: Bug#16579028 "SEMI-SYNC MASTER WAIT FOR REPLY FAIL TO GET WAIT TIME" HAPPENS OCCASIONALLY The error of 'Semi-sync master wait for reply fail to get wait time' happens if the time taken by dump thread on waiting for binlog reply from slave is less than zero. The precision of OS timer apparently causes this problem. But this problem will not affect any function of the server, so it's not good to print an error into the log file as the error will confuse the user. It's more appropriate to print a note into the log file. ------------------------------------------------------------ revno: 5046 [merge] committer: Bill Qu <bill.qu@Oracle.com> branch nick: mysql-5.6 timestamp: Sat 2013-04-27 16:27:39 +0800 message: Bug #13004581 BLACKHOLE BINARY LOG WITH ROW IGNORES UPDATE AND DELETE STATEMENTS Merge from 5.5. ------------------------------------------------------------ revno: 2875.437.80 committer: Bill Qu <bill.qu@Oracle.com> branch nick: mysql-5.5 timestamp: Sat 2013-04-27 16:04:54 +0800 message: Bug #13004581 BLACKHOLE BINARY LOG WITH ROW IGNORES UPDATE AND DELETE STATEMENTS When logging to the binary log in row, updates and deletes to a BLACKHOLE engine table are skipped. It is impossible to log binary log in row format for updates and deletes to a BLACKHOLE engine table, as no row events can be generated in these cases. After fix, generate a warning for UPDATE/DELETE statements that modify a BLACKHOLE table, as row events are not logged in row format. ------------------------------------------------------------ revno: 5045 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Fri 2013-04-26 12:16:52 +0300 message: Bug#16593427 ROLLBACK OF RECOVERED TRANSACTION CORRUPTS NON-ONLINE ADD INDEX Resurrect table IX locks for recovered transactions. This fixes a race condition between the rollback of a recovered transaction and creating a secondary index in a locked operation. This race condition could corrupt the secondary index that is being created. lock_table_ix_resurrect(), trx_resurrect_table_locks(): New functions. trx_undo_get_prev_rec_from_prev_page(), trx_undo_get_prev_rec(): Add a flag for specifying if the page should be X-latched or S-latched. lock_remove_recovered_trx_record_locks(): Remove also the table lock of a recovered transaction. mtr_memo_release(): Return a Boolean, indicating if the object was removed. dict_table_open_on_id(): Replace the Boolean parameter try_drop with a new enum dict_table_op_t, with a third value DICT_TABLE_OP_LOAD_TABLESPACE to silently load a tablespace when it is missing. This is needed to suppress a warning in trx_resurrect_table_locks() during the innodb.innodb_bug59641 test. dict_err_ignore_t: Add the flag DICT_ERR_IGNORE_LOAD, to silently load the tablespace when it has not been loaded yet, and to skip loading the definitions of incomplete secondary indexes. dict_check_tablespaces_and_store_max_id(): Replace the Boolean parameter in_crash_recovery with a new enum dict_check_t, with a third value DICT_CHECK_SOME_LOADED to silently skip tablespaces that were already loaded by trx_resurrect_table_locks() during crash recovery. This is needed to suppress a warning in trx_resurrect_table_locks() during the innodb.innodb_bug59641 test. rb#2283 approved by Jimmy Yang ------------------------------------------------------------ revno: 5044 committer: Vinay Fisrekar <vinay.fisrekar@oracle.com> branch nick: mysql-5.6 timestamp: Fri 2013-04-26 13:38:27 +0530 message: Adjusting result file for processlist_priv_ps test. ------------------------------------------------------------ revno: 5043 committer: kevin.lewis@oracle.com branch nick: mysql-5.6 timestamp: Thu 2013-04-25 12:16:51 -0600 message: Bug#16338667 - DROP DATABASE FAILS ON EXTERNAL DATA DIRECTORY MySQL cleans up the database directory if there are only files that it recognizes. If there are unknown file types, the DROP DATABASE will fail. We forgot to tell the server in ha_innobase::bas_ext() that one if the possible extentions of InnoDB files is ".isl". Approved by Marco in http://rb.no.oracle.com/rb/r/2337/ ------------------------------------------------------------ revno: 5042 committer: Inaam Rana <inaam.rana@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-04-25 13:26:54 -0400 message: Bug#16723686 MISSING COMMA IN INNODB STATUS BREAKS MEM PARSING ------------------------------------------------------------ revno: 5041 [merge] committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-04-25 12:06:22 +0530 message: BUG#16698172-CANNOT DO POINT-IN-TIME RECOVERY FOR SINGLE DATABASE; MYSQLBINLOG Merge from mysql-5.5 + set the unflushed_events flag to false which is required only for mysql-5.6 ------------------------------------------------------------ revno: 2875.437.79 committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com> branch nick: mysql-5.5 timestamp: Thu 2013-04-25 11:56:26 +0530 message: BUG#16698172-CANNOT DO POINT-IN-TIME RECOVERY FOR SINGLE DATABASE; MYSQLBINLOG Problem: If last subevent inside a RBR event is skipped while replaying a binary log using mysqlbinlog with --database=... option, generated output is missing end marker('/*!*/;) for that RBR event. Thence causing syntax error while replaying the generated output. Fix: Append end marker ('/*!*/;) if the last subevent is getting skipped. Append end marker if the last subevent is getting skipped. ------------------------------------------------------------ revno: 5040 [merge] committer: Georgi Kodinov <georgi.kodinov@oracle.com> branch nick: B16680313-5.6 timestamp: Wed 2013-04-24 17:24:06 +0300 message: merge 5.5->5.6 ------------------------------------------------------------ revno: 2875.437.78 committer: Georgi Kodinov <georgi.kodinov@oracle.com> branch nick: B16680313-5.5 timestamp: Wed 2013-04-24 17:21:42 +0300 message: Bug #16680313: CLIENT DOESN'T READ PLUGIN-DIR FROM MY.CNF SET BY MYSQL_READ_DEFAULT_FILE Parsing of the plugin-dir config file option was not working due to a typo. Fixed the typo. No test case can be added due to lack of support for defaults-exitra-file testing in mysql-test-run.pl. Thanks to Sinisa for contributing the fix. ------------------------------------------------------------ revno: 5039 [merge] committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com> branch nick: Bug14324766_mysql-5.6 timestamp: Wed 2013-04-24 13:38:21 +0530 message: Merge from mysql-5.5 to mysql-5.6 ------------------------------------------------------------ revno: 2875.437.77 [merge] committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com> branch nick: Bug14324766_mysql-5.5 timestamp: Wed 2013-04-24 13:34:11 +0530 message: Merge from mysql-5.1 to mysql-5.5 ------------------------------------------------------------ revno: 2661.876.24 committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com> branch nick: Bug14324766_mysql-5.1 timestamp: Wed 2013-04-24 13:31:10 +0530 message: Bug#14324766:PARTIALLY WRITTEN INSERT STATEMENT IN BINLOG NO ERRORS REPORTED Fixing a post push test script failure. ------------------------------------------------------------ revno: 5038 [merge] committer: Annamalai Gurusami <annamalai.gurusami@oracle.com> branch nick: mysql-5.6 timestamp: Wed 2013-04-24 08:49:27 +0200 message: Null merge from mysql-5.5 to mysql-5.6 ------------------------------------------------------------ revno: 2875.437.76 [merge] committer: Annamalai Gurusami <annamalai.gurusami@oracle.com> branch nick: mysql-5.5 timestamp: Wed 2013-04-24 08:48:34 +0200 message: Null merge from mysql-5.1 to mysql-5.5 ------------------------------------------------------------ revno: 2661.876.23 committer: Annamalai Gurusami <annamalai.gurusami@oracle.com> branch nick: mysql-5.1 timestamp: Wed 2013-04-24 08:47:30 +0200 message: Bug #15973904 INNODB PARTITION CODE HOLDS LOCK_OPEN AND SLEEPS WHILE OPENING MISSING PARTITION In the ha_innobase::open() call, for normal tables, there is no retry logic. But for partitioned tables, there is a retry logic introduced as fix for: http://bugs.mysql.com/bug.php?id=33349 https://support.mysql.com/view.php?id=21080 The Bug#33349, does not provide sufficient information to analyze the original problem. The original problem reported by bug#33349 is also minor (just an annoyance and no loss of functionality). Most importantly, the retry logic has been introduced without any associated test case. So we are removing the retry logic for partitioned tables. When the original problem occurs, a different solution will be explored. ------------------------------------------------------------ revno: 5037 [merge] committer: Annamalai Gurusami <annamalai.gurusami@oracle.com> branch nick: mysql-5.6 timestamp: Wed 2013-04-24 08:43:52 +0200 message: Null merge from mysql-5.5 to mysql-5.6 ------------------------------------------------------------ revno: 2875.437.75 committer: Annamalai Gurusami <annamalai.gurusami@oracle.com> branch nick: mysql-5.5 timestamp: Wed 2013-04-24 08:42:59 +0200 message: Merge from mysql-5.1 to mysql-5.5 ------------------------------------------------------------ revno: 5036 committer: Annamalai Gurusami <annamalai.gurusami@oracle.com> branch nick: mysql-5.6 timestamp: Wed 2013-04-24 08:34:18 +0200 message: Merge from mysql-5.5 to mysql-5.6 ------------------------------------------------------------ revno: 5035 committer: Shivji Kumar Jha <shivji.jha@oracle.com> branch nick: mysql-5.6_b16316123 timestamp: Wed 2013-04-24 11:33:56 +0530 message: BUG#16316123- MYSQLBINLOG DOES NOT RESET THE "AT" BYTE POSITION COUNTER FOR NEW BINLOG FILE Problem: mysqlbinlog exits when the given log file has been processed by it. The "stop-never" option keeps mysqlbinlog connected to the server instead. The "stop-never" option also sets the "to-last-log" option which instructs mysqlbinlog to not stop at the end of the requested binlog from a MySQL server, but rather continue printing until the end of the last binlog. The issue was that mysqlbinlog did not reset the "# at pos" field before printing the events from the next binlog file. Fix: Reset the at position before events from next binlog file are picked by mysqlbinlog --stop-never. In particular, reset the position before printing the fake rotate event. ------------------------------------------------------------ revno: 5034 [merge] committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com> branch nick: mysql-5.6 timestamp: Mon 2013-04-22 14:38:27 +0200 message: Upmerge of the 5.1.69 build ------------------------------------------------------------ revno: 2875.437.74 [merge] committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com> branch nick: mysql-5.5 timestamp: Mon 2013-04-22 14:30:47 +0200 message: Upmerge of the 5.1.69 build ------------------------------------------------------------ revno: 2661.876.22 author: murthy.narkedimilli@oracle.com committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com> branch nick: mysql-5.1 timestamp: Mon 2013-04-22 14:01:07 +0200 message: Merge from mysql-5.1.69-release ------------------------------------------------------------ revno: 5033 [merge] committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.6 timestamp: Sat 2013-04-20 12:58:28 +0530 message: Bug#16073689 : CRASH IN ITEM_FUNC_MATCH::INIT_SEARCH Problem: In query like select 1 from .. order by match .. against ...; causes a debug assert failue. Analysis: In union type query like (select * from order by a) order by b; or (select * from order by a) union (select * from order by b); We skip resolving of order by a for 1st query and order by of a and b in 2nd query. This means that, in case when our order by have Item_func_match class, we skip resolving it. But we maintain a ft_func_list and at the time of optimization, when we Perform FULLTEXT search before all regular searches on the bases of the list we call Item_func_match::init_search() which will cause debug assert as the item is not resolved. Solution: We will skip execution if the item is not fixed and we will not fix index(Item_func_match::fix_index()) for which Item_func_match::fix_field() is not called so that on later changes we can check the dependency on fix field. ------------------------------------------------------------ revno: 2875.437.73 [merge] committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.5 timestamp: Sat 2013-04-20 12:36:11 +0530 message: Bug#16073689 : CRASH IN ITEM_FUNC_MATCH::INIT_SEARCH Problem: In query like select 1 from .. order by match .. against ...; causes a debug assert failue. Analysis: In union type query like (select * from order by a) order by b; or (select * from order by a) union (select * from order by b); We skip resolving of order by a for 1st query and order by of a and b in 2nd query. This means that, in case when our order by have Item_func_match class, we skip resolving it. But we maintain a ft_func_list and at the time of optimization, when we Perform FULLTEXT search before all regular searches on the bases of the list we call Item_func_match::init_search() which will cause debug assert as the item is not resolved. Solution: We will skip execution if the item is not fixed and we will not fix index(Item_func_match::fix_index()) for which Item_func_match::fix_field() is not called so that on later changes we can check the dependency on fix field. bz ------------------------------------------------------------ revno: 2661.876.21 tags: mysql-5.1.69 committer: Neeraj Bisht <neeraj.x.bisht@oracle.com> branch nick: 5.1 timestamp: Sat 2013-04-20 12:28:22 +0530 message: Bug#16073689 : CRASH IN ITEM_FUNC_MATCH::INIT_SEARCH Problem: In query like select 1 from .. order by match .. against ...; causes a debug assert failue. Analysis: In union type query like (select * from order by a) order by b; or (select * from order by a) union (select * from order by b); We skip resolving of order by a for 1st query and order by of a and b in 2nd query. This means that, in case when our order by have Item_func_match class, we skip resolving it. But we maintain a ft_func_list and at the time of optimization, when we Perform FULLTEXT search before all regular searches on the bases of the list we call Item_func_match::init_search() which will cause debug assert as the item is not resolved. Solution: We will skip execution if the item is not fixed and we will not fix index(Item_func_match::fix_index()) for which Item_func_match::fix_field() is not called so that on later changes we can check the dependency on fix field. ------------------------------------------------------------ revno: 5032 committer: Satya Bodapati <satya.bodapati@oracle.com> branch nick: mysql-5.6 timestamp: Fri 2013-04-19 15:56:16 +0530 message: Testfix for Bug#16267120 - PAGE REORGANIZE ASSUMES INNODB_LOG_COMPRESSED_PAGES=OFF Parse only redo records of the tablespace t1 and ignoring the records of system tablespace ------------------------------------------------------------ revno: 5031 committer: Georgi Kodinov <georgi.kodinov@oracle.com> branch nick: mysql-5.6 timestamp: Fri 2013-04-19 11:36:00 +0300 message: Addendum 1 to bug #14799187 : fix naugty test scripts ------------------------------------------------------------ revno: 5030 committer: bin.x.su@oracle.com branch nick: mysql-5.6-bug16208542 timestamp: Fri 2013-04-19 15:13:17 +0800 message: Testcase including restart_mysqld.inc does not work in embedded mode, and it has to include not_embedded.inc too. ------------------------------------------------------------ revno: 5029 [merge] author: akhil.mohan@oracle.com committer: Akhil Mohan <akhil.mohan@oracle.com> branch nick: mysql-5.6 timestamp: Thu 2013-04-18 16:25:27 +0200 message: Merge from mysql-5.6.11-release ------------------------------------------------------------ revno: 4852.1.16 tags: mysql-5.6.11 committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6.11-release timestamp: Fri 2013-04-05 09:04:03 +0300 message: Merge from mysql-5.6 to the 5.6.11 release clone. ------------------------------------------------------------ revno: 5006 revision-id: marko.makela@oracle.com-20130403124730-s8ixii9q152cchtz parent: ritheesh.vedire@oracle.com-20130403104310-53u66hzx3pvb0doa committer: Marko M?kel? <marko.makela@oracle.com> branch nick: mysql-5.6 timestamp: Wed 2013-04-03 15:47:30 +0300 message: Fix regression Bug#16544143 ENABLE PARTIAL ROLLBACK DURING ONLINE ALTER TABLE row_log_allocate(): Initialize the added fields. |