1. 19 Feb, 2014 4 commits
    • Sergey Petrunya's avatar
      Backport the following from 5.5 to 5.3: · 6ebaa493
      Sergey Petrunya authored
      MDEV-4556 Server crashes in SEL_ARG::rb_insert with index_merge+index_merge_sort_union, FORCE INDEX
      - merge_same_index_scans() may put the same SEL_ARG tree in multiple result plans.
        make it call incr_refs() on the SEL_ARG trees that it does key_or() on, because 
        key_or(sel_arg_tree_1, sel_arg_tree_2) call may invalidate SEL_ARG trees pointed 
        by sel_arg_tree_1 and sel_arg_tree_2.
          
      6ebaa493
    • Sergey Petrunya's avatar
      Fix compile failure: · ddc21f79
      Sergey Petrunya authored
      In function ‘void* memset(void*, int, size_t)’,
          inlined from ‘void Lifo_buffer::set_buffer_space(uchar*, uchar*)’ at sql_lifo_buffer.h:70:5,
          inlined from ‘int DsMrr_impl::dsmrr_init(handler*, RANGE_SEQ_IF*, void*, uint, uint, HANDLER_BUFFER*)’ at multi_range_read.cc:895:62:
      /usr/include/i386-linux-gnu/bits/string3.h:82:32: error: call to ‘__warn_memset_zero_len’ declared with attribute warning: memset used with constant zero length parameter; this could be due to transposed parameters [-Werror]
      
      It was intentional that the buffer is set to zero length there.
      ddc21f79
    • Sergey Petrunya's avatar
      Add a debugger helper function that does this: · 260c802e
      Sergey Petrunya authored
      (gdb) p dbug_print_table_row(table)
        $33 = "SUBQUERY2_t1(col_int_key,col_varchar_nokey)=(7,c)"
      260c802e
    • Sergey Petrunya's avatar
      MDEV-5600: Wrong result on 2nd execution of PS depending on the length of the query · 097b6440
      Sergey Petrunya authored
      - Item_direct_view_ref didn't clear its pointer to item_equal in ::cleanup.
      - Some Item_direct_view_ref objects have statement lifetime (i.e. they
        survive across multiple EXECUTE commands). Item_equal objects live only for
        the duration of one EXECUTE. This caused Item_direct_view_ref to have a stale pointer,
        which could cause all sorts of effects. (In this bug's testcase it was pointing to
        the wrong Item_equal, causing wrong query result)
      - Fixed by doing what Item_field::cleanup() does - don't keep item_equal pointer value.
      - There is no testcase because the only testcase I've got is highly fragile (e.g. the
        bug will not show up if @@datadir is of the wrong length).
      097b6440
  2. 18 Feb, 2014 2 commits
  3. 14 Feb, 2014 5 commits
  4. 13 Feb, 2014 6 commits
  5. 12 Feb, 2014 1 commit
  6. 08 Feb, 2014 1 commit
  7. 07 Feb, 2014 3 commits
  8. 06 Feb, 2014 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-5468. · 5b441013
      Igor Babaev authored
      The field JOIN::select_lex->where should be updated after the call
      of remove_eq_conds() in the function make_join_statistics(). This
      matters for subselects.
      5b441013
  9. 28 Jan, 2014 5 commits
  10. 27 Jan, 2014 1 commit
  11. 24 Jan, 2014 2 commits
    • Sergey Petrunya's avatar
      [Backport to 5.3] · 669c6620
      Sergey Petrunya authored
      MDEV-5337: Wrong result in mariadb 5.5.32 with ORDER BY + LIMIT when 
      index_condition_pushdown=on
      - in test_if_skip_sort_order(), correct the condition under which
        we have the code that restores the previously pushed index condition.
      669c6620
    • Alexander Barkov's avatar
      MDEV-5504 Server crashes in String::length on SELECT with MONTHNAME, GROUP BY, ROLLUP · d106dc05
      Alexander Barkov authored
      The crash happened because Item_func_monthname was derived from
      Item_func_month, so Item_func_monthname::is_null() did not work fine.
      Backporting a change from 5.5: Item_func_monthname is now derived from
      Item_str_func.
      d106dc05
  12. 23 Jan, 2014 3 commits
    • Sergey Petrunya's avatar
      MDEV-5368: Server crashes in Item_in_subselect::optimize on ... · 519c7305
      Sergey Petrunya authored
      - convert_subq_to_sj() must connect child select's tables into 
        parent select's TABLE_LIST::next_local chain.  
      - The problem was that it took child's leaf_tables.head() which
        is different. This could cause certain tables (in this bug's case,
        child select's non-merged semi-join) not to be present in 
        TABLE_LIST::next_local chain.  Which would cause non-merged semi-join
        not to be initialized in setup_tables(), which would lead to 
        NULL pointer dereference.
      519c7305
    • unknown's avatar
      merge of MDEV-5356 5.1->5.3 (with more fixes and test suite). · d9cb1352
      unknown authored
      THD::thd->activate_stmt_arena_if_needed() should be used to temporary activating statement arena instead of direct usage of THD::set_n_backup_active_arena() because possible such scenario:
        1) func1 saves current arena and activates copy1 of statement arena
        2) func2 saves copy1 of statement arena setup by func1 and activates copy2
        3) some changes made for copy 2
        4) func2 stores changed copy2 back to statenet arena and activates copy1
        5) func1 store unchanged copy1 back to statemnt arena (rewrite changed copy 2 so changes become lost) and activates arena which was before.
      d9cb1352
    • unknown's avatar
      MDEV-5356: Server crashes in Item_equal::contains on 2nd execution of a PS · 5f5f7bef
      unknown authored
      THD::thd->activate_stmt_arena_if_needed() should be used to temporary activating statement arena instead of direct usage of THD::set_n_backup_active_arena() because possible such scenario:
        1) func1 saves current arena and activates copy1 of statement arena
        2) func2 saves copy1 of statement arena setup by func1 and activates copy2
        3) some changes made for copy 2
        4) func2 stores changed copy2 back to statenet arena and activates copy1
        5) func1 store unchanged copy1 back to statemnt arena (rewrite changed copy 2 so changes become lost) and activates arena which was before.
      5f5f7bef
  13. 21 Jan, 2014 2 commits
  14. 20 Jan, 2014 2 commits
  15. 13 Jan, 2014 1 commit
  16. 20 Dec, 2013 1 commit