1. 09 Sep, 2007 1 commit
  2. 08 Sep, 2007 1 commit
    • sunny's avatar
      Fix two bugs: · 88867dae
      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.
      88867dae
  3. 07 Sep, 2007 2 commits
    • marko's avatar
      Merge r1826 from branches/zip: UNIV_MEM_ASSERT_AND_FREE(): · 791599f1
      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.
      791599f1
    • sunny's avatar
      Merge a change from MySQL AB: · 29a50ec5
      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.
      29a50ec5
  4. 06 Sep, 2007 2 commits
    • sunny's avatar
      Use the clustered index and not the one selected by the optimizer in the plan, · 7e9e89b3
      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.
      7e9e89b3
    • marko's avatar
      Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation. · a310c56b
      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.
      a310c56b
  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 · 2b70474c
      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().
      2b70474c
    • marko's avatar
      Replace mysql_byte with uchar and remove the #define mysql_byte from · a4d40087
      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
      ...
      a4d40087
    • marko's avatar
      ibuf0ibuf.c: Remove the unused prototype for dict_index_print_low() · 5067639b
      marko authored
      that was inadvertently added in r832.
      5067639b
  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 · bb75aaa4
      marko authored
      was added by someone at MySQL.
      bb75aaa4
    • marko's avatar
      3cbebd96
    • marko's avatar
      Merge a change from MySQL AB: · da301ec1
      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).
      da301ec1
    • marko's avatar
      Fix the innodb.test failure mentioned in r1654. · a97acd6e
      marko authored
      a97acd6e
    • marko's avatar
      Merge changes from MySQL AB, as of the following changeset: · 80f54592
      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
      80f54592
  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 · d69d10ac
      vasil authored
      * Use standard while-loop instead of the seq command
      d69d10ac
    • sunny's avatar
      Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There · 7fc6a02a
      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.
      7fc6a02a