1. 09 Aug, 2010 2 commits
    • Jon Olav Hauglid's avatar
      manual merge from mysql-5.1-bugteam · 6d3078e2
      Jon Olav Hauglid authored
      6d3078e2
    • Jon Olav Hauglid's avatar
      Bug #54106 assert in Protocol::end_statement, · cc3be1ae
      Jon Olav Hauglid authored
                 INSERT IGNORE ... SELECT ... UNION SELECT ...
      
      This assert was triggered by INSERT IGNORE ... SELECT. The assert checks that a
      statement either sends OK or an error to the client. If the bug was triggered
      on release builds, it caused OK to be sent to the client instead of the correct
      error message (in this case ER_FIELD_SPECIFIED_TWICE).
      
      The reason the assert was triggered, was that lex->no_error was set to TRUE
      during JOIN::optimize() because of IGNORE. This causes all errors to be ignored.
      However, not all errors can be ignored. Some, such as ER_FIELD_SPECIFIED_TWICE
      will cause the INSERT to fail no matter what. But since lex->no_error was set,
      the critical errors were ignored, the INSERT failed and neither OK nor the
      error message was sent to the client.
      
      This patch fixes the problem by temporarily turning off lex->no_error in
      places where errors cannot be ignored during processing of INSERT ... SELECT.
      
      Test case added to insert.test.
      cc3be1ae
  2. 06 Aug, 2010 5 commits
  3. 05 Aug, 2010 3 commits
  4. 04 Aug, 2010 5 commits
  5. 03 Aug, 2010 7 commits
  6. 02 Aug, 2010 1 commit
  7. 31 Jul, 2010 3 commits
  8. 30 Jul, 2010 14 commits
    • Davi Arnaut's avatar
      Revert revision which disabled the generating of configuration · b5c8757a
      Davi Arnaut authored
      scripts if cmake is available. We need to always generate the
      scripts in order for the dual cmake/autotools support to work.
      b5c8757a
    • Davi Arnaut's avatar
      Bug#45288: pb2 returns a lot of compilation warnings on linux · e260cc3f
      Davi Arnaut authored
      Fix compiler warnings.
      e260cc3f
    • Alexander Nozdrin's avatar
      Update .bzrignore. · d285d75d
      Alexander Nozdrin authored
      d285d75d
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-bugfixing. · b2f80050
      Alexander Nozdrin authored
      ******
      This patch fixes the following bugs:
        - Bug#5889: Exit handler for a warning doesn't hide the warning in
          trigger
        - Bug#9857: Stored procedures: handler for sqlwarning ignored
        - Bug#23032: Handlers declared in a SP do not handle warnings generated
          in sub-SP
        - Bug#36185: Incorrect precedence for warning and exception handlers
      
      The problem was in the way warnings/errors during stored routine execution
      were handled. Prior to this patch the logic was as follows:
      
        - when a warning/an error happens: if we're executing a stored routine,
          and there is a handler for that warning/error, remember the handler,
          ignore the warning/error and continue execution.
      
        - after a stored routine instruction is executed: check for a remembered
          handler and activate one (if any).
      
      This logic caused several problems:
      
        - if one instruction generates several warnings (errors) it's impossible
          to choose the right handler -- a handler for the first generated
          condition was chosen and remembered for activation.
      
        - mess with handling conditions in scopes different from the current one.
      
        - not putting generated warnings/errors into Warning Info (Diagnostic
          Area) is against The Standard.
      
      The patch changes the logic as follows:
      
        - Diagnostic Area is cleared on the beginning of each statement that
          either is able to generate warnings, or is able to work with tables.
      
        - at the end of a stored routine instruction, Diagnostic Area is left
          intact.
      
        - Diagnostic Area is checked after each stored routine instruction. If
          an instruction generates several condition, it's now possible to take a
          look at all of them and determine an appropriate handler.
      b2f80050
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-bugfixing. · 02a0787d
      Alexander Nozdrin authored
      02a0787d
    • Luis Soares's avatar
    • Luis Soares's avatar
      abbcf12e
    • Luis Soares's avatar
      70928da9
    • Georgi Kodinov's avatar
      null merge · b4f1c833
      Georgi Kodinov authored
      b4f1c833
    • Georgi Kodinov's avatar
    • Georgi Kodinov's avatar
      merge · c8967495
      Georgi Kodinov authored
      c8967495
    • Luis Soares's avatar
      Manual merge from mysql-5.1-bugteam into mysql-trunk-merge. · f7202b84
      Luis Soares authored
      Revert BUG#34283.
      
      Conflicts
      =========
        Text conflict in sql/sql_load.cc
        1 conflicts encountered.
      f7202b84
    • Luis Soares's avatar
      Revert patch for BUG#34283. Causing lots of test failures in PB2, · c8adc1d5
      Luis Soares authored
      mostly because existing test result files were not updated.
      c8adc1d5
    • Georgi Kodinov's avatar
      Bug #55188: GROUP BY, GROUP_CONCAT and TEXT - inconsistent results · d765e30a
      Georgi Kodinov authored
      In order to be able to check if the set of the grouping fields in a 
      GROUP BY has changed (and thus to start a new group) the optimizer
      caches the current values of these fields in a set of Cached_item 
      derived objects.
      The Cached_item_str, used for caching varchar and TEXT columns,
      is limited in length by the max_sort_length variable.
      A String buffer to store the value with an alloced length of either
      the max length of the string or the value of max_sort_length 
      (whichever is smaller) in Cached_item_str's constructor.
      Then, at compare time the value of the string to compare to was 
      truncated to the alloced length of the string buffer inside 
      Cached_item_str.
      This is all fine and valid, but only if you're not assigning 
      values near or equal to the alloced length of this buffer.
      Because when assigning values like this the alloced length is 
      rounded up and as a result the next set of data will not match the
      group buffer, thus leading to wrong results because of the changed
      alloced_length.
      Fixed by preserving the original maximum length in the 
      Cached_item_str's constructor and using this instead of the 
      alloced_length to limit the string to compare to.
      Test case added.
      d765e30a