1. 13 May, 2011 5 commits
    • Marc Alff's avatar
      Bug#12552516 LF_HASH REQUIRES MY_THREAD_INIT() · d343f5e3
      Marc Alff authored
      Before this fix, a thread instrumented for the performance schema,
      that would perform file io operations, could crash inside the LF_HASH
      implementation, in cases when my_thread_init is not called.
      
      The crash itself has not been reported in 5.5 but similar crashes have
      been found in 5.6-based development branches, using LF_HASH for
      more instrumentation.
      
      The possibility of a crash in 5.5 is confirmed by code analysis.
      
      The problem is that, when my_thread_init() is not called,
      which can happen for threads in storage engines or thirs party code,
      my_thread_var is NULL.
      
      Using my_thread_var->stacks_ends_here in mysys/lf_alloc-pin.c is unsafe.
      
      Given that my_thread_var is used:
      - only for stacks_ends_here
      - only on platform with HAVE_ALLOCA
      - only when there is enough room on the stack
      and given that the LF_HASH implementation has a fallback
      algorythm implemented already when using alloca is not possible,
      using my_thread_var->stacks_ends_here is in fact not a strict requirement,
      and can be relaxed.
      
      The fix is to:
      - test explicitly if my_thread_var is NULL, to account for cases
        when my_thread_init() is not used by the calling thread.
      - not use alloca in this case, and rely on the fall back code already in place.
        so that the LF_HASH can be supported even without my_thread_init().
      
      The implementation of mysys/lf_alloc-pin.c has been fixed to support this new usage.
      The units tests in unittest/mysys/lf-t.c have been adjusted accordingly.
      d343f5e3
    • Bjorn Munch's avatar
      null upmerge · 94d657bf
      Bjorn Munch authored
      94d657bf
    • Bjorn Munch's avatar
      merge from 5.1-mtr · 067fa4a5
      Bjorn Munch authored
      067fa4a5
    • Bjorn Munch's avatar
      merge from 5.5-mtr · 0610c9a7
      Bjorn Munch authored
      0610c9a7
    • MySQL Build Team's avatar
      changed the VERSION tag to 14 · cb0f843e
      MySQL Build Team authored
      cb0f843e
  2. 12 May, 2011 14 commits
  3. 11 May, 2011 7 commits
    • Luis Soares's avatar
      BUG#12416700 · f38dff98
      Luis Soares authored
      Automerged bzr bundle from bug report into latest mysql-5.5.
      f38dff98
    • Magnus Blåudd's avatar
      Merge bug 12384993 · d4f1d04f
      Magnus Blåudd authored
      d4f1d04f
    • Alexander Nozdrin's avatar
      Ignore auto-generated files. · 40de2831
      Alexander Nozdrin authored
      40de2831
    • Georgi Kodinov's avatar
      merge from mysql-5.5 · ecfbdbd7
      Georgi Kodinov authored
      ecfbdbd7
    • MySQL Build Team's avatar
      Cloning of the 5.5.13 release from Mysql-5.5, · 9337a330
      MySQL Build Team authored
      increase the version number by two
      9337a330
    • Georgi Kodinov's avatar
      Bug #11744875: 4082: integer lengths cause truncation with distinct concat · 5a2ccea2
      Georgi Kodinov authored
      and innodb
      
      The 5.5 version of the patch.
      
      The server doesn't restrict the data that can be inserted into integer columns 
      with explicitly specified length that's smaller than what the type can handle,
      e.g. 1234 can be inserted into an INT(2) column just fine.
      Thus, when calcualting the maximum width of expressions involving such 
      restricted integer columns we need to use the implicit maximum width of 
      the field instead of the explicitly speficied one.
      Fixed the server to use the implicit maximum in such cases and made sure 
      the implicit maximum is addjusted the same way as the explicit one wrt
      signedness.
      
      Fixed several test case results (ctype_*.result, metadata.result and 
      type_ranges.result) to reflect the extended column widths.
      
      Added a regression test case in distinct.test.
      
      Note : this is the behavior preserving fix that makes 5.5 behave as 5.1 and 
      earlier. In the mysql trunk we'll add a insert time check for the explict 
      maximum size.
      5a2ccea2
    • Magnus Blåudd's avatar
      Bug#12384993 EXTRA/RPL_TEST/CHECK_TYPE.INC NEED SUPPORT FOR SPECIFIC ENGINE · 46c08b94
      Magnus Blåudd authored
       - add support for choosing the engine of test
          table(t1) with $engine_type
       - add primary key to the test table(t1) to support
         replication of BLOB/TEXT (also with ENGINE=ndb)
       - change the suppression since the warning printed to error log
        now says "Column 1"
      46c08b94
  4. 10 May, 2011 4 commits
  5. 09 May, 2011 4 commits
    • Serge Kozlov's avatar
      automerge 5.1->5.5 · 724cc400
      Serge Kozlov authored
      724cc400
    • Serge Kozlov's avatar
      WL#5867 · 79e4b561
      Serge Kozlov authored
      Replaced the error code by error name
      79e4b561
    • Bjorn Munch's avatar
      WL #5680 MTR results written to file with well defined format · cb15b071
      Bjorn Munch authored
      Added --result-file option, which will produce var/mtr-results.txt
      Output has a simple format:
      
      <tag> : <value>  for general info on test run
      {
        <tag> : <value>
        ....
      }                for each test
      
      Output from failed tests are included but may be truncated.
      See WL for more details.
      cb15b071
    • Alexander Nozdrin's avatar
      Patch for Bug#12362125 (SP INOUT HANDLING IS BROKEN FOR TEXT TYPE). · 8f795799
      Alexander Nozdrin authored
      Attempts to assign value to a table column from trigger by using
      NEW.column_name pseudo-variable might result in garbled data.
      That happened when:
        - the column had a BLOB-based type (e.g. TEXT)
          and
        - the value being assigned was retrieved from stored routine variable
          of the same type.
      
      The problem was that BLOB values were not copied correctly in this
      case. Instead of doing a copy of a real value, the value's representation
      in record buffer was copied. This representation is essentially a
      pointer to a buffer associated with the virtual table for routine
      variables where the real value is stored. Since this buffer got
      freed once trigger was left or could have changed its contents when
      new value was assigned to corresponding routine variable such a shallow
      copying resulted in garbled data in NEW.colum_name column.
      
      It worked in 5.1 due to a subtle bug in create_virtual_tmp_table():
        - in 5.1 create_virtual_tmp_table() returned a table which
          had db_low_byte_first == false.
        - in 5.5 and up create_virtual_tmp_table() returns a table which
          has db_low_byte_first == true.
      Actually, db_low_byte_first == false only for ISAM storage engine,
      which was deprecated and removed in 5.0.
      
      Having db_low_byte_first == false led to getting false in the
      complex condition for the 2nd "if" in field_conv(), which in turn
      led to copy-blob-behavior as a fall-back strategy:
        - to->table->s->db_low_byte_first was true (correct value)
        - from->table->s->db_low_byte_first was false (incorrect value)
      
      In 5.5 and up that condition is true, which means blob-values are
      not copied.
      8f795799
  6. 06 May, 2011 6 commits
    • Alexander Nozdrin's avatar
      Patch for Bug#12374486 - SEVERE MEMORY LEAK IN PREPARED STATEMENTS · 32a41e5a
      Alexander Nozdrin authored
      THAT CALL STORED PROCEDURES.
      
      The bug was introduced by WL#4435. The problem was that if a stored
      procedure generated a few result sets with different set of columns,
      a new memory would be allocated after every EXECUTE for every
      result set.
      
      The fix is to introduce a new memory root in scope of MYSQL_STMT,
      and to store result-set metadata in that memory root.
      32a41e5a
    • Alexander Nozdrin's avatar
      Patch for Bug#11848763 / 60025 · acbe8238
      Alexander Nozdrin authored
      (SUBSTRING inside a stored function works too slow).
      
      The user-visible problem was that the server started to consume memory if a
      stored-routine of some sort is executed subsequently. The memory was freed
      only after the corresponding connection was closed.
      
      Technically, the problem was that the memory needed for temporary string
      conversions was allocated on the connection ("persistent") memory root,
      instead of statement one.
      
      The root cause of this problem was the incorrect patch for Bug 55744.
      That patch wrongly fixed a crash in prepared-statement-mode introduced by
      another patch. The patch for Bug 55744 used wrong condition to check if
      prepared statement mode is active (or whether the connection-scoped or
      statement-scoped memory root should be used). The thing is that for
      prepared statements such conversions should be done in the connection
      memory root, so that that the transformations of item-tree were correctly
      remembered in the PREPARE-phase.
      
      The fix is to use proper condition to detect prepared-statement-mode and
      use proper memory root.
      acbe8238
    • Alexander Nozdrin's avatar
      Preliminary patch for Bug#11848763 / 60025 · 52efe3e0
      Alexander Nozdrin authored
      (SUBSTRING inside a stored function works too slow).
      
      Background:
        - THD classes derives from Query_arena, thus inherits the 'state'
          attribute and related operations (is_stmt_prepare() & co).
      
        - Although these operations are available in THD, they must not
          be used. THD has its own attribute to point to the active
          Query_arena -- stmt_arena.
      
        - So, instead of using thd->is_stmt_prepare(),
          thd->stmt_arena->is_stmt_prepare() must be used. This was the root
          cause of Bug 60025.
      
      This patch enforces the proper way of calling those operations.
      is_stmt_prepare() & co are declared as private operations
      in THD (thus, they are hidden from being called on THD instance).
      
      The patch tries to minimize changes in 5.5.
      52efe3e0
    • Magnus Blåudd's avatar
      Add --with-debug=full support to BUILD/* scripts, this option has been lost · 167d2896
      Magnus Blåudd authored
      between 5.1 and 5.5, it's purpose is to set the compiler flags in a way that
      does not optimize away the call stack(i.e don't use any -OX flags at all)
      167d2896
    • Magnus Blåudd's avatar
      Merge in patch for bug 12380149 · 5b141170
      Magnus Blåudd authored
      5b141170
    • Sunanda Menon's avatar
      Merge from mysql-5.0.93-release · 68fac74b
      Sunanda Menon authored
      68fac74b