1. 28 May, 2010 2 commits
    • 's avatar
      Manual merge · 8cf9db67
      authored
      8cf9db67
    • 's avatar
      Postfix for BUG#49741 · 5873b972
      authored
      Add code to waiting for a set of errors.
      Add code to waiting for an error instead of waiting for io thread to stop, as
      after 'START SLAVE', the status of io thread is still not running.
      But it doesn't mean slave io thread encounters an error.
      5873b972
  2. 27 May, 2010 8 commits
    • Dmitry Lenev's avatar
      Null-merged the 5.1-only version of fix for bug #46947 · fae1efb5
      Dmitry Lenev authored
      "Embedded SELECT without FOR UPDATE is causing a lock"
      into 5.5 tree. One of 5.5 trees already contains a
      more thorough version of the fix.
      fae1efb5
    • Dmitry Lenev's avatar
      A 5.1-only version of fix for bug #46947 "Embedded SELECT · 78c6a8ca
      Dmitry Lenev authored
      without FOR UPDATE is causing a lock".
      
      SELECT statements with subqueries referencing InnoDB tables
      were acquiring shared locks on rows in these tables when they
      were executed in REPEATABLE-READ mode and with statement or
      mixed mode binary logging turned on.
      
      This was a regression which were introduced when fixing
      bug 39843.
      
      The problem was that for tables belonging to subqueries
      parser set TL_READ_DEFAULT as a lock type. In cases when
      statement/mixed binary logging at open_tables() time this
      type of lock was converted to TL_READ_NO_INSERT lock at
      open_tables() time and caused InnoDB engine to acquire
      shared locks on reads from these tables. Although in some
      cases such behavior was correct (e.g. for subqueries in
      DELETE) in case of SELECT it has caused unnecessary locking.
      
      This patch implements minimal version of the fix for the
      specific problem described in the bug-report which supposed
      to be not too risky for pushing into 5.1 tree.
      The 5.5 tree already contains a more appropriate solution
      which also addresses other related issues like bug 53921
      "Wrong locks for SELECTs used stored functions may lead
      to broken SBR".
      
      This patch tries to solve the problem by ensuring that
      TL_READ_DEFAULT lock which is set in the parser for
      tables participating in subqueries at open_tables()
      time is interpreted as TL_READ_NO_INSERT or TL_READ.
      TL_READ is used only if we know that this is a SELECT
      and that this particular table is not used by a stored
      function.
      
      Test coverage is added for both InnoDB and MyISAM.
      
      This patch introduces an "incompatible" change in locking
      scheme for subqueries used in SELECT ... FOR UPDATE and
      SELECT .. IN SHARE MODE.
      
      In 4.1 (as well as in 5.0 and 5.1 before fix for bug 39843)
      the server would use a snapshot InnoDB read for subqueries
      in SELECT FOR UPDATE and SELECT .. IN SHARE MODE statements,
      regardless of whether the binary log is on or off.
      
      If the user required a different type of read (i.e. locking
      read), he/she could request so explicitly by providing FOR
      UPDATE/IN SHARE MODE clause for each individual subquery.
      
      The patch for bug 39843 broke this behaviour (which was not
      documented or tested), and started to use locking reads for
      all subqueries in SELECT ... FOR UPDATE/IN SHARE MODE.
      This patch restores 4.1 behaviour.
      
      This patch should be mostly null-merged into 5.5 tree.
      78c6a8ca
    • Sergey Glukhov's avatar
      mysql-5.1-bugteam->mysql-trunk-merge · d7c73e79
      Sergey Glukhov authored
      d7c73e79
    • Sergey Glukhov's avatar
      Bug#52005 'JOIN_TAB->dependent' may be incorrectly propageted for multilevel outer joins · fa3570f9
      Sergey Glukhov authored
      There are two problems:
      1. In simplify_joins function we calculate table dependencies. If STRAIGHT_JOIN hint
      is used for whole SELECT we do not count it and as result some dependendecies
      might be lost. It leads to incorrect table order which is returned by
      join_tab_cmp_straight() function.
      2. make_join_statistics() calculate the transitive closure for relations a particular
      JOIN_TAB is 'dependent on'.
      We aggregate the dependent table_map of a JOIN_TAB by adding dependencies from other
      tables which we depend on. However, this may also cause new dependencies to be
      available after we have completed processing a certain JOIN_TAB.
      Both these problems affect condition pushdown and as result condition might be pushed
      into wrong table which leads to crash or even omitted which leads to wrong result.
      The fix:
      1. Use modified 'transitive closure' algorithm provided by Ole John Aske
      2. Update table dependences in simplify_joins according to 
         global STRAIGHT_JOIN hint.
      Note: the patch also fixes bugs 46091 & 51492
      fa3570f9
    • Alexey Kopytov's avatar
      eaea879d
    • Alexey Kopytov's avatar
      Manual merge from mysql-5.1-bugteam to mysql-trunk-merge. · 17325b8d
      Alexey Kopytov authored
      Null-merged patch for bug 53907.
      
      Conflicts:
      
         conflict      sql/sql_parse.cc
      17325b8d
    • Alexey Kopytov's avatar
      Automerge. · 54a006fa
      Alexey Kopytov authored
      54a006fa
    • Alexey Kopytov's avatar
      Automerge. · b19c8805
      Alexey Kopytov authored
      b19c8805
  3. 26 May, 2010 3 commits
  4. 25 May, 2010 8 commits
    • Ramil Kalimullin's avatar
      Manual merge. · 442e0f01
      Ramil Kalimullin authored
      442e0f01
    • Alexey Kopytov's avatar
      Bug #53830: !table || (!table->read_set || · 8fabbdd7
      Alexey Kopytov authored
                   bitmap_is_set(table->read_set, field_index))
      
      UPDATE on an InnoDB table modifying the same index that is used
      to satisfy the WHERE condition could trigger a debug assertion
      under some circumstances.
      
      Since for engines with the HA_PRIMARY_KEY_IN_READ_INDEX flag
      set results of an index scan on a secondary index are appended
      by the primary key value, if a query involves only columns from
      the primary key and a secondary index, the latter is considered
      to be covering.
      
      That tricks mysql_update() to mark for reading only columns
      from the secondary index when it does an index scan to retrieve
      rows to update in case a part of that key is also being
      updated. However, there may be other columns in WHERE that are
      part of the primary key, but not the secondary one.
      
      What we actually want to do in this case is to add index
      columns to the existing WHERE columns bitmap rather than
      replace it.
      8fabbdd7
    • Ramil Kalimullin's avatar
      Automerge. · 422621a4
      Ramil Kalimullin authored
      422621a4
    • Ramil Kalimullin's avatar
      Fix for bug #53907: Table dump command can be abused to dump arbitrary tables. · edfea7d5
      Ramil Kalimullin authored
      Problem: one with SELECT privilege on some table may dump other table
      performing COM_TABLE_DUMP command due to missed check of the table name.
      
      Fix: check the table name.
      edfea7d5
    • Mattias Jonsson's avatar
      merge · 427436d4
      Mattias Jonsson authored
      427436d4
    • Davi Arnaut's avatar
      Bug#53908: compile failure with embedded enabled · 5f5e23fe
      Davi Arnaut authored
      This fixes a recently introduced regression, where a variable is
      not defined for the embedded server. Although the embedded server
      is not supported in 5.0, make it at least compile.
      5f5e23fe
    • Jonathan Perkin's avatar
      bug#49968: Properly define HAVE_ERRNO_AS_DEFINE for the appropriate · baa8f012
      Jonathan Perkin authored
      OpenBSD releases.
      
      Apply patch from Brad Smith, thanks!
      baa8f012
    • 's avatar
      Postfix BUG#49741 · 69c9dbab
      authored
      69c9dbab
  5. 24 May, 2010 3 commits
    • Alexander Nozdrin's avatar
      Fix for Bug#53925 (valgrind failures in rpl.rpl_get_master_version_and_clock · f5446403
      Alexander Nozdrin authored
      in mysql-trunk-merge).
      
      There were two problems:
        - a mistake during merge of a patch for Bug 52629 from 5.1;
        - MTR treated auxilary output of newer valgrind as an error.
      
      The fixes are:
        - Fix merge error;
        - Teach MTR to skip 'HEAP summary' section of valgrind output.
      f5446403
    • Alexey Kopytov's avatar
      Fixed an incorrectly merged .result file. · 71929d76
      Alexey Kopytov authored
      71929d76
    • 's avatar
      Bug #49741 test files contain explicit references to bin/relay-log positions · cc054408
      authored
      Some of the test cases reference to binlog position and
      these position numbers are written into result explicitly.
      It is difficult to maintain if log event format changes. 
      
      There are a couple of cases explicit position number appears, 
      we handle them in different ways
      A. 'CHANGE MASTER ...' with MASTER_LOG_POS or/and RELAY_LOG_POS options
         Use --replace_result to mask them.
      B. 'SHOW BINLOG EVENT ...'
         Replaced by show_binlog_events.inc or wait_for_binlog_event.inc. 
         show_binlog_events.inc file's function is enhanced by given
         $binlog_file and $binlog_limit.
      C. 'SHOW SLAVE STATUS', 'show_slave_status.inc' and 'show_slave_status2.inc'
         For the test cases just care a few items in the result of 'SHOW SLAVE STATUS',
         only the items related to each test case are showed.
         'show_slave_status.inc' is rebuild, only the given items in $status_items
         will be showed.
         'check_slave_is_running.inc' and 'check_slave_no_error.inc'
         and 'check_slave_param.inc' are auxiliary files helping
         to show running status and error information easily.
      cc054408
  6. 23 May, 2010 2 commits
    • Alexey Kopytov's avatar
      Manual merge of mysql-5.1-bugteam to mysql-trunk-merge. · b69a31fa
      Alexey Kopytov authored
      Conflicts:
      
         conflict      Makefile.am
         conflict      mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
         conflict      mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test
         conflict      sql/opt_sum.cc
         conflict      sql/set_var.cc
         conflict      sql/sql_base.cc
         conflict      sql/sql_priv.h
         conflict      sql/sql_show.cc
      b69a31fa
    • Mattias Jonsson's avatar
      merge · ca0aa95c
      Mattias Jonsson authored
      ca0aa95c
  7. 21 May, 2010 2 commits
  8. 20 May, 2010 4 commits
    • Sven Sandberg's avatar
      BUG#52987: mysqldump fails if umask=0077 · 836bb54c
      Sven Sandberg authored
      Problem: The test case mysqldump reads a file that must
      be world-readable. The test did not force the file to be
      world-readable, so if the tree was branched with a umask
      of 0077, the test would fail.
      Fix: chmod the file.
      836bb54c
    • Alexander Nozdrin's avatar
      Manual merge from mysql-trunk. · eff44296
      Alexander Nozdrin authored
      Conflicts:
        - mysql-test/r/partition.result
        - mysql-test/r/variables_debug.result
        - mysql-test/t/partition.test
        - mysql-test/t/variables_debug.test
      eff44296
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-bugfixing. · d8b33c52
      Alexander Nozdrin authored
      d8b33c52
    • Sergey Glukhov's avatar
      Bug#52884 mysql-test-run does not work with --debug option · 7132ccd7
      Sergey Glukhov authored
      Server crashes on 64bit linux with 'double free or corruption'
      message, on 32bit mysql-test-run silently fails on bootstrap
      stage. The problem is that FreeState() is called twice
      for init_settings struct in _db_end_ function.
      The fix is to remove superfluous FreeState() call.
      Additional fix:
      fixed discrepancy of result file when
      debug & valgrind options are enabled
      for MTR.
      7132ccd7
  9. 19 May, 2010 7 commits
  10. 18 May, 2010 1 commit