An error occurred fetching the project authors.
  1. 22 Jan, 2007 1 commit
  2. 03 Jan, 2007 1 commit
    • malff/marcsql@weblab.(none)'s avatar
      Bug#6298 (LIMIT #, -1 no longer works to set start with no end limit) · 236000ae
      malff/marcsql@weblab.(none) authored
      With MySQL 3.23 and 4.0, the syntax 'LIMIT N, -1' is accepted, and returns
      all the rows located after row N. This behavior, however, is not the
      intended result, and defeats the purpose of LIMIT, which is to constrain
      the size of a result set.
      
      With MySQL 4.1 and later, this construct is correctly detected as a syntax
      error.
      
      This fix does not change the production code, and only adds a new test case
      to improve test coverage in this area, to enforce in the test suite the
      intended behavior.
      236000ae
  3. 06 Dec, 2006 1 commit
  4. 20 Nov, 2006 1 commit
    • monty@mysql.com/nosik.monty.fi's avatar
      Remove compiler warnings · e8258798
      monty@mysql.com/nosik.monty.fi authored
      (Mostly in DBUG_PRINT() and unused arguments)
      Fixed bug in query cache when used with traceing (--with-debug)
      Fixed memory leak in mysqldump
      Removed warnings from mysqltest scripts (replaced -- with #)
      e8258798
  5. 16 Oct, 2006 2 commits
    • igor@rurik.mysql.com's avatar
      Fixed bug #19579: at range analysis optimizer did not take into · c467be8d
      igor@rurik.mysql.com authored
      account predicates that become sargable after reading const tables.
      In some cases this resulted in choosing non-optimal execution plans.
      Now info of such potentially saragable predicates is saved in
      an array and after reading const tables we check whether this
      predicates has become saragable.
      c467be8d
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on · a1310d84
      gkodinov/kgeorge@macbook.gmz authored
                   strings
      MySQL is setting the flag HA_END_SPACE_KEYS for all the keys that reference
      text or varchar columns with collation different than binary.
      This was done to handle correctly the situation where a lookup on such a key
      may return more than 1 row because of the presence of many rows that differ
      only by the amount of trailing space in the table's string column.
      Inserting such values however appears to violate the unique checks on 
      INSERT/UPDATE. Thus that flag must not be set as it will prevent the optimizer
      from choosing a faster access method.
      This fix removes the setting of the HA_END_SPACE_KEYS flag.
      a1310d84
  6. 29 Sep, 2006 1 commit
    • igor@rurik.mysql.com's avatar
      Fixed bug #22753. · 89028dbb
      igor@rurik.mysql.com authored
      After the patch for big 21698 equality propagation stopped
      working for BETWEEN and IN predicates with STRING arguments.
      This changeset completes the solution of the above patch.
      89028dbb
  7. 28 Sep, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug#20503: Server crash due to the ORDER clause not taken into account · e0461067
      evgen@moonbone.local authored
      while space allocation
      
      Under some circumstances DISTINCT clause can be converted to grouping.
      In such cases grouping is performed by all items in the select list.
      If an ORDER clause is present then items from it is prepended to group list.
      But the case with ORDER wasn't taken into account when allocating the
      array for sum functions. This leads to memory corruption and crash.
      
      The JOIN::alloc_func_list() function now allocates additional space if there
      is an ORDER by clause is specified and DISTINCT -> GROUP BY optimization is
      possible.
      e0461067
  8. 25 Aug, 2006 1 commit
  9. 26 Jul, 2006 1 commit
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug #21019: First result of SELECT COUNT(*) different than consecutive runs · 6766cfcd
      gkodinov/kgeorge@macbook.gmz authored
       When optimizing conditions like 'a = <some_val> OR a IS NULL' so that they're
       united into a single condition on the key and checked together the server must 
       check which value is the NULL value in a correct way : not only using ->is_null 
       but also check if the expression doesn't depend on any tables referenced in the 
       current statement. 
       This additional check must be performed because that optimization takes place 
       before the actual execution of the statement, so if the field was initialized 
       to NULL from a previous statement the optimization would be applied incorrectly.
      6766cfcd
  10. 25 Jul, 2006 1 commit
    • timour/timka@lamia.home's avatar
      Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set · 86ae2f3b
      timour/timka@lamia.home authored
      The problem was in that opt_sum_query() replaced MIN/MAX functions
      with the corresponding constant found in a key, but due to imprecise
      representation of float numbers, when evaluating the where clause,
      this comparison failed.
      
      When MIN/MAX optimization detects that all tables can be removed,
      also remove all conjuncts in a where clause that refer to these
      tables. As a result of this fix, these conditions are not evaluated
      twice, and in the case of float number comparisons we do not discard
      result rows due to imprecise float representation.
      
      As a side-effect this fix also corrects an unnoticed problem in
      bug 12882.
      86ae2f3b
  11. 17 Jul, 2006 1 commit
  12. 15 Jul, 2006 1 commit
  13. 06 Jul, 2006 1 commit
  14. 20 Jun, 2006 2 commits
    • evgen@moonbone.local's avatar
      field.cc, field.h: · 8c0aa356
      evgen@moonbone.local authored
        Additional fix for #16377 for bigendian platforms
      sql_select.cc, select.result, select.test:
        After merge fix
      8c0aa356
    • evgen@moonbone.local's avatar
      select.result: · ae6970e6
      evgen@moonbone.local authored
        Added test case for bug#18759 Incorrect string to numeric conversion.  
      select.test:
        Added test case for bug#18759 Incorrect string to numeric conversion.
      item_cmpfunc.cc:
        Cleanup after fix for bug#18360 removal
      ae6970e6
  15. 14 Jun, 2006 1 commit
    • gkodinov@mysql.com's avatar
      Bug #18895: BIT values cause joins to fail · 476d728a
      gkodinov@mysql.com authored
      The Field::eq() considered instances of Field_bit that differ only in 
      bit_ptr/bit_ofs equal. This caused equality conditions optimization 
      (build_equal_items_for_cond()) to make bad field substitutions that result
      in wrong predicates. 
      Field_bit requires an overloaded eq() function that checks the bit_ptr/bit_ofs
      in addition to Field::eq().
      476d728a
  16. 02 Jun, 2006 2 commits
  17. 30 May, 2006 1 commit
  18. 28 May, 2006 1 commit
  19. 12 May, 2006 1 commit
    • igor@rurik.mysql.com's avatar
      Added a test case for bug #18940:in 5.0 the optimizer chose · d1417ad5
      igor@rurik.mysql.com authored
      a worse execution plan than in 4.1 for some queries.
      It happened due the fact that at some conditions the 
      optimizer always preferred range or full index scan access
      methods to lookup access methods even when the latter were much
      cheaper. 
      The problem was not observed in 4.1 for the reported query
      because the WHERE condition was not of a form that could
      cause the problem.
      Equality propagation introduced on 5.0 added an extra 
      predicate and changed the WHERE condition. The new condition
      provoked the optimizer to make a bad choice.
      
      The problem was fixed by the patch for bug 17379.
      d1417ad5
  20. 10 May, 2006 1 commit
  21. 04 May, 2006 1 commit
  22. 01 Apr, 2006 1 commit
    • igor@rurik.mysql.com's avatar
      Fixed bug #16504. · af2d79a7
      igor@rurik.mysql.com authored
      Multiple equalities were not adjusted after reading constant tables.
      It resulted in neglecting good index based methods that could be
      used to access of other tables.
      af2d79a7
  23. 11 Jan, 2006 3 commits
    • evgen@moonbone.local's avatar
      Fixed bug #15538: unchecked table absence caused server crash. · 41ef3435
      evgen@moonbone.local authored
      Absence of table in left part of LEFT/RIGHT join wasn't checked before
      name resolution which resulted in NULL dereferencing and server crash.
      
      Modified rules: 
      "table_ref LEFT opt_outer JOIN_SYM table_ref" and "table_ref RIGHT opt_outer 
      JOIN_SYM table_ref"
      NULL check is moved before push_new_name_resolution_context()
      41ef3435
    • evgen@moonbone.local's avatar
      Fixed bug #15347: Wrong result of subselect when records cache and set · 3e23d458
      evgen@moonbone.local authored
      functions are involved.
      
      When subselect is a join with set functions and no record have been found in
      it, end_send_group() sets null_row for all tables in order aggregate functions 
      to calculate their values correctly. Normally this null_row flag is cleared for 
      each table in sub_select(), but flush_cached_records() doesn't do so.
      Due to this all fields from the table processed by flush_cached_records() are 
      always evaluated as nulls and whole select produces wrong result.
      
      flush_cached_records() now clears null_row flag at the very beginning.
      3e23d458
    • evgen@moonbone.local's avatar
      Fixed bug #15633: Evaluation of Item_equal for non-const table caused wrong · 605f62fc
      evgen@moonbone.local authored
      select result
      
      Item equal objects are employed only at the optimize phase. Usually they are not
      supposed to be evaluated.  Yet in some cases we call the method val_int() for
      them. Here we have to take care of restricting the predicate such an object
      represents f1=f2= ...=fn to the projection of known fields fi1=...=fik.
      
      Added a check for field's table being const in Item_equal::val_int().
      If the field's table is not const val_int() just skips that field when
      evaluating Item_equal.
      605f62fc
  24. 09 Dec, 2005 1 commit
  25. 26 Nov, 2005 1 commit
  26. 24 Nov, 2005 1 commit
    • evgen@moonbone.local's avatar
      Fix bug #14482 Wrongly applied optimization in resolve_const_item() caused · a4a3215a
      evgen@moonbone.local authored
      crash
      
      resolve_const_item() substitutes item which will evaluate to constant with
      equvalent constant item, basing on the item's result type. In this case
      subselect was resolved as constant, and resolve_const_item() was substituting
      it's result's Item_caches to Item_null. Later Item_cache's function was called
      for Item_null object, which caused server crash.
      
      resolve_const_item() now substitutes constants for items with 
      result_type == ROW_RESULT only for Item_rows.
      a4a3215a
  27. 11 Nov, 2005 1 commit
  28. 03 Nov, 2005 1 commit
  29. 25 Oct, 2005 1 commit
    • timour@mysql.com's avatar
      Fix for BUG#13832 - Unknown column t1.a in 'on clause'. · f5354eba
      timour@mysql.com authored
      The cause for the bug is that the priorities of all rules/terminals
      that process the FROM clause are not fully specified, and the
      parser generator produces a parser that doesn't always parse
      the FROM clause so that JOINs are left-associative. As a result
      the final join tree produced by the parser is incorrect, which
      is the cause for subsequent name resolution to fail.
      f5354eba
  30. 21 Oct, 2005 1 commit
  31. 13 Oct, 2005 4 commits
  32. 12 Oct, 2005 1 commit