1. 06 May, 2013 1 commit
    • Michael Widenius's avatar
      If one declared several continue handler for the same condition on different... · d18cc84c
      Michael Widenius authored
      If one declared several continue handler for the same condition on different level of stored procedures, all of them where executed.
      Now we only execute the innermost of them (the most relevant).
      
      The solution was to add a 'handled' marker to MYSQL_ERROR and mark all elements for which we have executed a condition handler.
      When searching for new conditions, we will ignore any marked element.
      
      
      
      
      .bzrignore:
        Ignore error message file
      mysql-test/r/sp.result:
        Added testcase for continue handlers.
      mysql-test/t/sp.test:
        Added testcase for continue handlers.
      sql/sp_head.cc:
        Mark errors for which we will excute a handler as 'handled'
        Ignore already handled warnings/errors
      sql/sql_error.cc:
        Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled.
      sql/sql_error.h:
        Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled.
      d18cc84c
  2. 05 May, 2013 4 commits
  3. 04 May, 2013 5 commits
    • Sergey Petrunya's avatar
      MDEV-4071: Valgrind warnings 'Invalid read' in subselect_engine::calc_const_tables with ... · d37c17cb
      Sergey Petrunya authored
      - Call tmp_having->update_used_tables() *before* we have call JOIN::cleanup().
        Making the call after join::cleanup() is not allowed, because subquery 
        predicate items walk parent join's JOIN_TAB structures. Which can be 
        invalidated by JOIN::cleanup().
      d37c17cb
    • Sergey Petrunya's avatar
      ace3cf42
    • Sergey Petrunya's avatar
      Update testcase result · a50cfe15
      Sergey Petrunya authored
      a50cfe15
    • Igor Babaev's avatar
      Fixed bug mdev-4336. · a8de7716
      Igor Babaev authored
      When iterating over a list of conditions using List_iterator
      the function remove_eq_conds should skip all predicates that
      replace a condition from the list. Otherwise it can come to
      an infinite recursion. 
      a8de7716
    • Igor Babaev's avatar
      Made consistent handling of the predicates of the form · 185f7345
      Igor Babaev authored
      <non-nullable datatime field> IS NULL in outer joins with
      that in inner joins.
      Previously such condition was transformed into the condition
      <non-nullable datatime field> = 0 unless the field belonged
      to an inner table of an outer join. In this case the predicate
      was interpreted as for any other field.
      Now if the field in the predicate <non-nullable datatime field> IS NULL
      belongs to an inner table of an outer join the predicate is 
      transformed into the disjunction
      <non-nullable datatime field> = 0 OR <non-nullable datatime field> IS NULL.
      This is fully compatible with the semantics of such predicates in 5.5.
      185f7345
  4. 03 May, 2013 2 commits
  5. 02 May, 2013 1 commit
  6. 30 Apr, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4274. · 891bb60c
      Igor Babaev authored
      This bug was the result of incompleteness of the patch for bug mdev-4177.
      When an OR condition is simplified to a single conjunct it is merged
      into the embedding AND condition. Multiple equalities are also merged,
      and any field item involved in those equality should acquire a pointer
      to a the multiple equality formed by this merge.
      891bb60c
  7. 29 Apr, 2013 1 commit
    • Vladislav Vaintroub's avatar
      MDEV-4458 - Windows installer does not launch upgrade wizard anymore, even if... · e01dea76
      Vladislav Vaintroub authored
      MDEV-4458 - Windows installer does not launch upgrade wizard anymore, even if there are upgradable instances (i.e windows service of lower MariaDB/MySQL version)
      
      The main  reason for he error is misplaced ADD_DIRECTORY in top-level CMakeLists.txt.
      ADD_DIRECTORY(win/packaging) was places before win/upgrade_wizard, and MSI was not able to detect that  upgrade wizard was built, and thus excluded upgrade wizard entirely.
      e01dea76
  8. 28 Apr, 2013 2 commits
    • Vladislav Vaintroub's avatar
      fix test on Windows · b220718c
      Vladislav Vaintroub authored
      b220718c
    • Igor Babaev's avatar
      Fixed bug mdev-4340. · cade00e2
      Igor Babaev authored
      The function make_join_statistics checks whether eq_ref access uses only
      constant expressions, and, if this is the case the function performs
      constant row substitution. The code of this check must take into account
      hidden components of extended secondary keys. 
      cade00e2
  9. 25 Apr, 2013 2 commits
    • Vladislav Vaintroub's avatar
      Fix build on Windows · 36e4014c
      Vladislav Vaintroub authored
      36e4014c
    • unknown's avatar
      Fix unsigned/signed conversion bug in event type during mysql_binlog_send(). · 8d99caae
      unknown authored
      Since event types can be >=128 and are read from a (possibly signed) char
      pointer, we need to cast to unsigned char before extending to int, or we will
      get an incorrect negative number. This was done in the main code path already,
      but there is a rare case where we check for new events first without a lock
      and then again with the lock. If the second check succeeds because a new event
      turns up at just the right time, then we took a code path that was missing the
      correct unsigned char cast, leading to incorrect handling of events for old
      slave servers and possibly other grief.
      
      (This was found from a sporadic failure in Buildbot of test case
      rpl_mariadb_slave_capability).
      8d99caae
  10. 22 Apr, 2013 1 commit
    • unknown's avatar
      MDEV-4396: Fix sporadic failure of test innodb.innodb_bug14676111 · 997571af
      unknown authored
      The problem was that xtradb has innodb_purge_threads default 1 (plain
      innodb defaults to 0).
      
      The test sets a special debug variable and relies on it to force
      purge to happen. But when using background purge threads, this does
      not work, the debug code is not made to handle this, so occasionally
      the test times out waiting for the purge to occur.
      
      Fix by explicitly setting innodb_purgee_threads=0 for this test.
      997571af
  11. 19 Apr, 2013 2 commits
  12. 18 Apr, 2013 1 commit
  13. 17 Apr, 2013 1 commit
  14. 16 Apr, 2013 3 commits
  15. 14 Apr, 2013 2 commits
  16. 12 Apr, 2013 1 commit
    • Michael Widenius's avatar
      Increase default value of max_binlog_cache_size and max_binlog_stmt_cache_size to ulonglong_max. · 64c72159
      Michael Widenius authored
      This fixes that by default LOAD DATA INFILE will not generate the error:
      "Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage..."
      
      
      mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result:
        Updated test case
      mysql-test/suite/sys_vars/r/max_binlog_stmt_cache_size_basic.result:
        Updated test case
      sql/sys_vars.cc:
        Increase default value of max_binlog_cache_size and max_binlog_stmt_cache_size to ulonglong_max.
      64c72159
  17. 11 Apr, 2013 4 commits
  18. 07 Apr, 2013 1 commit
    • Vladislav Vaintroub's avatar
      MDEV-4356 : MariaDB does not start if bind-address gets resolved to more than single IP address. · 4528a2d9
      Vladislav Vaintroub authored
        
      MySQL bug http://bugs.mysql.com/bug.php?id=61713 was fixed in 5.5
        
      Fix is to remove check for multiple entries returned by getaddrinfo(), and use the first entry that works  - i.e socket can be created.  
      
      Unlike Oracle/MySQL's fix ,this one  is kept minimal : 
      -  we do not prioritize IPv4 over IPv6,  orr other way around,  and just rely on operating system to sort getaddrinfo() entries in sensible order. There is RFC that defines  what is sensible order for getaddrinfo entries ( RFC 3484), and OS specific tweaks are also possible , like /etc/gai.conf o Linux.
      -  also,  we do not force "0.0.0.0" address if bind-address is not given -  this would be a change in behavior of 5.5 at least on Windows, where passing NULL as  to getaddrinfo()  gives back IPv6-wildcard.
      4528a2d9
  19. 06 Apr, 2013 3 commits
  20. 08 Apr, 2013 1 commit
    • unknown's avatar
      If a range tree has a branch that is an expensive constant, · 2c892440
      unknown authored
      currently get_mm_tree skipped the evaluation of this constant
      and icorrectly proceeded. The correct behavior is to return a
      NULL subtree, according to the IF branch being fixed - when it
      evaluates the constant it returns a value, and doesn't continue
      further.
      2c892440
  21. 05 Apr, 2013 1 commit