Home | Back
------------------------------------------------------------
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.