1. 18 Jan, 2011 1 commit
  2. 17 Jan, 2011 1 commit
  3. 14 Jan, 2011 1 commit
  4. 12 Jan, 2011 1 commit
  5. 10 Jan, 2011 1 commit
  6. 08 Jan, 2011 1 commit
  7. 07 Jan, 2011 4 commits
  8. 06 Jan, 2011 3 commits
  9. 05 Jan, 2011 4 commits
  10. 04 Jan, 2011 2 commits
    • kevin.lewis@oracle.com's avatar
      43818 - Patch for mysql-5.1-innodb · 66d50854
      kevin.lewis@oracle.com authored
      Avoid handler::info() call for three Information Schema tables;
      TABLE_CONSTRAINTS, KEY_COLUMN_USAGE, & REFERENTIAL_CONTRAINTS
      66d50854
    • Jon Olav Hauglid's avatar
      Bug #50619 assert in handler::update_auto_increment · 78df8c4f
      Jon Olav Hauglid authored
      This assert could be triggered if -1 was inserted into
      an auto increment column by a statement writing more than
      one row.
      
      Unless explicitly given, an interval of auto increment values
      is generated when a statement first needs an auto increment
      value. The triggered assert checks that the auto increment
      counter is equal to or higher than the lower bound of this
      interval.
      
      Generally, the auto increment counter starts at 1 and is
      incremented by 1 each time it is used. However, inserting an
      explicit value into the auto increment column, sets the auto
      increment counter to this value + 1 if this value is higher
      than the current value of the auto increment counter.
      
      This bug was triggered if the explicit value was -1. Since the
      value was converted to unsigned before any comparisons were made,
      it was found to be higher than the current vale of the auto
      increment counter and the counter was set to -1 + 1. This value
      was below the reserved interval and caused the assert to be
      triggered the next time the statement tried to write a row.
      
      With the patch for Bug#39828, this bug is no longer repeatable.
      Now, -1 + 1 is detected as an "overflow" which causes the auto
      increment counter to be set to ULONGLONG_MAX. This avoids hitting
      the assert for the next insert and causes a new interval of
      auto increment values to be generated. This resolves the issue.
      
      This patch therefore only contains a regression test and no code
      changes. Test case added to auto_increment.test.
      78df8c4f
  11. 31 Dec, 2010 1 commit
  12. 29 Dec, 2010 4 commits
  13. 28 Dec, 2010 3 commits
    • Kent Boortz's avatar
      Merge · 920d185f
      Kent Boortz authored
      920d185f
    • Kent Boortz's avatar
      - Added/updated copyright headers · fddb1f1b
      Kent Boortz authored
      - Removed files specific to compiling on OS/2
      - Removed files specific to SCO Unix packaging
      - Removed "libmysqld/copyright", text is included in documentation
      - Removed LaTeX headers for NDB Doxygen documentation
      - Removed obsolete NDB files
      - Removed "mkisofs" binaries
      - Removed the "cvs2cl.pl" script
      - Changed a few GPL texts to use "program" instead of "library"
      fddb1f1b
    • Calvin Sun's avatar
      Fix a build error on Windows, introduced by revision-id: · ac326735
      Calvin Sun authored
      marko.makela@oracle.com-20101221112722-1yxxzzgqtem8bcm7
      
      The fix was suggested by Jimmy.
      ac326735
  14. 27 Dec, 2010 1 commit
  15. 24 Dec, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#57810 case/when/then : Assertion failed: length || !scale · b69b46c7
      Sergey Glukhov authored
      ASSERT happens due to improper calculation of the max_length
      in Item_func_div object, if dividend has max_length == 0 then
      Item_func_div::max_length is set to 0 under some circumstances.
      The fix:
      If decimals == NOT_FIXED_DEC then set
      Item_func_div::max_length to max possible
      DOUBLE length value.
      b69b46c7
  16. 21 Dec, 2010 7 commits
    • Sergey Glukhov's avatar
      automerge · 8b0f0a97
      Sergey Glukhov authored
      8b0f0a97
    • Sergey Glukhov's avatar
      test case fix · 42bed4be
      Sergey Glukhov authored
      42bed4be
    • Sven Sandberg's avatar
      BUG#59084: rpl_do_grant started to fail on FreeBSD (presumably after BUG#49978) · 0d87c6ed
      Sven Sandberg authored
      Problem: master executed a statement that would fail on slave
      (namely, DROP USER 'create_rout_db'@'localhost').
      Then the test did:
        --let $rpl_only_running_threads= 1
        --source include/rpl_reset.inc
      rpl_reset.inc calls rpl_sync.inc, which first checks which of
      the threads are running and then syncs those threads that are
      running. If the SQL thread fails after the check, the sync will
      fail. So there was a race in the test and it failed on some
      slow hosts.
      Fix: Don't replicate the failing statement.
      0d87c6ed
    • Sergey Glukhov's avatar
      Bug#58030 crash in Item_func_geometry_from_text::val_str · c4b29069
      Sergey Glukhov authored
      Item_sum_max/Item_sum_min incorrectly set null_value flag and
      attempt to get result in parent functions leads to crash.
      This happens due to double evaluation of the function argumet.
      First evaluation happens in the comparator and second one
      happens in Item_cache::cache_value().
      The fix is to introduce new Item_cache object which
      holds result of the argument and use this cached value
      as an argument of the comparator.
      c4b29069
    • Marko Mäkelä's avatar
      Bug #55284 Double BLOB free due to lock wait while updating PRIMARY KEY · 91df7abd
      Marko Mäkelä authored
      This bug fix requires that Bug #58912 be fixed as well (bzr revision id
      marko.makela@oracle.com-20101221093919-mcmmgd4zpse9567d). Otherwise,
      another double BLOB free could occur when InnoDB would try to perform
      an update-in-place as delete-and-insert-by-update-in-place.
      
      row_upd_clust_rec_by_insert(): Do not disown the externally stored
      columns from the old record (btr_cur_mark_extern_inherited_fields())
      until after checking the foreign key constraints and successfully
      inserting the updated record. If a lock wait timeout occurs between
      the delete-marking of the old record and the insertion of the updated
      record, mark the columns inherited before retrying the insert.
      Distinguish the state UPD_NODE_INSERT_BLOB from
      UPD_NODE_INSERT_CLUSTERED.
      
      btr_cur_del_mark_set_clust_rec(): Replace the cursor with
      block,rec,index,offsets so that the offsets need not be recalculated.
      Assert that rec is on a clustered index leaf page.
      
      btr_cur_disown_inherited_fields(): Renamed from
      btr_cur_mark_extern_inherited_fields(). Use
      upd_get_field_by_field_no(). Assert that there are externally stored
      columns. Assert that a mini-transaction is passed. Remove the return
      status. (The only caller, row_upd_clust_rec_by_insert(), will have
      determined that some fields have changed ownership.)
      
      btr_cur_mark_dtuple_inherited_extern(): Rename to
      row_upd_clust_rec_by_insert_inherit_func() and declare as static. Add
      the debug parameters rec, offsets. When rec is given, assert that the
      off-page columns match those in the inesrt tuple and that the off-page
      columns are owned by the record. Assert that the non-updated off-page
      columns in the insert tuple are owned, and mark them inherited.
      
      row_upd_clust_rec_by_insert_inherit(): A wrapper macro for
      row_upd_clust_rec_by_insert_inherit_func().
      
      row_undo_mod_upd_exist_sec(): Adjust a comment about
      row_upd_clust_rec_by_insert().
      
      rb:508 approved by Jimmy Yang
      91df7abd
    • Marko Mäkelä's avatar
      Bug#58912 InnoDB unnecessarily avoids update-in-place on column prefix indexes · 2317da0d
      Marko Mäkelä authored
      row_upd_changes_ord_field_binary(): Do not return TRUE if the update
      vector changes a column that is covered by a prefix index, but does
      not change the column prefix. Add the row_ext_t parameter for
      determining whether the prefixes of externally stored columns match.
      
      dfield_datas_are_binary_equal(): Add the parameter len, for comparing
      column prefixes when len > 0.
      
      innodb.test: Add a test case where the patch of Bug #55284 failed
      without this fix.
      
      rb:537 approved by Jimmy Yang
      2317da0d
    • 's avatar
      Bug #56662 Assertion failed: next_insert_id == 0, file .\handler.cc · 16ca2deb
      authored
      Normally, auto_increment value is generated for the column by
      inserting either NULL or 0 into it. NO_AUTO_VALUE_ON_ZERO
      suppresses this behavior for 0 so that only NULL generates
      the auto_increment value. This behavior is also followed by
      a slave, specifically by the SQL Thread, when applying events
      in the statement format from a master. However, when applying
      events in the row format, the flag was ignored thus causing
      an assertion failure:
      "Assertion failed: next_insert_id == 0, file .\handler.cc"
      
      In fact, we never need to generate a auto_increment value for
      the column when applying events in row format on slave. So we
      don't allow it to happen by using 'MODE_NO_AUTO_VALUE_ON_ZERO'.
      
      Refactoring: Get rid of all the sql_mode checks to rows_log_event
      when applying it for avoiding problems caused by the inconsistency
      of the sql_mode on slave and master as the sql_mode is not set for
      Rows_log_event.
      16ca2deb
  17. 20 Dec, 2010 1 commit
    • Sven Sandberg's avatar
      Fixed pb failure. · c676f125
      Sven Sandberg authored
      Problem: Warnings for truncated data were generated on hosts with
      long host names because @@hostname was inserted into a CHAR(40) column.
      Fix: Change CHAR(40) to TEXT.
      c676f125
  18. 19 Dec, 2010 1 commit
    • Sven Sandberg's avatar
      BUG#49978: Replication tests don't clean up replication state at the end · 09c80e12
      Sven Sandberg authored
      Major replication test framework cleanup. This does the following:
       - Ensure that all tests clean up the replication state when they
         finish, by making check-testcase check the output of SHOW SLAVE STATUS.
         This implies:
          - Slave must not be running after test finished. This is good
            because it removes the risk for sporadic errors in subsequent
            tests when a test forgets to sync correctly.
          - Slave SQL and IO errors must be cleared when test ends. This is
            good because we will notice if a test gets an unexpected error in
            the slave threads near the end.
          - We no longer have to clean up before a test starts.
       - Ensure that all tests that wait for an error in one of the slave
         threads waits for a specific error. It is no longer possible to
         source wait_for_slave_[sql|io]_to_stop.inc when there is an error
         in one of the slave threads. This is good because:
          - If a test expects an error but there is a bug that causes
            another error to happen, or if it stops the slave thread without
            an error, then we will notice.
          - When developing tests, wait_for_*_to_[start|stop].inc will fail
            immediately if there is an error in the relevant slave thread.
            Before this patch, we had to wait for the timeout.
       - Remove duplicated and repeated code for setting up unusual replication
         topologies. Now, there is a single file that is capable of setting
         up arbitrary topologies (include/rpl_init.inc, but
         include/master-slave.inc is still available for the most common
         topology). Tests can now end with include/rpl_end.inc, which will clean
         up correctly no matter what topology is used. The topology can be
         changed with include/rpl_change_topology.inc.
       - Improved debug information when tests fail. This includes:
          - debug info is printed on all servers configured by include/rpl_init.inc
          - User can set $rpl_debug=1, which makes auxiliary replication files
            print relevant debug info.
       - Improved documentation for all auxiliary replication files. Now they
         describe purpose, usage, parameters, and side effects.
       - Many small code cleanups:
          - Made have_innodb.inc output a sensible error message.
          - Moved contents of rpl000017-slave.sh into rpl000017.test
          - Added mysqltest variables that expose the current state of
            disable_warnings/enable_warnings and friends.
          - Too many to list here: see per-file comments for details.
      09c80e12
  19. 17 Dec, 2010 2 commits