1. 20 Apr, 2011 4 commits
  2. 18 Apr, 2011 6 commits
  3. 16 Apr, 2011 3 commits
  4. 15 Apr, 2011 9 commits
    • Bjorn Munch's avatar
      null upmerge · 1835ff9e
      Bjorn Munch authored
      1835ff9e
    • Bjorn Munch's avatar
      merge from 5.5 main · 48e8ba69
      Bjorn Munch authored
      48e8ba69
    • Bjorn Munch's avatar
      merge from 5.1 main · 55f97fc7
      Bjorn Munch authored
      55f97fc7
    • Alexander Nozdrin's avatar
      A patch for Bug#11763166 (55847: SHOW WARNINGS returns empty · d86ed609
      Alexander Nozdrin authored
      result set when SQLEXCEPTION is active.
      
      The problem was in a hackish THD::no_warnings_for_error attribute.
      When it was set, an error was not written to Warning_info -- only
      Diagnostics_area state was changed. That means, Diagnostics_area
      might contain error state, which is not present in Warning_info.
      
      The user-visible problem was that in some cases SHOW WARNINGS
      returned empty result set (i.e. there were no warnings) while
      the previous SQL statement failed. According to the MySQL
      protocol errors must be presented in warning list.
      
      The main idea of this patch is to remove THD::no_warnings_for_error.
      There were few places where it was used:
        - sql_admin.cc, handling of REPAIR TABLE USE_FRM.
        - sql_show.cc, when calling fill_schema_table_from_frm().
        - sql_show.cc, when calling fill_table().
      The fix is to either use internal-error-handlers, or to use
      temporary Warning_info storing warnings, which might be ignored.
      
      This patch is needed to fix Bug 11763162 (55843).
      d86ed609
    • Sergey Glukhov's avatar
      5.1 -> 5.5 merge · fad599d4
      Sergey Glukhov authored
      fad599d4
    • Sergey Glukhov's avatar
      Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U · 08924490
      Sergey Glukhov authored
      Some multibyte sequences could be considered by my_mbcharlen() functions
      as multibyte character but more exact my_ismbchar() does not think so.
      In such a case this multibyte sequences is pushed into 'stack' buffer which
      is too small to accommodate the sequence.
      The fix is to allocate stack buffer in
      compliance with max character length.
      
      
      mysql-test/r/loaddata.result:
        test case
      mysql-test/t/loaddata.test:
        test case
      sql/sql_load.cc:
        allocate stack buffer in compliance with max character length.
      08924490
    • Bjorn Munch's avatar
      upmerge 12351213,12360195 · 79f474e9
      Bjorn Munch authored
      79f474e9
    • Bjorn Munch's avatar
      Bug #12360195 MTR DOES NOT IGNORE TABS IN EXPERIMENTAL FILE · 73e6042c
      Bjorn Munch authored
      Instead of just filtering space, filter white space (\s)
      I left the default.experimental file as is, with tabs.
      73e6042c
    • Tor Didriksen's avatar
      Merge fix for Bug#11765713 from 5.1 · caa0c41e
      Tor Didriksen authored
      caa0c41e
  5. 14 Apr, 2011 10 commits
    • Tor Didriksen's avatar
      Bug#11765713 58705: OPTIMIZER LET ENGINE DEPEND ON UNINITIALIZED VALUES CREATED BY OPT_SUM_QU · 072b9645
      Tor Didriksen authored
      Valgrind warnings were caused by comparing index values to an un-initialized field.
      
      
      mysql-test/r/subselect.result:
        New test cases.
      mysql-test/t/subselect.test:
        New test cases.
      sql/opt_sum.cc:
        Add thd to opt_sum_query enabling it to test for errors.
        If we have a non-nullable index, we cannot use it to match null values,
        since set_null() will be ignored, and we might compare uninitialized data.
      sql/sql_select.cc:
        Add thd to opt_sum_query, enabling it to test for errors.
      sql/sql_select.h:
        Add thd to opt_sum_query, enabling it to test for errors.
      072b9645
    • Bjorn Munch's avatar
      Bug #12351213 MTR --VS-CONFIG DOES NOT WORK LIKE MTR_VS_CONFIG · 554762f1
      Bjorn Munch authored
      Fix for --vs-config applied
      Find.pm incorrectly tested an unitialized local variable instead
        of the global, corrected.
      Find.pm is also wrong in 5.5: uses a non-existent global variable. Fix when
        merging up.
      554762f1
    • Bjorn Munch's avatar
      Bug #12360501 MTR --GCOV DOES NOT WORK WITH CMAKE BUILDS · 8510fa3b
      Bjorn Munch authored
      Changed to use $bindir instead of $basedir
      Simplified search for files: find all *.gcno
      Also, .msg and .err files had been mixed up
      8510fa3b
    • Serge Kozlov's avatar
      autocommit 5.1 -> 5.5 · 0f46b2bc
      Serge Kozlov authored
      0f46b2bc
    • Serge Kozlov's avatar
      WL#5867, postfix for binlog_bug23533 · 45d68e63
      Serge Kozlov authored
      45d68e63
    • Sergey Glukhov's avatar
      automerge · d5536aa4
      Sergey Glukhov authored
      d5536aa4
    • Sergey Glukhov's avatar
      5.1 -> 5.5 merge · d986e01e
      Sergey Glukhov authored
      d986e01e
    • Jon Olav Hauglid's avatar
      Bug#12352846 - TRANS_XA_START(THD*): · b64f9a90
      Jon Olav Hauglid authored
                     ASSERTION THD->TRANSACTION.XID_STATE.XID.IS_NULL()
                     FAILED
      
      The triggered assert checks that the previous XA transaction has
      done proper cleanup before a new XA transaction is started.
      The bug that caused it to be triggered was that XA COMMIT did not
      clean up error state if XA COMMIT discovered that the current XA
      transaction had to be rolled back.
      
      This patch fixes the problem by resetting the XA error state
      before XA COMMIT calls ha_rollback_trans(). This allows following
      XA transactions to be started without triggering the assert.
      
      Test case added to xa.test.
      b64f9a90
    • Sergey Glukhov's avatar
      Bug#11756242 48137: PROCEDURE ANALYSE() LEAKS MEMORY WHEN RETURNING NULL · 53474c69
      Sergey Glukhov authored
      There are two problems with ANALYSE():
      
      1. Memory leak 
         it happens because do_select() can overwrite
         JOIN::procedure field(with zero value in our case) and
         JOIN destructor don't free the memory allocated for
         JOIN::procedure. The fix is to save original JOIN::procedure
         before do_select() call and restore it after do_select
         execution.
      
      2. Wrong result
         If ANALYSE() procedure is used for the statement with LIMIT clause
         it could retrun empty result set. It happens because of missing 
         analyse::end_of_records() call. First end_send() function call
         returns NESTED_LOOP_QUERY_LIMIT and second call of end_send() with
         end_of_records flag enabled does not happen. The fix is to return
         NESTED_LOOP_OK from end_send() if procedure is active.
      
      
      mysql-test/r/analyse.result:
        test case
      mysql-test/t/analyse.test:
        test case
      sql/sql_select.cc:
        --save original JOIN::procedure before do_select() call and
          restore it after do_select execution.
        --return NESTED_LOOP_OK from end_send() if procedure is active
      53474c69
    • Magne Mahre's avatar
      Bug#11766320 MYSQL SYMBOLIC LINKS NOT WORKING · 90126425
      Magne Mahre authored
      When MySQL converted from autotools to CMake, the
      preprocessor symbol USE_SYMDIR was omitted by mistake.
      
      Without this symbol, the code for checking .sym files
      is not built.
      
      This patch defines USE_SYMDIR when built on MS Windows.
      90126425
  6. 13 Apr, 2011 6 commits
    • Serge Kozlov's avatar
      autocommit 5.1->5.5 · dbe8cb2e
      Serge Kozlov authored
      dbe8cb2e
    • Serge Kozlov's avatar
      ef48ae09
    • Davi Arnaut's avatar
    • Davi Arnaut's avatar
      Increment the I_P_List counter whenever a element is inserted into · 74b1ebbb
      Davi Arnaut authored
      the list. Previously, the counter would only be incremented if the
      insertion method push_front() was used, in which case the counter
      wouldn't be incremented if a element was inserted using the push_back()
      and/or insert_after() methods.
      
      Currently this does not affect the code base because there isn't any
      code that uses a counted list with the push_back() or insert_after()
      methods.
      74b1ebbb
    • Anitha Gopi's avatar
    • Dmitry Lenev's avatar
      Bug#11938039 "RE-EXECUTION OF FRM-ONLY ALTER TABLE WITH RENAME · cfdb3469
      Dmitry Lenev authored
      CLAUSE FAILS OR ABORTS SERVER".
       
      Attempt to re-execute prepared ALTER TABLE statement which 
      involves .FRM-only changes and also have RENAME clause led
      to unwarranted 'Table doesn't exist' error in production
      builds and assertion failure for debug builds.
       
      This problem stemmed from the fact that for such ALTER TABLE
      mysql_alter_table() code changed table list element for table 
      to be altered when it tried to re-open table under new name. 
      Since this change was not reverted back before next 
      re-execution, it made this statement re-execution unsafe.
       
      This fix addresses this problem by avoiding changing table list
      element from the main table list in such a situation. Instead 
      temporary TABLE_LIST object is used.
      
      mysql-test/r/alter_table.result:
        Added test case for bug#11938039 "RE-EXECUTION OF FRM-ONLY
        ALTER TABLE WITH RENAME CLAUSE FAILS OR ABORTS SERVER".
      mysql-test/t/alter_table.test:
        Added test case for bug#11938039 "RE-EXECUTION OF FRM-ONLY
        ALTER TABLE WITH RENAME CLAUSE FAILS OR ABORTS SERVER".
      sql/sql_table.cc:
        Changed mysql_alter_table() not to modify table list element
        for the table being altered while re-opening table after
        .FRM-only changes. Doing this made .FRM-only ALTER TABLE 
        which also had RENAME clause unsafe for re-execution.
      cfdb3469
  7. 12 Apr, 2011 2 commits