1. 14 Nov, 2007 2 commits
    • vasil's avatar
      Non-functional change: convert the switch in convert_search_mode_to_innobase() · 6c6208ac
      vasil authored
      to the InnoDB coding style.
      6c6208ac
    • vasil's avatar
      Fix Bug#32125 (http://bugs.mysql.com/32125) · eddb1258
      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)
      
      eddb1258
  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 · 0c04ac85
      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.
      0c04ac85
  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. · 316fe7a0
      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().
      316fe7a0
  12. 25 Sep, 2007 1 commit
  13. 24 Sep, 2007 4 commits
    • marko's avatar
      Merge a change from MySQL AB: · b44b2ae5
      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 
      b44b2ae5
    • marko's avatar
      Merge a change from MySQL AB: · 16566e23
      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.
      16566e23
    • marko's avatar
      Merge changes from MySQL AB: · f0d11fca
      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.
      f0d11fca
    • marko's avatar
      Merge changes from MySQL to the MySQL-owned file CMakeLists.txt: · 0defee3e
      marko authored
      ChangeSet@1.2528.109.1  2007-08-06 23:16:01+02:00  kent@(none)
        Additional changes for bug#29903
      0defee3e
  14. 21 Sep, 2007 1 commit
    • vasil's avatar
      snprintf() should always return non-negative result. According to · d7e10f72
      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
      d7e10f72
  15. 20 Sep, 2007 1 commit
    • vasil's avatar
      Revert r1850 as MySQL did not approve the addition. · 2ee633f8
      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().
      2ee633f8
  16. 19 Sep, 2007 1 commit
    • vasil's avatar
      Add ut_snprintf() function. On Windows this needs to be implemented · 6a0f6df9
      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
      6a0f6df9
  17. 17 Sep, 2007 1 commit
    • vasil's avatar
      Implement this feature request: · 8785af49
      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
      
      8785af49
  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. · 18e0aaa3
      sunny authored
      Add a missing comment, fix the length of a decoration.  Initialize the *value
      out parameter in ha_innobase::innobase_get_auto_increment().
      18e0aaa3
    • marko's avatar
      Improve memory debugging. This is follow-up to r1819. · 10ca4727
      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.
      10ca4727
  22. 09 Sep, 2007 1 commit
  23. 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
  24. 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
  25. 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
  26. 05 Sep, 2007 1 commit
  27. 03 Sep, 2007 1 commit
  28. 01 Sep, 2007 2 commits