1. 09 Oct, 2009 5 commits
  2. 08 Oct, 2009 4 commits
  3. 07 Oct, 2009 2 commits
  4. 05 Oct, 2009 2 commits
  5. 03 Oct, 2009 3 commits
  6. 02 Oct, 2009 4 commits
  7. 01 Oct, 2009 5 commits
  8. 30 Sep, 2009 11 commits
    • Joerg Bruehe's avatar
      Merge "trunk-build" up into "next-mr". · de0285a2
      Joerg Bruehe authored
      de0285a2
    • Vladislav Vaintroub's avatar
      backport of · 6e6b84fd
      Vladislav Vaintroub authored
      Revision: 
      2597.72.1 revid:sp1r-Reggie@core.-20080403153947-15243
      removed instances of __NT__ from code. We now only build "NT" binaries
      6e6b84fd
    • Vladislav Vaintroub's avatar
      Backport of this changeset · 9cf8d12c
      Vladislav Vaintroub authored
      http://lists.mysql.com/commits/59686
      
      Cleanup pthread_self(), pthread_create(), pthread_join() implementation on Windows.
      Prior implementation is was unnecessarily complicated and even differs in embedded
      and non-embedded case.
            
      Improvements in this patch:
      * pthread_t is now the unique thread ID, instead of HANDLE returned by beginthread
            
      This simplifies pthread_self() to be just straight GetCurrentThreadId().
      prior it was much  art involved in passing the beginthread() handle from the caller
      to the TLS structure in the child thread ( did not work for the main thread of
      course)
            
      * remove MySQL specific my_thread_init()/my_thread_end() from pthread_create.
      No automagic is done on Unix on pthread_create(). Having the same on Windows will 
      improve portability and avoid extra #ifdef's
            
      * remove redefinition of getpid() - it was defined as GetCurrentThreadId()
      9cf8d12c
    • Vladislav Vaintroub's avatar
      Backport http://lists.mysql.com/commits/57778 · 28015993
      Vladislav Vaintroub authored
      2677 Vladislav Vaintroub	2008-11-04
      CMakeLists.txt files cleanup
      - remove SAFEMALLOC and SAFE_MUTEX definitions that were 
      present in *each* CMakeLists.txt. Instead, put them into top level 
      CMakeLists.txt, but disable on Windows, because
      a) SAFEMALLOC does not add any functionality that is not already
      present in Debug C runtime ( and 2 safe malloc one on top of the other 
      only unnecessarily slows down the server) 
            
      b)SAFE_MUTEX does not work on Windows  and have been
      explicitely  disabled on Windows with #undef previously.  Fortunately,
      ntdll does  pretty good  job identifying l problems with 
      CRITICAL_SECTIONs.
      DebugBreak()s on using uninited critical section, unlocking unowned 
      critical section)
            
      -Also, remove occationally used -D_DEBUG (added by compiler 
      anyway)
      28015993
    • Ingo Struewing's avatar
      auto-merge · 309ffb8b
      Ingo Struewing authored
      309ffb8b
    • Ingo Struewing's avatar
      Bug#37267 - connect() EINPROGRESS failures mishandled in client library · 1e87babb
      Ingo Struewing authored
      We cann connect() in a non-blocking mode to be able to specify a
      non-standard timeout.
      
      The problem was that we did not fetch the status from the
      non-blocking connect(). We assumed that poll() would not return
      a POLLIN flag if the connect failed. But on some platforms this
      is not true.
      
      After a successful poll() we do now retrieve the status value
      from connect() with getsockopt(...SO_ERROR...). Now we do know
      if (and how) the connect failed.
      
      The test case for my investigation was rpl.rlp_ssl1 on an
      Ubuntu 9.04 x86_64 machine. Both, IPV4 and IPV6 were active.
      'localhost' resolved first for IPV6 and then for IPV4. The
      connection over IPV6 was blocked. rpl.rlp_ssl1 timed out
      as it did not notice the failed connect(). The first read()
      failed, which was interpreted as a master crash and the
      connection was tried to reestablish with the same result
      until the retry limit was reached.
      
      With the fix, the connect() problem is immediately recognized,
      and the connect() is retried on the second resolution for
      'localhost', which is successful.
      1e87babb
    • Guilhem Bichot's avatar
      Fix for BUG#42980 "Client doesn't set NUM_FLAG for DECIMAL and TIMESTAMP": · b3886f46
      Guilhem Bichot authored
      DECIMAL and TIMESTAMP used to have NUM_FLAG, but NEWDECIMAL was forgotten.
      It's correct that TIMESTAMP does not have the flag nowadays (manual will be updated, connectors
      developers will be notified).
      b3886f46
    • Alexander Barkov's avatar
      Backporting WL#3759 Optimize identifier conversion in client-server protocol · 482d3bfd
      Alexander Barkov authored
      This patch provides performance improvements:
      - send_fields() when character_set_results = latin1
        is now about twice faster for column/table/database
        names, consisting on ASCII characters.
      
      Changes:
      
      - Protocol doesn't use "convert" temporary buffer anymore,
        and converts strings directly to "packet".
      
      - General conversion optimization: quick conversion
        of ASCII strings was added.
      
      modified files:
      
      include/m_ctype.h
      - Adding a new flag.
      - Adding a new function prototype
      
      libmysqld/lib_sql.cc
      - Adding quick conversion method for embedded library:
        conversion is now done directly to result buffer,
        without using a temporary buffer.
      
      mysys/charset.c
      - Mark all dynamic ucs2 character sets as non-ASCII
      - Mark some dymamic 7bit and 8bit charsets as non-ASCII
        (for example swe7 is not fully ASCII compatible).
      
      sql/protocol.cc
      - Adding quick method to convert a string directly
        into protocol buffer, without using a temporary buffer.
      
      sql/protocol.h
      - Adding a new method prototype
      
      sql/sql_string.cc
        Optimization for conversion between two ASCII-compatible charsets:
      - quickly convert ASCII strings,
        switch to mc_wc->wc_mb method only when a non-ASCII character is met.
      - copy four ASCII characters at once on i386
      
      strings/conf_to_src.c
      - Marking non-ASCII character sets with a flag.
      
      strings/ctype-extra.c
      - Regenerating ctype-extra.c by running "conf_to_src".
      
      strings/ctype-uca.c
      - Marking UCS2 character set as non-ASCII.
      
      strings/ctype-ucs2.c
      - Marking UCS2 character set as non-ASCII.
      
      strings/ctype.c
      - A new function to detect if a 7bit or 8bit character set
        is ascii compatible.
      482d3bfd
    • Vladislav Vaintroub's avatar
      Backport of the patch · 46d04ebd
      Vladislav Vaintroub authored
      http://lists.mysql.com/commits/57725
      
      Vladislav Vaintroub	2008-11-03
      Cleanup CMakeLists.txt(s) - remove winsock2 (ws2_32) from 
      TARGET_LINK_LIBRARIES. 
            
      Every exe or dll linked with mysys needs ws2_32, because
      mysys uses winsock function WSAStartup in my_init().
      However, there is no need to explicitely add ws2_32 to
      the list of TARGET_LINK_LIBRARIES multiple times. 
      Visual Studio comes with a handy pragma that tells linker
      to add library. So patch replaces bunch of ws2_32 in 
      CMakeLists with  single pragma comment(lib,"ws2_32")
      in my_init.c
            
      Additionally, reference to non-existing "debug" library
      has been removed from TARGET_LINK_LIBRARIES. The correct
      name of the library is "dbug".
      46d04ebd
    • Vladislav Vaintroub's avatar
      Windows improvements : manual backport of · e6090f10
      Vladislav Vaintroub authored
      htttp://lists.mysql.com/commits/50957?f=plain
            
      Always use TLS functions instead of __declspec(thread) to access 
      thread local storage variables.
      The change removes the necessity to recomplile the same source
      files twice -  with USE_TLS for DLLs and without USE_TLS for EXEs.
      Real benefit of this change is better readability and maintainability
      of TLS functions within MySQL.
                    
      There is a performance loss using TlsXXX functions compared to __declspec 
      but the difference is negligible in practice. In a sysbench-like benchmark 
      I ran with with TlsGetValue, pthread_[get|set]_specific was called 600000000 
      times and took 0.17sec of total 35min CPU time, or 0.008%.
      e6090f10
    • Vladislav Vaintroub's avatar
      fix tree name · 1ab25774
      Vladislav Vaintroub authored
      1ab25774
  9. 29 Sep, 2009 1 commit
  10. 28 Sep, 2009 3 commits