1. 26 Nov, 2010 1 commit
    • Alexander Barkov's avatar
      Bug#57737 Character sets: search fails with like, contraction, index · 93386d73
      Alexander Barkov authored
      Problem: LIKE over an indexed column optimized away good results,
      because my_like_range_utf32/utf16 returned wrong ranges for contractions.
      Contraction related code was missing in my_like_range_utf32/utf16,
      but did exist in my_like_range_ucs2/utf8.
      It was forgotten in utf32/utf16 versions (during mysql-6.0 push/revert mess).
      
      Fix:
      The patch removes individual functions my_like_range_ucs2,
      my_like_range_utf16, my_like_range_utf32 and introduces a single function
      my_like_range_generic() instead. The new function handles contractions
      correctly. It can handle any character set with cs->min_sort_char and
      cs->max_sort_char represented in Unicode code points.
      
      added:
        @ mysql-test/include/ctype_czech.inc
        @ mysql-test/include/ctype_like_ignorable.inc
        @ mysql-test/r/ctype_like_range.result
        @ mysql-test/t/ctype_like_range.test
        Adding tests
      
      
      modified:
      
        @ include/m_ctype.h
        - Adding helper functions for contractions.
        - Prototypes: removing ucs2,utf16,utf32 functions, adding generic function.
        @ mysql-test/r/ctype_uca.result
        @ mysql-test/r/ctype_utf16_uca.result
        @ mysql-test/r/ctype_utf32_uca.result
        @ mysql-test/t/ctype_uca.test
        @ mysql-test/t/ctype_utf16_uca.test
        @ mysql-test/t/ctype_utf32_uca.test
        - Adding tests.
      
        @ strings/ctype-mb.c
        - Pad function did not put the last character.
        - Implementing my_like_range_generic() - an universal replacement
          for three separate functions
          my_like_range_ucs2(), my_like_range_utf16() and my_like_range_utf32(),
          with correct contraction handling.
      
        @ strings/ctype-ucs2.c
        - my_fill_mb2 did not put the high byte, as previously
          it was used to put only characters in ASCII range.
          Now it puts high byte as well
          (needed to pupulate cs->max_sort_char correctly).
        - Adding DBUG_ASSERT()
        - Removing character set specific functions:
          my_like_range_ucs2(), my_like_range_utf16() and my_like_range_utf32().
        - Using my_like_range_generic() instead of the old functions.
      
        @ strings/ctype-uca.c
        - Using generic function instead of the old character set specific ones.
      
        @ sql/item_create.cc
        @ sql/item_strfunc.cc
        @ sql/item_strfunc.h
        - Adding SQL functions LIKE_RANGE_MIN and LIKE_RANGE_MAX,
          available only in debug build to make sure like_range()
          works correctly for all character sets and collations. 
      93386d73
  2. 25 Nov, 2010 10 commits
  3. 24 Nov, 2010 6 commits
  4. 23 Nov, 2010 3 commits
  5. 24 Nov, 2010 5 commits
  6. 22 Nov, 2010 10 commits
  7. 20 Nov, 2010 1 commit
    • Davi Arnaut's avatar
      WL#5665: Removal of the autotools-based build system · 5324d10f
      Davi Arnaut authored
      Remove some more leftovers from the initial removal:
      
      o Update relevant mentions of configure.in throughout
      the source code.
      
      o Remove win/configure.js, which at this point just
      duplicates logic already present in CMake based build
      system.
      
      o Remove support files which relied on the autotools
      build system. In any case, MySQL is no longer officially
      supported on SCO.
      
      o Remove files which are no longer part of the build.
      5324d10f
  8. 22 Nov, 2010 1 commit
  9. 21 Nov, 2010 1 commit
  10. 20 Nov, 2010 2 commits
    • Davi Arnaut's avatar
      WL#5665: Removal of the autotools-based build system · f6deb00a
      Davi Arnaut authored
      The autotools-based build system has been superseded and
      is being removed in order to ease the maintenance burden on
      developers tweaking and maintaining the build system.
      
      In order to support tools that need to extract the server
      version, a new file that (only) contains the server version,
      called VERSION, is introduced. The file contents are human
      and machine-readable. The format is:
      
      MYSQL_VERSION_MAJOR=5
      MYSQL_VERSION_MINOR=5
      MYSQL_VERSION_PATCH=8
      MYSQL_VERSION_EXTRA=-rc
      
      The CMake based version extraction in cmake/mysql_version.cmake
      is changed to extract the version from this file. The configure
      to CMake wrapper is retained for backwards compatibility and to
      support the BUILD/ scripts. Also, a new a makefile target
      show-dist-name that prints the server version is introduced.
      f6deb00a
    • Davi Arnaut's avatar
      e1cba38b