1. 14 Nov, 2007 2 commits
    • vasil's avatar
      Non-functional change: convert the switch in convert_search_mode_to_innobase() · 96889ca9
      vasil authored
      to the InnoDB coding style.
      96889ca9
    • vasil's avatar
      Fix Bug#32125 (http://bugs.mysql.com/32125) · 38884f45
      vasil authored
      "Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
      
      When unknown find_flag is encountered in convert_search_mode_to_innobase()
      do not call assert(0); instead queue a MySQL error using my_error() and
      return the error code PAGE_CUR_UNSUPP. Change the functions that call
      convert_search_mode_to_innobase() to handle that error code by "canceling"
      execution and returning appropriate error code further upstream.
      
      Approved by:	Heikki (via IM)
      38884f45
  2. 31 Oct, 2007 1 commit
  3. 26 Oct, 2007 1 commit
    • sunny's avatar
      Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that · 0924601f
      sunny authored
      autoincrement columns can't contain negative values. With the fix, the
      autoincrement table counter is set to 0 if the maximum value read from
      the autoinc column index is negative.
      
      Add test for the bug fix but the test is not really useful as the server
      needs to be restarted half way through the test. It has been added for 
      reference only.
      0924601f
  4. 25 Oct, 2007 1 commit
  5. 24 Oct, 2007 2 commits
  6. 17 Oct, 2007 2 commits
  7. 16 Oct, 2007 1 commit
  8. 12 Oct, 2007 2 commits
  9. 05 Oct, 2007 1 commit
  10. 03 Oct, 2007 2 commits
  11. 28 Sep, 2007 1 commit
    • marko's avatar
      Improve Valgrind instrumentation. · cc78f6ed
      marko authored
      rec_offs_set_n_alloc(): Use UNIV_MEM_ASSERT_AND_ALLOC().
      
      UNIV_MEM_ASSERT_AND_ALLOC(): New directive, similar to
      UNIV_MEM_ASSERT_AND_FREE().
      cc78f6ed
  12. 25 Sep, 2007 1 commit
  13. 24 Sep, 2007 4 commits
    • marko's avatar
      Merge a change from MySQL AB: · 7815285f
      marko authored
      ChangeSet@1.2560  2007-09-21 10:15:16+02:00  gkodinov@local
      
      ha_innodb.cc: fixed type conversion warnings revealed by bug 30639 
      7815285f
    • marko's avatar
      Merge a change from MySQL AB: · 352a5858
      marko authored
      ChangeSet@1.2528.115.30  2007-08-28 10:17:15-06:00  tsmith@hindu.god
      
      Fix another compiler warning on Windows in InnoDB.
      
      ha_innodb.cc:
      
      Fix compiler warning: ::get_auto_increment takes a ulonglong
      for nb_desired_values, but InnoDB's trx struct stores it as
      a ulint (unsigned long).  Probably harmless, as a single
      statement won't be asking for more than 2^32 rows.
      352a5858
    • marko's avatar
      Merge changes from MySQL AB: · 918dc1ab
      marko authored
      ChangeSet@1.2528.115.25  2007-08-27 18:18:14-06:00  tsmith@hindu.god
      
      Fix some Windows compiler warnings.
      
      dict0mem.c: Fix compiler warning with a cast.
      
      ha_innodb.cc: Change type to fix a compiler warning.
      918dc1ab
    • marko's avatar
      Merge changes from MySQL to the MySQL-owned file CMakeLists.txt: · 36529dd5
      marko authored
      ChangeSet@1.2528.109.1  2007-08-06 23:16:01+02:00  kent@(none)
        Additional changes for bug#29903
      36529dd5
  14. 21 Sep, 2007 1 commit
    • vasil's avatar
      snprintf() should always return non-negative result. According to · 24a3afc0
      vasil authored
      Microsoft documentation about _vscprintf():
      
        If format is a null pointer, the invalid parameter handler is invoked,
        as described in Parameter Validation. If execution is allowed to
        continue, the functions return -1 and set errno to EINVAL.
      
      The UNIX variant of snprintf() segfaults if format is a NULL pointer
      (similar to strlen(NULL) for example), so it is better to conform to
      this behavior and crash our custom Windows version instead of
      returning -1. Noone would expect -1 to be returned from snprintf().
      
      Cosmetic: Add a space after typecast.
      
      Approved by:	Marko
      24a3afc0
  15. 20 Sep, 2007 1 commit
    • vasil's avatar
      Revert r1850 as MySQL did not approve the addition. · 0044736f
      vasil authored
      log for r1850:
      
      Implement this feature request:
      http://bugs.mysql.com/30706
      
      * Add a function that returns the number of microseconds since
        epoch - ut_time_us().
      
      * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
      
      * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
        until a timeout elapses.
      
      * Using all of the above, handle the replication thread specially in
        srv_conc_enter_innodb().
      0044736f
  16. 19 Sep, 2007 1 commit
    • vasil's avatar
      Add ut_snprintf() function. On Windows this needs to be implemented · 2ca1d286
      vasil authored
      using auxiliary functions because there is no snprintf-variant on
      Windows that behaves exactly as specified in the standard:
      
      * Always return the number of characters that would have been printed
        if the size were unlimited (not including the final `\0').
      * Always '\0'-terminate the result
      * Do not touch the buffer if size=0, only return the number of characters
        that would have been printed. Can be used to estimate the size needed
        and to allocate it dynamically.
      
      See http://www.freebsd.org/cgi/query-pr.cgi?pr=87260 for the reason why
      2 ap variables are used.
      
      Approved by:	Heikki
      2ca1d286
  17. 17 Sep, 2007 1 commit
    • vasil's avatar
      Implement this feature request: · 83187d4e
      vasil authored
      http://bugs.mysql.com/30706
      
      * Add a function that returns the number of microseconds since
        epoch - ut_time_us().
      
      * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
      
      * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
        until a timeout elapses.
      
      * Using all of the above, handle the replication thread specially in
        srv_conc_enter_innodb().
      
      Approved by:	Heikki
      83187d4e
  18. 14 Sep, 2007 1 commit
  19. 13 Sep, 2007 1 commit
  20. 12 Sep, 2007 1 commit
  21. 10 Sep, 2007 2 commits
    • sunny's avatar
      Add /*== ... === */ decoration that was missing around some auto-inc functions. · 444ba771
      sunny authored
      Add a missing comment, fix the length of a decoration.  Initialize the *value
      out parameter in ha_innobase::innobase_get_auto_increment().
      444ba771
    • marko's avatar
      Improve memory debugging. This is follow-up to r1819. · 09128f55
      marko authored
      mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
      defined.  Previously, this function was only compiled with UNIV_DEBUG.
      
      mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
      Valgrind.  Otherwise, Valgrind would complain on the second call of
      mem_heap_empty().
      
      UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
      for failed Valgrind checks.
      09128f55
  22. 09 Sep, 2007 1 commit
  23. 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
  24. 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
  25. 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
  26. 05 Sep, 2007 1 commit
  27. 03 Sep, 2007 1 commit
  28. 01 Sep, 2007 2 commits