1. 10 Jun, 2011 4 commits
    • Sunanda Menon's avatar
      increased the version number to .15 · 7e39ef17
      Sunanda Menon authored
      7e39ef17
    • Dmitry Shulga's avatar
    • Tor Didriksen's avatar
    • Dmitry Shulga's avatar
      Fixed bug#11753738 (formely known as bug#45235) - 5.1 DOES NOT SUPPORT 5.0-ONLY · 8867ad80
      Dmitry Shulga authored
      SYNTAX TRIGGERS IN ANY WAY
      
      Table with triggers which were using deprecated (5.0-only) syntax became
      unavailable for any DML and DDL after upgrade to 5.1 version of server.
      Attempt to execute any statement on such a table resulted in parsing
      error reported. Since this included DROP TRIGGER and DROP TABLE
      statements (actually, the latter was allowed but was not functioning
      properly for such tables) it was impossible to fix the problem without
      manual operations on .TRG and .TRN files in data directory.
      
      The problem was that failure to parse trigger body (due to 5.0-only
      syntax) when opening trigger file for a table prevented the table
      from being open. This made all operations on the table impossible
      (except DROP TABLE which due to peculiarity in its implementation
      dropped the table but left trigger files around).
      
      This patch solves this problem by silencing error which occurs when
      we parse trigger body during table open. Error message is preserved
      for the future use and table is marked as having a broken trigger.
      We also try to analyze parse tree to recover trigger name, which
      will be needed in order to drop the broken trigger. DML statements
      which invoke triggers on the table marked as having broken trigger
      are prohibited and emit saved error message. The same happens for
      DDL which change triggers except DROP TRIGGER and DROP TABLE which
      try their best to do what was requested. Table becomes no longer
      marked as having broken trigger when last such trigger is dropped.
      8867ad80
  2. 09 Jun, 2011 9 commits
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · cfb1f299
      Marko Mäkelä authored
      cfb1f299
    • Marko Mäkelä's avatar
      Disable a debug assertion that was added to track down Bug#12612184. · c8419fac
      Marko Mäkelä authored
      row_build(): The record may contain null BLOB pointers when the server
      is rolling back an insert that was interrupted by a server crash.
      c8419fac
    • Dmitry Shulga's avatar
    • Dmitry Shulga's avatar
      Follow-up for patch of bug#11764334. · ef3c145d
      Dmitry Shulga authored
      ef3c145d
    • Dmitry Shulga's avatar
    • Dmitry Shulga's avatar
      Fixed bug#11764334 (formerly bug#57156): ALTER EVENT CHANGES · 1cc304e3
      Dmitry Shulga authored
      THE EVENT STATUS.
      
      Any ALTER EVENT statement on a disabled event enabled it back
      (unless this ALTER EVENT statement explicitly disabled the event).
      
      The problem was that during processing of an ALTER EVENT statement
      value of status field was overwritten unconditionally even if new
      value was not specified explicitly. As a consequence this field
      was set to default value for status which corresponds to ENABLE.
      
      The solution is to check if status field was explicitly specified in
      ALTER EVENT statement before assigning new value to status field.
      1cc304e3
    • Dmitry Lenev's avatar
      Fix for bug #11759990 - "52354: 'CREATE TABLE .. LIKE ... ' · 95f1b676
      Dmitry Lenev authored
      STATEMENTS FAIL".
      
      Attempt to execute CREATE TABLE LIKE statement on a MyISAM
      table with INDEX or DATA DIRECTORY options specified as a
      source resulted in "MyISAM table '...' is in use..." error.
      According to our documentation such a statement should create
      a copy of source table with DATA/INDEX DIRECTORY options
      omitted.
      
      The problem was that new implementation of CREATE TABLE LIKE
      statement in 5.5 tried to copy value of INDEX and DATA DIRECTORY
      parameters from the source table. Since in description of source
      table this parameters also included name of this table, attempt
      to create target table with these parameter led to file name
      conflict and error.
      
      This fix addresses the problem by preserving documented and
      backward-compatible behavior. I.e. by ensuring that contents
      of DATA/INDEX DIRECTORY clauses for the source table is
      ignored when target table is created.
      95f1b676
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · b1fc801a
      Marko Mäkelä authored
      b1fc801a
    • Marko Mäkelä's avatar
      BLOB instrumentation for Bug#12612184 Race condition in row_upd_clust_rec() · 6d20340c
      Marko Mäkelä authored
      If UNIV_DEBUG or UNIV_BLOB_LIGHT_DEBUG is enabled, add
      !rec_offs_any_null_extern() assertions, ensuring that records do not
      contain null pointers to externally stored columns in inappropriate
      places.
      
      btr_cur_optimistic_update(): Assert !rec_offs_any_null_extern().
      Incomplete records must never be updated or deleted. This assertion
      will cover also the pessimistic route.
      
      row_build(): Assert !rec_offs_any_null_extern(). Search tuples must
      never be built from incomplete index entries.
      
      row_rec_to_index_entry(): Assert !rec_offs_any_null_extern() unless
      ROW_COPY_DATA is requested. ROW_COPY_DATA is used for
      multi-versioning, and therefore it might be valid to copy the most
      recent (uncommitted) version while it contains a null pointer to
      off-page columns.
      
      row_vers_build_for_consistent_read(),
      row_vers_build_for_semi_consistent_read(): Assert !rec_offs_any_null_extern()
      on all versions except the most recent one.
      
      trx_undo_prev_version_build(): Assert !rec_offs_any_null_extern() on
      the previous version.
      
      rb:682 approved by Sunny Bains
      6d20340c
  3. 08 Jun, 2011 1 commit
  4. 07 Jun, 2011 3 commits
  5. 06 Jun, 2011 5 commits
  6. 03 Jun, 2011 11 commits
  7. 02 Jun, 2011 1 commit
  8. 01 Jun, 2011 5 commits
    • Bjorn Munch's avatar
      Followup to 12607800, testing it in PB2 didn't work, trying again · 46ce8ecd
      Bjorn Munch authored
      Be more explicit about path to (potential) plugin tests dirs
      46ce8ecd
    • Jon Olav Hauglid's avatar
      Bug#11853126 RE-ENABLE CONCURRENT READS WHILE CREATING · 95cbbe56
      Jon Olav Hauglid authored
                   SECONDARY INDEX IN INNODB
      
      This is a follow-up patch.
      
      This patch moves part of the new test coverage to a test
      file that is only run on debug builds since it used debug-
      only features and therefore broke the test case on
      release builds.
      95cbbe56
    • Bjorn Munch's avatar
      Bug #12607800 ADD HOOK TO INSTALL TESTS FROM IMPORTED FEATURE TREES · ae62ccef
      Bjorn Munch authored
      Sets INSTALL_PLUGINTESTDIR if any plugin/*/tests exist
      ae62ccef
    • Vinay Fisrekar's avatar
      Adding testcases for WL#5743 InnoDB: Lift the limit of index key prefixes · a115291b
      Vinay Fisrekar authored
      innodb_prefix_index_liftedlimit.test used for functional testing of increase in prefix index limit
      a115291b
    • Jon Olav Hauglid's avatar
      Bug#11853126 RE-ENABLE CONCURRENT READS WHILE CREATING · f21fd6e4
      Jon Olav Hauglid authored
                   SECONDARY INDEX IN INNODB
      
      The patches for Bug#11751388 and Bug#11784056 enabled concurrent
      reads while creating secondary indexes in InnoDB. However, they
      introduced a regression. This regression occured if ALTER TABLE
      failed after the index had been added, for example during the
      lock upgrade needed to update .FRM. If this happened, InnoDB
      and the server got out of sync with regards to which indexes
      actually existed. Therefore the patch for Bug#11815600 again
      disabled concurrent reads.
      
      This patch re-enables concurrent reads. The original regression
      is fixed by splitting the ADD INDEX operation into two parts.
      First the new index is created but not made active. This is
      done while concurrent reads are allowed. The second part of
      the operation makes the index active (or reverts the change).
      This is done after lock upgrade, which prevents the original
      regression.
      
      In order to implement this change, the patch changes the storage
      API for in-place index creation. handler::add_index() is split
      into two functions, handler_add_index() and
      handler::final_add_index(). The former for creating indexes without
      making them visible and the latter for commiting (i.e. making
      visible) new indexes or reverting the changes.
      
      Large parts of this patch were written by Marko Mäkelä.
      
      Test case added to innodb_mysql_lock.test.
      f21fd6e4
  9. 31 May, 2011 1 commit