An error occurred fetching the project authors.
  1. 15 Mar, 2011 1 commit
    • Marko Mäkelä's avatar
      Bug#11849231 inflateInit() invoked without initializing all memory · 3d124532
      Marko Mäkelä authored
      According to the zlib documentation, next_in and avail_in
      must be initialized before invoking inflateInit or inflateInit2.
      Furthermore, the zalloc function must clear the allocated memory.
      
      btr_copy_zblob_prefix(): Replace the d_stream parameter with buf,len
      and return the copied length.
      
      page_zip_decompress(): Invoke inflateInit2 a little later.
      
      page_zip_zalloc(): Rename from page_zip_alloc().
      Invoke mem_heap_zalloc() instead of mem_heap_alloc().
      
      rb:619 approved by Jimmy Yang
      3d124532
  2. 08 Feb, 2011 1 commit
    • Marko Mäkelä's avatar
      Implement UNIV_BLOB_DEBUG. An early version of this caught Bug #55284. · 154fc1e3
      Marko Mäkelä authored
      This option is known to be broken when tablespaces contain off-page
      columns after crash recovery. It has only been tested when creating
      the data files from the scratch.
      
      btr_blob_dbg_t: A map from page_no:heap_no:field_no to first_blob_page_no.
      This map is instantiated for every clustered index in index->blobs.
      It is protected by index->blobs_mutex.
      
      btr_blob_dbg_msg_issue(): Issue a diagnostic message.
      Invoked when btr_blob_dbg_msg is set.
      
      btr_blob_dbg_rbt_insert(): Insert a btr_blob_dbg_t into index->blobs.
      
      btr_blob_dbg_rbt_delete(): Remove a btr_blob_dbg_t from index->blobs.
      
      btr_blob_dbg_cmp(): Comparator for btr_blob_dbg_t.
      
      btr_blob_dbg_add_blob(): Add a BLOB reference to the map.
      
      btr_blob_dbg_add_rec(): Add all BLOB references from a record to the map.
      
      btr_blob_dbg_print(): Display the map of BLOB references in an index.
      
      btr_blob_dbg_remove_rec(): Remove all BLOB references of a record from
      the map.
      
      btr_blob_dbg_is_empty(): Check that no BLOB references exist to or
      from a page. Disowned references from delete-marked records are
      tolerated.
      
      btr_blob_dbg_op(): Perform an operation on all BLOB references on a
      B-tree page.
      
      btr_blob_dbg_add(): Add all BLOB references from a B-tree page to the
      map.
      
      btr_blob_dbg_remove(): Remove all BLOB references from a B-tree page
      from the map.
      
      btr_blob_dbg_restore(): Restore the BLOB references after a failed
      page reorganize.
      
      btr_blob_dbg_set_deleted_flag(): Modify the 'deleted' flag in the BLOB
      references of a record.
      
      btr_blob_dbg_owner(): Own or disown a BLOB reference.
      
      btr_page_create(), btr_page_free_low(): Assert that no BLOB references exist.
      
      btr_create(): Create index->blobs for clustered indexes.
      
      btr_page_reorganize_low(): Invoke btr_blob_dbg_remove() before copying
      the records. Invoke btr_blob_dbg_restore() if the operation fails.
      
      btr_page_empty(), btr_lift_page_up(), btr_compress(), btr_discard_page():
      Invoke btr_blob_dbg_remove().
      
      btr_cur_del_mark_set_clust_rec(): Invoke btr_blob_dbg_set_deleted_flag().
      
      Other cases of modifying the delete mark are either in the secondary
      index or during crash recovery, which we do not promise to support.
      
      btr_cur_set_ownership_of_extern_field(): Invoke btr_blob_dbg_owner().
      
      btr_store_big_rec_extern_fields(): Invoke btr_blob_dbg_add_blob().
      
      btr_free_externally_stored_field(): Invoke btr_blob_dbg_assert_empty()
      on the first BLOB page.
      
      page_cur_insert_rec_low(), page_cur_insert_rec_zip(),
      page_copy_rec_list_end_to_created_page(): Invoke btr_blob_dbg_add_rec().
      
      page_cur_insert_rec_zip_reorg(), page_copy_rec_list_end(),
      page_copy_rec_list_start(): After failure, invoke
      btr_blob_dbg_remove() and btr_blob_dbg_add().
      
      page_cur_delete_rec(): Invoke btr_blob_dbg_remove_rec().
      
      page_delete_rec_list_end(): Invoke btr_blob_dbg_op(btr_blob_dbg_remove_rec).
      
      page_zip_reorganize(): Invoke btr_blob_dbg_remove() before copying the records.
      
      page_zip_copy_recs(): Invoke btr_blob_dbg_add().
      
      row_upd_rec_in_place(): Invoke btr_blob_dbg_rbt_delete() and
      btr_blob_dbg_rbt_insert().
      
      innobase_start_or_create_for_mysql(): Warn when UNIV_BLOB_DEBUG is enabled.
      
      rb://550 approved by Jimmy Yang
      154fc1e3
  3. 25 Jan, 2011 1 commit
    • Marko Mäkelä's avatar
      Bug#59707 Unused compression-related parameters in buffer pool functions · c6ee5666
      Marko Mäkelä authored
      buf_block_alloc(): ulint zip_size is always 0.
      buf_LRU_get_free_block(): ulint zip_size is always 0.
      buf_LRU_free_block(): ibool* buf_pool_mutex_released is always NULL.
      
      Remove these parameters.
      
      buf_LRU_get_free_block(): Simplify the initialization of block->page.zip
      and release buf_pool_mutex() earlier.
      c6ee5666
  4. 22 Jun, 2010 2 commits
    • MySQL Build Team's avatar
      Backport into build-201006221614-5.1.46sp1 · 5121205d
      MySQL Build Team authored
      > ------------------------------------------------------------
      > revno: 3351.47.1
      > revision-id: marko.makela@oracle.com-20100511104500-c6kzd0bg5s42p8e9
      > parent: vasil.dimov@oracle.com-20100510132852-cz457uqvj8iiy9mm
      > committer: Marko Mäkelä <marko.makela@oracle.com>
      > branch nick: mysql-5.1-innodb2
      > timestamp: Tue 2010-05-11 13:45:00 +0300
      > message:
      >   Remove a stray expression. Spotted by Sunny Bains.
      5121205d
    • Vasil Dimov's avatar
      Fix Bug#47991 InnoDB Dictionary Cache memory usage increases indefinitely · 108ce56e
      Vasil Dimov authored
      when renaming tables
      
      Allocate the table name using ut_malloc() instead of table->heap because
      the latter cannot be freed.
      
      Adjust dict_sys->size calculations all over the code.
      
      Change dict_table_t::name from const char* to char* because we need to
      ut_malloc()/ut_free() it.
      
      Reviewed by:	Inaam, Marko, Heikki (rb://384)
      Approved by:	Heikki (rb://384)
      108ce56e
  5. 19 May, 2010 1 commit
  6. 11 May, 2010 1 commit
  7. 09 Oct, 2009 1 commit
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot ,part 12 · adb93e54
      Satya B authored
      From r5995 to r6043
      
      Detailed revision comments:
      
      r5995 | marko | 2009-09-28 03:52:25 -0500 (Mon, 28 Sep 2009) | 17 lines
      branches/zip: Do not write to PAGE_INDEX_ID after page creation,
      not even when restoring an uncompressed page after a compression failure.
      
      btr_page_reorganize_low(): On compression failure, do not restore
      those page header fields that should not be affected by the
      reorganization.  Instead, compare the fields.
      
      page_zip_decompress(): Add the parameter ibool all, for copying all
      page header fields.  Pass the parameter all=TRUE on block read
      completion, redo log application, and page_zip_validate(); pass
      all=FALSE in all other cases.
      
      page_zip_reorganize(): Do not restore the uncompressed page on
      failure.  It will be restored (to pre-modification state) by the
      caller anyway.
      
      rb://167, Issue #346
      r5996 | marko | 2009-09-28 07:46:02 -0500 (Mon, 28 Sep 2009) | 4 lines
      branches/zip: Address Issue #350 in comments.
      
      lock_rec_queue_validate(), lock_rec_queue_validate(): Note that
      this debug code may violate the latching order and cause deadlocks.
      r5997 | marko | 2009-09-28 08:03:58 -0500 (Mon, 28 Sep 2009) | 12 lines
      branches/zip: Remove an assertion failure when the InnoDB data dictionary
      is inconsistent with the MySQL .frm file.
      
      ha_innobase::index_read(): When the index cannot be found,
      return an error.
      
      ha_innobase::change_active_index(): When prebuilt->index == NULL,
      set also prebuilt->index_usable = FALSE.  This is not needed for
      correctness, because prebuilt->index_usable is only checked by
      row_search_for_mysql(), which requires prebuilt->index != NULL.
      
      This addresses Issue #349.  Approved by Heikki Tuuri over IM.
      r6005 | vasil | 2009-09-29 03:09:52 -0500 (Tue, 29 Sep 2009) | 4 lines
      branches/zip:
      
      ChangeLog: wrap around 78th column, not earlier.
      
      r6006 | vasil | 2009-09-29 05:15:25 -0500 (Tue, 29 Sep 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entry for the release of 1.0.4.
      
      r6007 | vasil | 2009-09-29 08:19:59 -0500 (Tue, 29 Sep 2009) | 6 lines
      branches/zip:
      
      Fix the year, should be 2009.
      
      Pointed by:	Calvin
      
      r6026 | marko | 2009-09-30 02:18:24 -0500 (Wed, 30 Sep 2009) | 1 line
      branches/zip: Add some debug assertions for checking FSEG_MAGIC_N.
      r6028 | marko | 2009-09-30 08:55:23 -0500 (Wed, 30 Sep 2009) | 3 lines
      branches/zip: recv_no_log_write: New debug flag for tracking down
      Mantis Issue #347.  No modifications should be made to the database
      while recv_apply_hashed_log_recs() is about to complete.
      r6029 | calvin | 2009-09-30 15:32:02 -0500 (Wed, 30 Sep 2009) | 4 lines
      branches/zip: non-functional changes
      
      Fix typo.
      
      r6031 | marko | 2009-10-01 06:24:33 -0500 (Thu, 01 Oct 2009) | 49 lines
      branches/zip: Clean up after a crash during DROP INDEX.
      When InnoDB crashes while dropping an index, ensure that
      the index will be completely dropped during crash recovery.
      
      row_merge_drop_index(): Before dropping an index, rename the index to
      start with TEMP_INDEX_PREFIX_STR and commit the change, so that
      row_merge_drop_temp_indexes() will drop the index after crash
      recovery if the server crashes while dropping the index.
      
      fseg_inode_try_get(): New function, forked from fseg_inode_get().
      Return NULL if the file segment index node is free.
      
      fseg_inode_get(): Assert that the file segment index node is not free.
      
      fseg_free_step(): If the file segment index node is already free,
      print a diagnostic message and return TRUE.
      
      fsp_free_seg_inode(): Write a nonzero number to FSEG_MAGIC_N, so that
      allocated-and-freed file segment index nodes can be better
      distinguished from uninitialized ones.
      
      This is rb://174, addressing Issue #348.
      
      Tested by restarting mysqld upon the completion of the added
      log_write_up_to() invocation below, during DROP INDEX.  The index was
      dropped after crash recovery, and re-issuing the DROP INDEX did not
      crash the server.
      
      Index: btr/btr0btr.c
      ===================================================================
      --- btr/btr0btr.c	(revision 6026)
      +++ btr/btr0btr.c	(working copy)
      @@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
       #include "ibuf0ibuf.h"
       #include "trx0trx.h"
      +#include "log0log.h"
       
       /*
       Latching strategy of the InnoDB B-tree
       --------------------------------------
      @@ -873,6 +874,8 @@ leaf_loop:
       
       		goto leaf_loop;
       	}
      +
      +	log_write_up_to(mtr.end_lsn, LOG_WAIT_ALL_GROUPS, TRUE);
       top_loop:
       	mtr_start(&mtr);
       
      r6033 | calvin | 2009-10-01 15:19:46 -0500 (Thu, 01 Oct 2009) | 4 lines
      branches/zip: fix a typo in error message
      
      Reported as bug#47763.
      
      r6043 | inaam | 2009-10-05 09:45:35 -0500 (Mon, 05 Oct 2009) | 12 lines
      branches/zip  rb://176
      
      Do not invalidate buffer pool while an LRU batch is active. Added
      code to buf_pool_invalidate() to wait for the running batches to finish.
      
      This patch also resets the state of buf_pool struct at invalidation. This
      addresses the concern where buf_pool->freed_page_clock becomes non-zero
      because we read in a system tablespace page for file format info at
      startup.
      
      Approved by: Marko
      adb93e54
  8. 08 Oct, 2009 1 commit
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot , part 5 · b0a67daf
      Satya B authored
      From revision r5733 to r5747
      
      Detailed revision comments:
      
      r5733 | sunny | 2009-09-02 02:05:15 -0500 (Wed, 02 Sep 2009) | 6 lines
      branches/zip: Fix a regression introduced by the fix for bug#26316. We check
      whether a transaction holds any AUTOINC locks before we acquire the kernel
      mutex and release those locks.
      
      Fix for rb://153. Approved by Marko.
      
      r5734 | sunny | 2009-09-02 02:08:45 -0500 (Wed, 02 Sep 2009) | 2 lines
      branches/zip: Update ChangeLog with r5733 changes.
      
      r5735 | marko | 2009-09-02 02:43:09 -0500 (Wed, 02 Sep 2009) | 2 lines
      branches/zip: univ.i: Do not undefine PACKAGE or VERSION.
      InnoDB source code does not refer to these macros.
      r5736 | marko | 2009-09-02 02:53:19 -0500 (Wed, 02 Sep 2009) | 1 line
      branches/zip: Enclose some timestamp functions in #ifndef UNIV_HOTBACKUP.
      r5743 | marko | 2009-09-03 01:36:12 -0500 (Thu, 03 Sep 2009) | 3 lines
      branches/zip: log_reserve_and_write_fast(): Remove the redundant
      output parameter "success".
      Success is also indicated by a nonzero return value.
      r5744 | marko | 2009-09-03 03:28:35 -0500 (Thu, 03 Sep 2009) | 1 line
      branches/zip: ut_align(): Make ptr const, like in ut_align_down().
      r5745 | marko | 2009-09-03 03:38:22 -0500 (Thu, 03 Sep 2009) | 2 lines
      branches/zip: log_check_log_recs(): Enclose in #ifdef UNIV_LOG_DEBUG.
      Add const qualifiers.
      r5746 | marko | 2009-09-03 03:55:36 -0500 (Thu, 03 Sep 2009) | 2 lines
      branches/zip: log_reserve_and_write_fast(): Do not cache the log_sys pointer
      in a local variable.
      r5747 | marko | 2009-09-03 05:46:38 -0500 (Thu, 03 Sep 2009) | 2 lines
      branches/zip: recv_scan_log_recs(): Replace while with do...while,
      because the termination condition will always hold on the first iteration.
      b0a67daf
  9. 30 Jul, 2009 1 commit
  10. 27 May, 2009 1 commit