1. 20 Jul, 2010 4 commits
    • Davi Arnaut's avatar
      182d1dd8
    • Davi Arnaut's avatar
      Bug#54453: Failing assertion: trx->active_trans when renaming a · b0035c76
      Davi Arnaut authored
                 table with active trx
      
      Essentially, the problem is that InnoDB does a implicit commit
      when a cursor (table handler) is unlocked/closed, creating
      a dissonance between the transaction state within the server
      layer and the storage engine layer. Theoretically, a statement
      transaction can encompass several table instances in a similar
      manner to a multiple statement transaction, hence it does not
      make sense to limit a statement transaction to the lifetime of
      the table instances (cursors) used within it.
      
      Since this particular instance of the problem is only triggerable
      on 5.1 and is masked on 5.5 due 2PC being skipped (assertion is in
      the prepare phase of a 2PC), the solution (which is less risky) is
      to explicitly end the transaction before the cached table is unlock
      on rename table.
      
      The patch is to be null merged into trunk.
      
      mysql-test/include/commit.inc:
        Fix counters, the binlog engine does not get involved anymore.
      mysql-test/suite/innodb_plugin/r/innodb_bug54453.result:
        Add test case result for Bug#54453
      mysql-test/suite/innodb_plugin/t/innodb_bug54453.test:
        Add test case for Bug#54453
      sql/sql_table.cc:
        End transaction as otherwise InnoDB will end it behind our backs.
      b0035c76
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-bugfixing. · 0974a9b2
      Alexander Nozdrin authored
      0974a9b2
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-merge. · fdfbb829
      Alexander Nozdrin authored
      fdfbb829
  2. 19 Jul, 2010 10 commits
    • Davi Arnaut's avatar
      Merge into mysql-trunk-merge.. · 84d2ae22
      Davi Arnaut authored
      84d2ae22
    • Davi Arnaut's avatar
      Merge of mysql-5.1 into mysql-5.1-bugteam. · dfaf73a9
      Davi Arnaut authored
      dfaf73a9
    • Evgeny Potemkin's avatar
      Bug#49771: Incorrect MIN/MAX for date/time values. · 4777370b
      Evgeny Potemkin authored
      This bug is a design flaw of the fix for the bug#33546. It assumed that an
      item can be used only in one comparison context, but actually it isn't the
      case. Item_cache_datetime is used to store result for MIX/MAX aggregate
      functions. Because Arg_comparator always compares datetime values as INTs when
      possible the Item_cache_datetime most time caches only INT value. But
      since all datetime values has STRING result type MIN/MAX functions are asked
      for a STRING value when the result is being sent to a client. The
      Item_cache_datetime was designed to avoid conversions and get INT/STRING
      values from an underlying item, but at the moment the values is asked
      underlying item doesn't hold it anymore thus wrong result is returned.
      Beside that MIN/MAX aggregate functions was wrongly initializing cached result
      and this led to a wrong result.
      
      The Item::has_compatible_context helper function is added. It checks whether
      this and given items has the same comparison context or can be compared as
      DATETIME values by Arg_comparator. The equality propagation optimization is
      adjusted to take into account that items which being compared as DATETIME
      can have different comparison contexts.
      The Item_cache_datetime now converts cached INT value to a correct STRING
      DATETIME value by means of number_to_datetime & my_TIME_to_str functions.
      The Arg_comparator::set_cmp_context_for_datetime helper function is added. 
      It sets comparison context of items being compared as DATETIMEs to INT if
      items will be compared as longlong.
      The Item_sum_hybrid::setup function now correctly initializes its result
      value.
      In order to avoid unnecessary conversions Item_sum_hybrid now states that it
      can provide correct longlong value if the item being aggregated can do it
      too.
      
      mysql-test/r/group_by.result:
        Added a test case for the bug#49771.
      sql/item.cc:
        Bug#49771: Incorrect MIN/MAX for date/time values.
        The equality propagation mechanism is adjusted to take into account that
        items which being compared as DATETIME can have different comparison
        contexts.
        The Item_cache_datetime now converts cached INT value to a correct STRING
        DATETIME/TIME value.
      sql/item.h:
        Bug#49771: Incorrect MIN/MAX for date/time values.
        The Item::has_compatible_context helper function is added. It checks whether
        this and given items has the same comparison context or can be compared as
        DATETIME values by Arg_comparator.
        Added Item_cache::clear helper function.
      sql/item_cmpfunc.cc:
        Bug#49771: Incorrect MIN/MAX for date/time values.
        The Arg_comparator::set_cmp_func now sets the correct comparison context
        for items being compared as DATETIME values.
      sql/item_cmpfunc.h:
        Bug#49771: Incorrect MIN/MAX for date/time values.
        The Arg_comparator::set_cmp_context_for_datetime helper function is added. 
        It sets comparison context of items being compared as DATETIMEs to INT if
        items will be compared as longlong.
      sql/item_sum.cc:
        Bug#49771: Incorrect MIN/MAX for date/time values.
        The Item_sum_hybrid::setup function now correctly initializes its result
        value.
      sql/item_sum.h:
        Bug#49771: Incorrect MIN/MAX for date/time values.
        In order to avoid unnecessary conversions Item_sum_hybrid now states that it
        can provide correct longlong value if the item being aggregated can do it
        too.
      4777370b
    • Georgi Kodinov's avatar
      fix tree names · d79e6c2e
      Georgi Kodinov authored
      d79e6c2e
    • MySQL Build Team's avatar
      5.1.49 push to mysql-5.1 · 2eabb334
      MySQL Build Team authored
      2eabb334
    • Jonathan Perkin's avatar
      bug#55250: 5.5.5-m3 incorrectly compiled with exceptions on Solaris/x86 · 967ee2c6
      Jonathan Perkin authored
      Put '-features=no%except' back into Solaris/x86 CXXFLAGS.
      967ee2c6
    • Alexander Nozdrin's avatar
      Manual merge from mysql-trunk. · b5eac2b2
      Alexander Nozdrin authored
      Conflicts:
        - scripts/CMakeLists.txt
      b5eac2b2
    • unknown's avatar
      Merge from mysql-5.5.5-m3-release · e875a1d6
      unknown authored
      e875a1d6
    • Jon Olav Hauglid's avatar
      manual merge from mysql-5.1-bugteam · 80371ba6
      Jon Olav Hauglid authored
      80371ba6
    • Jon Olav Hauglid's avatar
      Bug #54734 assert in Diagnostics_area::set_ok_status · 85e5ce0b
      Jon Olav Hauglid authored
      This assert checks that the server does not try to send OK to the
      client if there has been some error during processing. This is done
      to make sure that the error is in fact sent to the client.
      
      The problem was that view errors during processing of WHERE conditions
      in UPDATE statements where not detected by the update code. It therefore
      tried to send OK to the client, triggering the assert.
      The bug was only noticeable in debug builds.
      
      This patch fixes the problem by making sure that the update code
      checks for errors during condition processing and acts accordingly.
      85e5ce0b
  3. 17 Jul, 2010 2 commits
  4. 16 Jul, 2010 20 commits
  5. 15 Jul, 2010 4 commits