1. 09 Sep, 2007 1 commit
  2. 08 Sep, 2007 1 commit
    • sunny's avatar
      Fix two bugs: · 73fd2622
      sunny authored
      Bug# 30907: We don't rely on *first_value to be 0 when checking whether
      get_auto_increment() has been invoked for the first time in a multi-row
      INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
      inside ha_innobase::start_stmt() too.
      
      Bug# 30888: While adding code for the low level read of the AUTOINC value
      from the index, the case for MEDIUM ints which are 3 bytes was missed
      triggering an assertion.
      73fd2622
  3. 07 Sep, 2007 2 commits
    • marko's avatar
      Merge r1826 from branches/zip: UNIV_MEM_ASSERT_AND_FREE(): · 023cc0a2
      marko authored
      Use UNIV_MEM_ASSERT_W() instead of UNIV_MEM_ASSERT_RW().
      The memory area need not be initialized.
      This mistake was made in r1815.
      023cc0a2
    • sunny's avatar
      Merge a change from MySQL AB: · 02d91af9
      sunny authored
      ChangeSet@1.2536.50.1  2007-08-02 12:45:56-07:00  igor@mysql.com
      
      Fixed bug#28404.
      This patch adds cost estimation for the queries with ORDER BY / GROUP BY
      and LIMIT.
      If there was a ref/range access to the table whose rows were required
      to be ordered in the result set the optimizer always employed this access
      though a scan by a different index that was compatible with the required
      order could be cheaper to produce the first L rows of the result set.
      Now for such queries the optimizer makes a choice between the cheapest
      ref/range accesses not compatible with the given order and index scans
      compatible with it.
      
      innodb.result: Adjusted results for test cases affected fy the fix for
      bug #28404.
      02d91af9
  4. 06 Sep, 2007 2 commits
    • sunny's avatar
      Use the clustered index and not the one selected by the optimizer in the plan, · aaf0c557
      sunny authored
      when building a previous version of the row. This bug is triggered when
      running queries via InnoDB's internal SQL parser; when InnoDB's optimizer
      selects a secondary index for the plan.
      aaf0c557
    • marko's avatar
      Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation. · d71dd22e
      marko authored
      UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
      area is defined.
      
      UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
      
      UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
      writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
      in many places.
      
      mem_init_buf(): Check that the memory is writable, and declare it undefined.
      
      mem_erase_buf(): Check that the memory is writable, and declare it freed.
      d71dd22e
  5. 05 Sep, 2007 1 commit
  6. 03 Sep, 2007 1 commit
  7. 01 Sep, 2007 2 commits
  8. 31 Aug, 2007 1 commit
  9. 30 Aug, 2007 6 commits
  10. 23 Aug, 2007 4 commits
  11. 22 Aug, 2007 5 commits
  12. 20 Aug, 2007 1 commit
  13. 15 Aug, 2007 3 commits
    • marko's avatar
      Merge r1264 from branches/zip: Avoid memory fragmentation when · 487677d0
      marko authored
      adding column definitions to tables.
      
      dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
      allocation.  Allow it and "name" to be NULL.  These parameters are NULL
      when creating dummy indexes.
      
      dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
      
      dict_table_get_col_name(): Allow table->col_names to be NULL.
      
      dict_table_add_system_columns(), dict_table_add_to_cache():
      Add the parameter "heap".
      ---
      Additional changes that had to be merged from branches/zip:
      
      dict_table_add_system_columns(): New function, factored out from
      dict_table_add_to_cache().
      
      mlog_parse_index(): Add some consistency checks, and make use of
      dict_table_add_system_columns().
      487677d0
    • marko's avatar
      Replace mysql_byte with uchar and remove the #define mysql_byte from · f3a8c1a6
      marko authored
      ha_innodb.cc.  This cleanup was made possible as of r1550:
      
      Merge changes from MySQL AB:
      
      ChangeSet@2007-05-10 12:59:39+03:00, monty@mysql.com 
        WL#3817: Simplify string / memory area types and make things more consistent
        (first part)
        
        The following type conversions was done:
        
        - Changed byte to uchar
      ...
      f3a8c1a6
    • marko's avatar
      ibuf0ibuf.c: Remove the unused prototype for dict_index_print_low() · 5e267bd9
      marko authored
      that was inadvertently added in r832.
      5e267bd9
  14. 14 Aug, 2007 1 commit
  15. 01 Aug, 2007 1 commit
  16. 31 Jul, 2007 5 commits
    • marko's avatar
      check_trx_exists(): Remove a redundant function call and assignment that · 1646ac75
      marko authored
      was added by someone at MySQL.
      1646ac75
    • marko's avatar
      f51a14a1
    • marko's avatar
      Merge a change from MySQL AB: · 645f1110
      marko authored
      ChangeSet@1.1810.3176.1  2007-07-20 14:17:15+03:00  gkodinov@magare.gmz
      
      Bug #29644: alter table hangs if records locked in share mode 
      by long running transaction
      
      On Windows opened files can't be deleted. There was a special
      upgraded lock mode (TL_WRITE instead of TL_WRITE_ALLOW_READ) 
      in ALTER TABLE to make sure nobody has the table opened
      when deleting the old table in ALTER TABLE. This special mode
      was causing ALTER TABLE to hang waiting on a lock inside InnoDB.
      This special lock is no longer necessary as the server is 
      closing the tables it needs to delete in ALTER TABLE.
      Fixed by removing the special lock.
      Note that this also reverses the fix for bug 17264 that deals with
      another consequence of this special lock mode being used.
      
      ha_innodb.cc@1.202.46.1  2007-07-20 14:17:14+03:00  gkodinov@magare.gmz
      
      Bug #29644: reverse the (now excessive) fix
      for bug 17264 (but leave the test case).
      645f1110
    • marko's avatar
      Fix the innodb.test failure mentioned in r1654. · 31ed35c0
      marko authored
      31ed35c0
    • marko's avatar
      Merge changes from MySQL AB, as of the following changeset: · e4d8de77
      marko authored
      ChangeSet@1.2567, 2007-07-27 14:44:31+05:00, svoj@june.mysql.com +3 -0
        Merge mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
        into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.1-engines
        MERGE: 1.1810.2871.44
      
      One test case in innodb.test fails because of auto-increment
      changes in r1562:1653:
      
      $diff innodb.result innodb.reject
      504c504
      < 3	test2		this will work
      ---
      > 4	test2		this will work
      e4d8de77
  17. 30 Jul, 2007 1 commit
  18. 24 Jul, 2007 2 commits
    • vasil's avatar
      * Use START_REV instead of $(($1 + 1)) and END_REV instead of $2 · 1a49f127
      vasil authored
      * Use standard while-loop instead of the seq command
      
      1a49f127
    • sunny's avatar
      Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There · 08a18571
      sunny authored
      is one test that fails as of this commit. The updated test case should be
      part of the snapshot from MySQL shortly.
      
      Fix for bug# 27950 - Init AUTOINC from delete_row().
      
      Fix for bug# 28781 - Use value specified by MySQL, in update_row().
      
      Summary of structural changes:
      ==============================
      InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
      the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
      for simple INSERT statements (including multi-value inserts), we try and avoid
      acquiring the special AUTOINC table level lock unless another transaction has
      already reserved the AUTOINC table level lock, in which case we fall back
      to the old behavior of acquiring the AUTOINC table level lock.
      
      The max AUTOINC value is now read directly using the low level interface
      of InnoDB.
      08a18571