1. 01 Dec, 2008 4 commits
    • Georgi Kodinov's avatar
      merged bug 39920 to 5.0-bugteam · d21c8503
      Georgi Kodinov authored
      d21c8503
    • Georgi Kodinov's avatar
      Bug #39920: MySQL cannot deal with Leap Second expression in string literal. · 8f36a23c
      Georgi Kodinov authored
                        
      Updated MySQL time handling code to react correctly on UTC leap second additions.
      MySQL functions that return the OS current time, like e.g. CURDATE(), NOW() etc
      will return :59:59 instead of :59:60 or 59:61.
      As a result the reader will receive :59:59 for 2 or 3 consecutive seconds 
      during the leap second.
      This fix will not affect the values returned by UNIX_TIMESTAMP() for leap seconds.
      But note that when converting the value returned by UNIX_TIMESTAMP() to broken 
      down time the correction of leap seconds will still be applied.
      Note that this fix will make a difference *only* if the OS is specially configured
      to return leap seconds from the OS time calls or when using a MySQL time zone 
      defintion that has leap seconds.
      Even after this change date/time literals (or other broken down time 
      representations) with leap seconds (ending on :59:60 or 59:61) will still be 
      considered illegal and discarded by the server with an error or 
      a warning depending on the sql mode.
      Added a test case to demonstrate the effect of the fix.
      8f36a23c
    • Georgi Kodinov's avatar
      Addendum to bug #37339 : make the test case portable to windows · be5e6ee0
      Georgi Kodinov authored
      by using and taking out a full path.
      be5e6ee0
    • Gleb Shchepa's avatar
      After-push commit for bug #33461 to make valgrind happy: · a3cb8c68
      Gleb Shchepa authored
      TABLE_LIST doesn't free Strings in its string lists
      (TABLE_LIST::use_index and TABLE_liST::ignore_index), so
      calling c_ptr_safe() on that Strings leads to memleaks.
      OTOH "safe" c_ptr_safe() is not necessary there and we can
      replace it with c_ptr().
      a3cb8c68
  2. 28 Nov, 2008 6 commits
    • Matthias Leich's avatar
      Merge of last pushes into GCA tree, no conflicts · b9f919e1
      Matthias Leich authored
      Diff to actual 5.0-bugteam is revno: 2725 only
      b9f919e1
    • Gleb Shchepa's avatar
      Bug #33461: SELECT ... FROM <view> USE INDEX (...) throws · 228c913e
      Gleb Shchepa authored
                  an error
      
      Even after the fix for bug 28701 visible behaviors of
      SELECT FROM a view and SELECT FROM a regular table are
      little bit different:
      
      1. "SELECT FROM regular table USE/FORCE/IGNORE(non
         existent index)" fails with a "ERROR 1176 (HY000):
         Key '...' doesn't exist in table '...'"
      
      2. "SELECT FROM view USING/FORCE/IGNORE(any index)" fails
         with a "ERROR 1221 (HY000): Incorrect usage of
         USE/IGNORE INDEX and VIEW".  OTOH "SHOW INDEX FROM
         view" always returns empty result set, so from the point
         of same behaviour view we trying to use/ignore non
         existent index.
      
      To harmonize the behaviour of USE/FORCE/IGNORE(index)
      clauses in SELECT from a view and from a regular table the
      "ERROR 1221 (HY000): Incorrect usage of USE/IGNORE INDEX
      and VIEW" message has been replaced with the "ERROR 1176
      (HY000): Key '...' doesn't exist in table '...'" message
      like for tables and non existent keys.
      228c913e
    • Georgi Kodinov's avatar
      merged bug 37339 to 5.0-bugteam · ccc3404f
      Georgi Kodinov authored
      ccc3404f
    • Georgi Kodinov's avatar
      Bug #37339: SHOW VARIABLES not working properly with multi-byte datadir · 0708ad5f
      Georgi Kodinov authored
            
      The SHOW VARIABLES LIKE .../SELECT @@/SELECT ... FROM INFORMATION_SCHEMA.VARIABLES
      were assuming that all the system variables are in system charset (UTF-8).
      However the variables that are settable through command line will have a different
      character set (character_set_filesystem).
      Fixed the server to remember the correct character set of basedir, datadir, tmpdir,
      ssl, plugin_dir, slave_load_tmpdir, innodb variables; init_connect and init_slave 
      variables and use it when processing data.
      0708ad5f
    • Sergey Glukhov's avatar
      error code is changed to satisfy Win NT · 68066aa5
      Sergey Glukhov authored
      68066aa5
    • Sergey Glukhov's avatar
      pushbuild failure fixes · 17cd69cc
      Sergey Glukhov authored
      17cd69cc
  3. 27 Nov, 2008 8 commits
  4. 26 Nov, 2008 1 commit
    • Tatiana A. Nurnberg's avatar
      Bug#37553: MySql Error Compare TimeDiff & Time · ae0c6a94
      Tatiana A. Nurnberg authored
      We pretended that TIMEDIFF() would always return positive results;
      this gave strange results in comparisons of the TIMEDIFF(low,hi)<TIME(0)
      type that rendered a negative result, but still gave false in comparison.
      We also inadvertantly dropped the sign when converting times to
      decimal.
      
      CAST(time AS DECIMAL) handles signs of the times correctly.
      TIMEDIFF() marked up as signed. Time/date comparison code switched to
      signed for clarity.
      ae0c6a94
  5. 25 Nov, 2008 3 commits
  6. 24 Nov, 2008 3 commits
  7. 21 Nov, 2008 3 commits
  8. 20 Nov, 2008 1 commit
  9. 19 Nov, 2008 1 commit
    • Matthias Leich's avatar
      Fix for Bug#26890 main.multi_update times out · 177c0c2a
      Matthias Leich authored
      The test itself is not faulty. The testcase timeout
      problem happens if this IMHO mid size resource
      (space in vardir, virtual memory, amount of disk I/O)
      consuming test meets a weak (excessive disk I/O caused
      by parallel applications or paging) testing box.
      
      The modifications:
      - Move the most time and disk I/O consuming subtest
        for Bug 1820 into its own script (multi_update2)
        This will reduce the likelihood that we exceed the
        testcase timeout.
      - Replace error numbers with error names
      - Minor improvements of the formatting
      
      - 
      177c0c2a
  10. 18 Nov, 2008 1 commit
  11. 17 Nov, 2008 1 commit
    • Alexey Botchkov's avatar
      Bug#31616 div_precision_increment description looks wrong · 56dc6b2e
      Alexey Botchkov authored
      Item_func_div didn't calculate the precision of the result properly.
        The result of 5/0.0001 is 5000 so we have to add decimals of the divisor
        to the planned precision.
      
      per-file comments:
        mysql-test/r/type_newdecimal.result
      Bug#31616 div_precision_increment description looks wrong
          test result fixed
      
        mysql-test/t/type_newdecimal.test
      Bug#31616 div_precision_increment description looks wrong
          test case
      
        sql/item_func.cc
      Bug#31616 div_precision_increment description looks wrong
          precision must be increased with args[1]->decimals parameter
      56dc6b2e
  12. 14 Nov, 2008 4 commits
    • Gleb Shchepa's avatar
      Bug #40021: Renaming view fails, archived .frm for view is · b82094a0
      Gleb Shchepa authored
                  missing after downgrade
      
      Obsolete arc/ directory and view .frm file backup support
      has been removed by the patch for bug 17823. However, that
      bugfix caused a problem with "live downgrades" of the
      server: if we rename some view 4 times under 5.1.29/5.0.72
      and then try to rename it under 5.1.28/5.0.70 on the same
      database, the server fails with a error:
      
        query 'RENAME TABLE ... TO ...' failed: 6: Error on
        delete of '....frm-0001' (Errcode: 2)
      
      Also .frm file of that view may be lost (renamed to .frm~).
      
      The server failed because it tried to rename latest 3
      backup .frm files renaming the view: the server used an
      integer value of the "revision" field of .frm file to
      extract those file names. After the fix for bug 17823 those
      files were not created/maintained any more, however the
      "revision" field was incremented as usual. So, the server
      failed renaming non existent files.
      
      This fix solves the problem by removing the support for
      "revision" .frm file field:
      1. New server silently ignores existent "revision" fields
         in old .frm files and never write it down;
      2. Old server assumes, that missing "revision" field in new
         .frm files means default value of 0.
      3. Accordingly to the fix for bug 17823 the new server
         drops arc/ directory on alter/rename view, so after
         "live downgrade" old server begins maintenance of the
         arc/ directory from scratch without conflicts with .frm
         files.
      b82094a0
    • Ramil Kalimullin's avatar
      Test case for bug #34774: key prefix on text field in federated · ee3594b2
      Ramil Kalimullin authored
      tables can cause server to crash!
      
      The bug will be fixed by patch for #34779: "crash in checksum table
      on federated tables with blobs containing nulls"
      
      Only a test case commited.
      ee3594b2
    • Ramil Kalimullin's avatar
      Fix for bug#37527: mysqlcheck fails to report entire database · e0d5a6c1
      Ramil Kalimullin authored
      when InnoDB frm file corruption
      
      Problem: mysqlcheck runs 'SHOW FULL TABLE' queries to get table lists.
      The query may fail for some reasons (e.g. null .frm file) then
      mysqlcheck doesn't process the database tables.
      
      Fix: try to run 'SHOW TABLES' if 'SHOW FULL TABLES' failed.
      e0d5a6c1
    • Vladislav Vaintroub's avatar
      Bug #20430 mysqld.exe windows service stuck in "SERVICE_STOP_PENDING" · ea0efe45
      Vladislav Vaintroub authored
      status
      
      The problem appears to be a race condition, when service is being
      stopped right after startup. We set the service status to SERVICE_RUNNING
      way too early it cannot yet handle stop requests -  initialization has
      not finished and  hEventShutdown  that signals server to stop is not yet
      created. If somebody issues "net stop MySQL" at this time, MySQL is not
      informed about the stop and continues to run as usual, while
      NTService::ServiceMain() stucks forever waiting for mysql's "main" thread
      to finish.
      
      Solution is to remain in SERVICE_START_PENDING status until after server
      initialization  is fully complete and only then change the status to
      SERVICE_RUNNING. In  SERVICE_START_PENDING we do not accept service control
      requests, i.e it is not possible to stop service in that time.
      ea0efe45
  13. 13 Nov, 2008 2 commits
  14. 11 Nov, 2008 1 commit
    • Sergey Vojtovich's avatar
      BUG#38842 - Fix for 25951 seems incorrect · 83f96dcf
      Sergey Vojtovich authored
      With fix for bug 25951 index hints are ignored for fulltext
      searches, as handling of fulltext indexes is different from
      handling regular indexes. Meaning it is not possible to
      implement true index hints support for fulltext indexes within
      the scope of current fulltext architecture.
      
      The problem is that prior to fix for bug 25951, some useful
      index hints still could be given for boolean mode searches.
      
      This patch implements special index hints support for fulltext
      indexes with the following characteristics:
      - all index hints are still ignored for NLQ mode searches -
        it cannot work without an index;
      - for 5.1 and up index hints FOR ORDER BY and FOR GROUP BY are
        still ignored for fulltext indexes;
      - boolean mode searches honor USE/FORCE/IGNORE INDEX hints;
      - as opposed to index hints for regular indexes, index hints
        for fulltext BOOLEAN mode searches affect the usage of the
        index for the whole query.
      83f96dcf
  15. 10 Nov, 2008 1 commit