1. 06 Apr, 2013 1 commit
    • Sergei Golubchik's avatar
      MDEV-4316 MariaDB server crash with signal 11 · 6770a9a8
      Sergei Golubchik authored
      fulltext search was initialized for all MATCH ... AGAINST items
      at the end of the JOIN::optimize(). But since 5.3 derived tables
      are initialized lazily on first use, very late in the sub_select().
      
      Skip Item_func_match::init_search initialization if the corresponding
      table isn't open yet; repeat fulltext initialization for all
      not-yet-initialized MATCH ... AGAINST items after creating derived tables.
      6770a9a8
  2. 08 Apr, 2013 1 commit
    • unknown's avatar
      If a range tree has a branch that is an expensive constant, · 385de874
      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.
      385de874
  3. 04 Apr, 2013 1 commit
  4. 01 Apr, 2013 1 commit
  5. 29 Mar, 2013 1 commit
  6. 27 Mar, 2013 1 commit
  7. 26 Mar, 2013 4 commits
  8. 23 Mar, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4318. · 21dad7ec
      Igor Babaev authored
      In some cases, when using views the optimizer incorrectly determined
      possible join orders for queries with nested outer and inner joins.
      This could lead to invalid execution plans for such queries.
      21dad7ec
  9. 22 Mar, 2013 1 commit
  10. 21 Mar, 2013 2 commits
  11. 20 Mar, 2013 2 commits
  12. 19 Mar, 2013 2 commits
  13. 18 Mar, 2013 4 commits
    • unknown's avatar
      MDEV-4269 fix. · 2cd7cf8f
      unknown authored
      Item_default_value inherited form Item_field so should create temporary table field similary.
      2cd7cf8f
    • Alexey Botchkov's avatar
      MDEV-4252 geometry query crashes server. · 589247ae
      Alexey Botchkov authored
          Additional fixes for possible overflows in length-related
          calculations in 'spatial' implementations.
          Checks added to the ::get_data_size() methods.
          max_n_points decreased to occupy less 2G size. An
          object of that size is practically inoperable anyway.
      589247ae
    • Sergei Golubchik's avatar
      MDEV-4289 Assertion `0' fails in make_sortkey with GROUP_CONCAT, MAKE_SET, GROUP BY · a4a18e0c
      Sergei Golubchik authored
      Item_func_make_set wasn't taking into account the first argument when
      calculating maybe_null.
      
      sql/item_strfunc.cc:
        rewrite Item_func_make_set, removing separate storage of the first argument
      sql/item_strfunc.h:
        rewrite Item_func_make_set, removing separate storage of the first argument
      a4a18e0c
    • Sergei Golubchik's avatar
      MDEV-4283 Assertion `scale <= precision' fails in strings/decimal.c · 8f607aae
      Sergei Golubchik authored
        
      with decimals=NOT_FIXED_DEC it is possible to have 'decimals' larger
      than 'max_length', it's not an error for temporal functions.
        
      But when Item_func_numhybrid converts the value to DECIMAL_RESULT,
      it must limit 'decimals' to be a valid scale of a decimal number.
      8f607aae
  14. 17 Mar, 2013 2 commits
  15. 10 Mar, 2013 1 commit
    • Alexey Botchkov's avatar
      MDEV-4252 geometry query crashes server. · 511b9432
      Alexey Botchkov authored
            The bug was found by Alyssa Milburn.
            If the number of points of a geometry feature read from
            binary representation is greater than 0x10000000, then
            the (uint32) (num_points * 16) will cut the higher byte,
            which leads to various errors.
            Fixed by additional check if (num_points > max_n_points).
      511b9432
  16. 08 Mar, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4250. · 926b0f54
      Igor Babaev authored
      This is a bug in the legacy code. It did not manifest itself because
      it was masked by other bugs that were fixed by the patches for
      mdev-4172 and mdev-4177.
      926b0f54
  17. 06 Mar, 2013 2 commits
  18. 01 Mar, 2013 2 commits
  19. 28 Feb, 2013 7 commits
    • Igor Babaev's avatar
      Fixed bug mdev-4209 · 90c0f3d3
      Igor Babaev authored
      Do not include BLOB fields into the key to access the temporary
      table created for a materialized view/derived table.
      BLOB components are not allowed in keys. 
      90c0f3d3
    • Sergei Golubchik's avatar
      5.2 -> 5.3 · c4341d50
      Sergei Golubchik authored
      c4341d50
    • Sergei Golubchik's avatar
      5.1 -> 5.2 merge · 5dec570d
      Sergei Golubchik authored
      5dec570d
    • Igor Babaev's avatar
      Fixed a compile error for some platform. · 0d55ebc0
      Igor Babaev authored
      0d55ebc0
    • Sergei Golubchik's avatar
      a simpler fix for · 027e34e1
      Sergei Golubchik authored
      MySQL Bug #12408412: GROUP_CONCAT + ORDER BY + INPUT/OUTPUT SAME USER VARIABLE = CRASH
      and
      MySQL Bug#14664077 SEVERE PERFORMANCE DEGRADATION IN SOME CASES WHEN USER VARIABLES ARE USED
      
      
      sql/item_func.cc:
        don't use anything from Item_func_set_user_var::fix_fields()
        in Item_func_set_user_var::save_item_result()
      sql/sql_class.cc:
        Call suv->save_item_result(item) *before* doing suv->fix_fields(), because
        the former evaluates the item (and caches its value), while the latter marks
        the user variable as non-const. The problem is that the item was fix_field'ed
        when the user variable was const, and it doesn't expect it to change to non-const
        in the middle of the execution.
      027e34e1
    • Michael Widenius's avatar
    • Sergei Golubchik's avatar
      mysql-5.1 merge · 08ba2578
      Sergei Golubchik authored
      mysys/errors.c:
        revert upstream's fix. use a much simpler one
      mysys/my_write.c:
        revert upstream's fix. use a simpler one
      sql/item_xmlfunc.cc:
        useless, but ok
      sql/mysqld.cc:
        simplify upstream's fix
      storage/heap/hp_delete.c:
        remove upstream's fix.
        we'll use a much less expensive approach.
      08ba2578
  20. 26 Feb, 2013 1 commit
  21. 25 Feb, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4177 · d434d79a
      Igor Babaev authored
      The function remove_eq_cond removes the parts of a disjunction
      for which it has been proved that they are always true. In the
      result of this removal the disjunction may be converted into a 
      formula without OR that must be merged into the the AND formula
      that contains the disjunction.
      The merging of two AND conditions must take into account the
      multiple equalities that may be part of each of them.
      These multiple equality must be merged and become part of the
      and object built as the result of the merge of the AND conditions.
      Erroneously the function remove_eq_cond lacked the code that 
      would merge multiple equalities of the merged AND conditions.
      This could lead to confusing situations when at the same AND 
      level there were two multiple equalities with common members
      and the list of equal items contained only some of these 
      multiple equalities.
      This, in its turn, could lead to an incorrect work of the
      function substitute_for_best_equal_field when it tried to optimize
      ref accesses. This resulted in forming invalid TABLE_REF objects
      that were used to build look-up keys when materialized subqueries
      were exploited.
         
      d434d79a
  22. 22 Feb, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4172. · ed7671d5
      Igor Babaev authored
      This bug in the legacy code could manifest itself in queries with
      semi-join materialized subqueries.
      When a subquery is materialized all conditions that are imposed
      only on the columns belonging to the tables from the subquery 
      are taken into account.The code responsible for subquery optimizations
      that employes subquery materialization  makes sure to remove these
      conditions from the WHERE conditions of the query obtained after
      it has transformed the original query into a query with a semi-join.
      If the condition to be removed is an equality condition it could
      be added to ON expressions and/or conditions from disjunctive branches
      (parts of OR conditions) in an attempt to generate better access keys
      to the tables of the query. Such equalities are supposed to be removed
      later from all the formulas where they have been added to.
      However, erroneously, this was not done in some cases when an ON
      expression and/or a disjunctive part of the OR condition could
      be converted into one multiple equality. As a result some equality
      predicates over columns belonging to the tables of the materialized
      subquery remained in the ON condition and/or the a disjunctive 
      part of the OR condition, and the excuter later, when trying to
      evaluate them, returned wrong answers as the values of the fields
      from these equalities were not valid.  
      This happened because any standalone multiple equality (a multiple
      equality that are not ANDed with any other predicates) lacked
      the information about equality predicates inherited from upper
      levels (in particular, inherited from the WHERE condition).
      The fix adds a reference to such information to any standalone
      multiple equality. 
      ed7671d5