1. 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
  2. 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
  3. 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
  4. 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
  5. 14 Sep, 2007 1 commit
  6. 13 Sep, 2007 1 commit
  7. 12 Sep, 2007 1 commit
  8. 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
  9. 09 Sep, 2007 1 commit
  10. 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
  11. 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
  12. 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
  13. 05 Sep, 2007 1 commit
  14. 03 Sep, 2007 1 commit
  15. 01 Sep, 2007 2 commits
  16. 31 Aug, 2007 1 commit
  17. 30 Aug, 2007 6 commits
  18. 23 Aug, 2007 4 commits
  19. 22 Aug, 2007 5 commits
  20. 20 Aug, 2007 1 commit
  21. 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
  22. 14 Aug, 2007 1 commit