1. 03 Oct, 2008 3 commits
    • vasil's avatar
      branches/zip: · 46c7c2ba
      vasil authored
      ChangeLog:
      Use "Fix Bug#NNNNN bug summary text" for bugfixes, as for other entries
      in the file.
      46c7c2ba
    • marko's avatar
      branches/zip: innodb-index.test: Make the pattern for temporary table names · 01aba6f8
      marko authored
      more generic.  The previous pattern could fail if other test cases were run
      before this one.  Since r2716, the MySQL server is not restarted for this test.
      01aba6f8
    • marko's avatar
      branches/zip: Make innodb_lock_wait_timeout a settable session variable · 4d6c1573
      marko authored
      (Bug #36285, rb://9).
      
      innodb-index.test, innodb-index.result: Set innodb_lock_wait_timeout as
      a session variable instead of relying on the global value.
      
      innodb-index-master.opt: Remove.
      
      innodb-timeout.test: Test that setting the innodb_lock_wait_timeout
      works as advertised.
      
      thd_lock_wait_timeout(): New function, to retrieve the lock wait timeout
      for a given MySQL client connection (thd), or the global value (thd==NULL).
      
      srv_lock_wait_timeout, innobase_lock_wait_timeout: Remove.
      
      Replace MYSQL_SYSVAR_LONG(lock_wait_timeout)
      with MYSQL_THDVAR_ULONG(lock_wait_timeout).  
      4d6c1573
  2. 01 Oct, 2008 3 commits
    • marko's avatar
      branches/zip: page_mem_free(): Remove the obsolete remark that there · dd5c8747
      marko authored
      should be space left in the modification log of the compressed page.
      Record deletion does not require any space in the modification log.
      dd5c8747
    • marko's avatar
      branches/zip: page_zip_validate(): On page header mismatch, · 54fbfaa8
      marko authored
      dump the data structures.  This was forgotten in r2698.
      54fbfaa8
    • marko's avatar
      branches/zip: Merge revisions 2630:2702 from branches/5.1: · eb8b2948
      marko authored
        ------------------------------------------------------------------------
        r2702 | sunny | 2008-09-30 11:41:56 +0300 (Tue, 30 Sep 2008) | 13 lines
      
        branches/5.1: Since handler::get_auto_increment() doesn't allow us
        to return the cause of failure we have to inform MySQL using the
        sql_print_warning() function to return the cause for autoinc failure.
        Previously we simply printed the error code, this patch prints the
        text string representing the following two error codes:
      
        DB_LOCK_WAIT_TIMEOUT
        DB_DEADLOCK.
      
        Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
      
        Approved by Marko.
        ------------------------------------------------------------------------
        rb://18
      eb8b2948
  3. 30 Sep, 2008 1 commit
    • vasil's avatar
      branches/zip: · 7548c3d8
      vasil authored
      Change the patch to fix the failing mysql-test index_merge_innodb.
      
      The previous variant is inappropriate because myisam results are different
      (2 instead of 4) and then the index_merge_myisam test fails.
      7548c3d8
  4. 29 Sep, 2008 3 commits
  5. 26 Sep, 2008 4 commits
  6. 25 Sep, 2008 5 commits
    • marko's avatar
      branches/zip: Non-functional change: · f74acc25
      marko authored
      page_zip_copy_recs(): Rename from page_zip_copy().
      Update the function comment.
      f74acc25
    • marko's avatar
    • marko's avatar
      14d5f725
    • marko's avatar
      branches/zip: page_zip_copy(): Skip PAGE_MAX_TRX_ID, because · fdfdf385
      marko authored
      page_copy_rec_list_end(), page_copy_rec_list_start() and friends do
      not copy it either.
      fdfdf385
    • marko's avatar
      branches/zip: page_zip_copy(): Copy only those B-tree page header · 731ead1d
      marko authored
      fields that are related to the records stored in the page.
      
      page_zip_copy() is a fall-back method in certain B-tree operations
      (tree compression, splitting or merging nodes).  The contents of a
      page may fit in the compressed page frame when it has been modified in
      a certain sequence, but not when the page is recompressed.  Sometimes,
      copying all or part of the records to an empty page could fail because
      of compression overflow.  In such cases, we copy the compressed and
      uncompressed pages bit for bit and delete any unwanted records from
      the copy.  (Deletion is guaranteed to succeed.)  The method
      page_zip_copy() is invoked very rarely.
      
      In one case, page_zip_copy() was called in btr_lift_page_up() to move
      the records to the root page of the B-tree.  Because page_zip_copy()
      copied all B-tree page header fields, it overwrote the file segment
      header fields PAGE_BTR_SEG_LEAF and PAGE_BTR_SEG_TOP.  This is the
      probable cause of the corruption that was reported as Mantis issue #63
      and others.
      731ead1d
  7. 24 Sep, 2008 5 commits
  8. 22 Sep, 2008 4 commits
  9. 19 Sep, 2008 1 commit
    • calvin's avatar
      branches/zip: fix Mantis issue #74 Memory leak on Windows · 6df13976
      calvin authored
      The memory leak was due to wrong parameters passed into VirtualFree()
      call. So, the call fails with Windows error 87. MEM_DECOMMIT can NOT be
      used along with MEM_RELEASE. And if the parameter is MEM_RELEASE, the
      size parameter must be 0. The function frees the entire region that is
      reserved in the initial allocation call to VirtualAlloc.
      
      This issue was introduced by r984.
      
      Approved by:	Heikki (on IM)
      6df13976
  10. 18 Sep, 2008 5 commits
    • marko's avatar
      branches/zip: Map current_thd to NULL in the Windows plugin, and use · ea6b2cea
      marko authored
      ha_thd() whenever possible.
      
      EQ_CURRENT_THD(thd): New predicate, for use in assertions.
      
      innobase_drop_database(): Tolerate current_thd == NULL, so that the
      Windows plugin will work.  In the Windows plugin, it will be
      impossible to skip foreign key checks in this function.  However,
      DROP DATABASE will drop each table (that MySQL knows about) individually
      before calling this function.  Thus, the foreign key checks can be disabled
      also in the Windows plugin, unless some .frm files are missing.
      ea6b2cea
    • marko's avatar
      branches/zip: When creating an index in innodb_strict_mode, check that · 3b2f5c05
      marko authored
      the maximum record size will never exceed the B-tree page size limit.
      For uncompressed tables, there should always be enough space for two
      records in an empty B-tree page.  For compressed tables, there should
      be enough space for storing two node pointer records or one data
      record in an empty page in uncompressed format.
      
      dict_build_table_def_step(): Remove the inaccurate check for table row
      size.
      
      dict_index_too_big_for_tree(): New function: check if the index
      records would be too big for a B-tree page.
      
      dict_index_add_to_cache(): Add the parameter "strict".  Invoke
      dict_index_too_big_for_tree() if it is set.
      
      trx_is_strict(), thd_is_strict(): New functions, for determining if
      innodb_strict_mode is enabled for the current transaction.
      
      dict_create_index_step(): Pass the new parameter strict of
      dict_index_add_to_cache() as trx_is_strict(trx).  All other callers
      pass it as FALSE.
      
      innodb.test: Enable innodb_strict_mode before attempting to create a
      table with a too big record size.
      
      innodb-zip.test: Remove the test of inserting random data.  Add tests
      for checking that the maximum record lengths are enforced at table
      creation time.
      3b2f5c05
    • marko's avatar
    • marko's avatar
    • marko's avatar
      branches/zip: ChangeLog: Remove reference to Mantis. This file is for the · 2fe45fb9
      marko authored
      general public, and Mantis is for our internal use only.
      
      Thanks to Vasil for pointing this out.
      2fe45fb9
  11. 17 Sep, 2008 6 commits