1. 15 Sep, 2011 4 commits
  2. 14 Sep, 2011 2 commits
  3. 13 Sep, 2011 2 commits
    • Sergey Petrunya's avatar
      BUG#730133: Wrong result with jkl = 7, BKA, ICP in maria-5.3 + compound index · a76232f9
      Sergey Petrunya authored
      - Mrr_ordered_index_reader::interrupt_read() and resume_read() should 
        save/restore not just index lookup tuple, but entire index tuple.
        Key parts that are not used for index lookup can be still used in
        pushed index condition. Failure to save/restore will cause the index
        condition to be evaluated over the wrong values.
      a76232f9
    • Michael Widenius's avatar
      Increased version number · cbad4f48
      Michael Widenius authored
      Give proper error to client on shutdown.
      
      configure.in:
        Increased version number
      mysql-test/mysql-test-run.pl:
        Ignore errors that one can get while running with --mysqld=--log-warnings=2
      mysql-test/r/variables.result:
        Remember original value of log_warnings
      mysql-test/suite/rpl/r/rpl_idempotency.result:
        Ignore errors that one can get while running with --mysqld=--log-warnings=2
      mysql-test/suite/rpl/t/rpl_idempotency.test:
        Ignore errors that one can get while running with --mysqld=--log-warnings=2
      mysql-test/t/variables.test:
        Remember original value of log_warnings
      sql/mysqld.cc:
        Give proper error to close_connection() on shutdown
      storage/maria/ha_maria.cc:
        Added missing DBUG_RETURN
      cbad4f48
  4. 10 Sep, 2011 2 commits
  5. 09 Sep, 2011 1 commit
    • Michael Widenius's avatar
      Fixed that automatic killing of delayed insert thread (in flush, alter table... · b08627f9
      Michael Widenius authored
      Fixed that automatic killing of delayed insert thread (in flush, alter table etc) will not abort auto-repair of MyISAM table.
      Give more information when finding an error in a MyISAM table.
      When killing system thread, use KILL_SYSTEM_THREAD instead of KILL_CONNECTION to make it easier to ignore the signal in sensitive context (like auto-repair)
      Added new kill level: KILL_SERVER that will in the future to be used to signal killed by shutdown.
      Add more warnings about killed connections when warning level > 3
      
      include/myisamchk.h:
        Added counting of printed info/notes
      mysys/mf_iocache.c:
        Remove duplicate assignment
      sql/handler.cc:
        Added test of KILL_SERVER
      sql/log.cc:
        Ignore new 'kill' error ER_NEW_ABORTING_CONNECTION when requesting query error code.
      sql/mysqld.cc:
        Add more warnings for killed connections when warning level > 3
      sql/scheduler.cc:
        Added checks for new kill signals
      sql/slave.cc:
        Ignore new kill signal ER_NEW_ABORTING_CONNECTION
      sql/sp_head.cc:
        Fixed assignment to bool
        Added testing of new kill signals
      sql/sql_base.cc:
        Use KILL_SYSTEM_THREAD to auto-kill system threads
      sql/sql_class.cc:
        Add more warnings for killed connections when warning level > 3
        thd_killed() now ignores KILL_BAD_DATA and THD::KILL_SYSTEM_THREAD as these should not abort sensitive operations.
      sql/sql_class.h:
        Added KILL_SYSTEM_THREAD and KILL_SERVER
      sql/sql_connect.cc:
        Added handling of KILL_SERVER
      sql/sql_insert.cc:
        Use KILL_SYSTEM_THREAD to auto-kill system threads
        Added handling of KILL_SERVER
      sql/sql_parse.cc:
        Add more warnings for killed connections when warning level > 3
        Added checking that thd->abort_on_warning is reset at end of query.
      sql/sql_show.cc:
        Update condition for when a query is 'killed'
      storage/myisam/ha_myisam.cc:
        Added counting of info/notes printed
      storage/myisam/mi_check.c:
        Always print an an error if we find data errors when checking/repairing a MyISAM table.
        When a repair was killed, don't retry repair.
        Added assert if sort_get_next_record() returned an error without an error message.
        Removed nonsence check "if (sort_param->read_cache.error < 0)" in repair.
      storage/myisam/myisamchk.c:
        Added counting of notes printed
      storage/pbxt/src/thread_xt.cc:
        Better error message.
      b08627f9
  6. 08 Sep, 2011 5 commits
    • Sergey Petrunya's avatar
      BUG#833600: Wrong result with view + outer join + uncorrelated subquery (non-semijoin) · c8c42fed
      Sergey Petrunya authored
      - The bug was caused by outer join being incorrectly converted into inner because of 
        invalid return values of Item_direct_view_ref::not_null_tables().
      - Provided a correct Item_direct_view_ref::not_null_tables() function.
      c8c42fed
    • Sergey Petrunya's avatar
      Automerge. · 14989478
      Sergey Petrunya authored
      14989478
    • Igor Babaev's avatar
      Merge. · 8d6a9da1
      Igor Babaev authored
      8d6a9da1
    • Sergey Petrunya's avatar
      BUG#830993: Crash in end_read_record with derived table · 1c46ce95
      Sergey Petrunya authored
      - Let join buffering code correctly take into account rowids needed 
        by DuplicateElimination when it is calculating minimum record sizes.
      - In JOIN_CACHE::write_record_data, added asserts that prevent us from 
        writing beyond the end of the buffer.
      1c46ce95
    • unknown's avatar
      LP BUG#813418 fix. · 8820f80a
      unknown authored
      The problem was that optimization code did not take into account later feature when instad of NOT before BETWEEN it has negated flag into the Item_func_between inherited from Item_func_neg_opt. So optimizer tried process NOT BETWEEN as BETWEEN.
      
      The patch just switches off the optimisation for NOT BETWEEN as it was before when NOT function was really used.
      8820f80a
  7. 07 Sep, 2011 1 commit
  8. 06 Sep, 2011 5 commits
    • Sergey Petrunya's avatar
      Merge · 75c5a961
      Sergey Petrunya authored
      75c5a961
    • Sergey Petrunya's avatar
      Fix typo bug · 092ec56c
      Sergey Petrunya authored
      092ec56c
    • Igor Babaev's avatar
      Merge. · eeaca56c
      Igor Babaev authored
      eeaca56c
    • Igor Babaev's avatar
      Fixed LP bug #838633. · 000d33e0
      Igor Babaev authored
      For any query JOIN::optimize() should call the method
      SELECT::save_leaf_tables after the last transformation
      that utilizes the statement memory rather than the 
      execution memory.
        
      000d33e0
    • Sergey Petrunya's avatar
      BUG#823930: Wrong result with semijoin materialization and blob fields · add730d3
      Sergey Petrunya authored
      - Make subquery_types_allow_materialization() detect a case where 
        create_tmp_table() would create a blob column which would make it 
        impossible to use materialization
        Non-semi-join materialization worked because it detected that this case
        and felt back to use IN->EXISTS. Semi-join Materialization cannot easily
        fallback, so we have to detect this case early.
      add730d3
  9. 05 Sep, 2011 6 commits
  10. 04 Sep, 2011 1 commit
    • Sergey Petrunya's avatar
      BUG#836532: Crash in Item_equal_fields_iterator::get_curr_field with semijoin+materialization · b6a09bb3
      Sergey Petrunya authored
      - Item_in_subselect::inject_in_to_exists_cond() should not call 
        ((Item_cond*)join->conds)->argument_list()->concat(join->cond_equal->current_level)
        as that makes two lists share their tail, and the cond_equal list
        will end up containing non-Item_equal objects when substitute_for_best_equal_field()
        walks through join->conds and replaces all Item_equal objects with Item_func_eq objects.
        - So, instead of using List::concat(), manually copy entries from one list to another.
       
      b6a09bb3
  11. 03 Sep, 2011 2 commits
  12. 02 Sep, 2011 7 commits
    • Sergey Petrunya's avatar
      BUG#836507: Crash in setup_sj_materialization_part1() with semijoin+materialization · cff3f757
      Sergey Petrunya authored
      - setup_sj_materialization() code failed to take into account that it can be that 
        the first [in join order ordering] table inside semi-join-materialization nest 
        is also an inner table wrt an outer join (that is embedded in the semi-join).  
        This can happen when all of the tables that are inside the semi-join but not inside
        the outer join are constant.
      - Made a trivial to not assume that table's embedding join nest is the semi-join 
        nest: instead, walk up the outer join nests until we reach the semi-join nest.
      cff3f757
    • Sergey Petrunya's avatar
      BUG#836523: Crash in JOIN::get_partial_cost_and_fanout with semijoin+materialization · 613db7c5
      Sergey Petrunya authored
      - Make JOIN::get_partial_cost_and_fanout() be able to handle join plans with 
        semi-join-materialization nests.
      613db7c5
    • unknown's avatar
      Merge of merge · d809946c
      unknown authored
      d809946c
    • unknown's avatar
      Merge 5.2->5.3 · e0017b39
      unknown authored
      e0017b39
    • Sergey Petrunya's avatar
      Merge · b67df7ed
      Sergey Petrunya authored
      b67df7ed
    • Michael Widenius's avatar
      Fixed lp:814238 "safe_mutex issues must be assertions in debug binary" · a0917f26
      Michael Widenius authored
      Added --debug-assert-on-error variable which, if set, will cause safe_mutex to assert if it founds an error.
      
      include/my_sys.h:
        Added my_assert_on_error
      mysys/my_static.c:
        Added my_assert_on_error
      mysys/thr_mutex.c:
        Assert when found wrong mutex usage if my_assert_on_error is set
      sql/mysqld.cc:
        Added setting of my_assert_on_error
      a0917f26
    • unknown's avatar
      LP BUG#823169 fix. · 5579224c
      unknown authored
      For ANY subqueries NULLs should be ignored (if there is other values) when finding max min.
      For ALL subqueries NULLs should be saved if they found.
      
      Optimisation for ALL suqbueries if NULL is possible in the SELECT list with max/min aggregate function switched off.
      
      Some test changed where NULL is not used but optimization with max/min aggregate function important so NOT NULL added.
      
      mysql-test/r/explain.result:
        Forced old optimization.
      mysql-test/r/subselect.result:
        Forced old optimization.
        
        New test suite.
      mysql-test/t/explain.test:
        Forced old optimization.
      mysql-test/t/subselect.test:
        Forced old optimization.
        
        New test suite.
      sql/item_subselect.cc:
        Store converted subquery type.
        
        Switch off aggregate function optimisation for ALL and nulls.
      sql/sql_class.cc:
        Fixed NULL comparison.
      sql/sql_class.h:
        Store converted subquery type.
      5579224c
  13. 01 Sep, 2011 2 commits
    • Michael Widenius's avatar
      Added logging of all errors from my_read/my_write/my_pread/my_pwrite/my_open &... · b7339445
      Michael Widenius authored
      Added logging of all errors from my_read/my_write/my_pread/my_pwrite/my_open & my_malloc to mysqld error log if one sets log-warning to 10 or 11
      The idea is that my_global_flags is ored to the MyFlags parameter for the above functions if the MY_WME flag is not set.
      As the my_global_flags has ME_JUST_INFO (mark error as 'note') and possible ME_NOREFRESH (write error to log) this will force mysqld to log the not critical error to the log as a note.
      
      
       
      
      include/my_sys.h:
        Moved MY_SYNC_DIR to ensure it never clashes with ME_JUST_INFO
        Added my_global_flags
      mysql-test/Makefile.am:
        Removed not used bugs directory
      mysys/my_init.c:
        Added my_global_flags, a variable that is ored to MyFlags in a those mysys functions we want extra logging.
      mysys/my_malloc.c:
        Added support for my_global_flags
      mysys/my_open.c:
        Added support for my_global_flags
      mysys/my_pread.c:
        Added support for my_global_flags
      mysys/my_read.c:
        Added support for my_global_flags
      mysys/my_static.c:
        Added my_global_flags
      mysys/my_write.c:
        Added support for my_global_flags
      sql/mysqld.cc:
        Set my_global_flags for warning levels 10 & 11
      sql/sql_base.cc:
        Don't increment unhandled errors for notes or warnings.
      b7339445
    • unknown's avatar
      Fix for bug lp:834492 · e681418f
      unknown authored
      Analysis:
      In the test query semi-join merges the inner-most subquery
      into the outer subquery, and the optimization of the merged
      subquery finds some new index access methods. Later the
      IN-EXISTS transformation is applied to the unmerged subquery.
      Since the optimizer is instructed to not consider
      materialization, it reoptimizes the plan in-place to take into
      account the new IN-EXISTS conditions. Just before reoptimization
      JOIN::choose_subquery_plan resets the query plan, which also
      resets the access methods found during the semi-join merge.
      Then reoptimization discovers there are no new access methods,
      but it leaves the query plan in its reset state. Later semi-join
      crashes because it assumes these access methods are present.
      
      Solution:
      When reoptimizing in-place, reset the query plan only after new
      access methods were discovered. If no new access methods were
      discovered, leave the current plan as it was.
      e681418f