1. 17 Oct, 2006 4 commits
    • gkodinov/kgeorge@macbook.gmz's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · a64ae184
      gkodinov/kgeorge@macbook.gmz authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B21798-5.0-opt-merge
      a64ae184
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug#21798: memory leak during query execution with subquery in column · f7b89376
      gkodinov/kgeorge@macbook.gmz authored
                  list using a function
      When executing dependent subqueries they are re-inited and re-exec() for 
      each row of the outer context.
      The cause for the bug is that during subquery reinitialization/re-execution,
      the optimizer reallocates JOIN::join_tab, JOIN::table in make_simple_join()
      and the local variable in 'sortorder' in create_sort_index(), which is
      allocated by make_unireg_sortorder().
      Care must be taken not to allocate anything into the thread's memory pool
      while re-initializing query plan structures between subquery re-executions.
      All such items mush be cached and reused because the thread's memory pool
      is freed at the end of the whole query.
      Note that they must be cached and reused even for queries that are not 
      otherwise cacheable because otherwise it will grow the thread's memory 
      pool every time a cacheable query is re-executed. 
      We provide additional members to the JOIN structure to store references 
      to the items that need to be cached.
      f7b89376
    • gkodinov/kgeorge@macbook.gmz's avatar
    • gkodinov/kgeorge@macbook.gmz's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · 660d724f
      gkodinov/kgeorge@macbook.gmz authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B22367-5.0-opt-merge
      660d724f
  2. 16 Oct, 2006 7 commits
    • gkodinov/kgeorge@rakia.(none)'s avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · a5899ea8
      gkodinov/kgeorge@rakia.(none) authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B22342-5.0-opt
      a5899ea8
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug #22342: No results returned for query using max and group by · 0e954d2c
      gkodinov/kgeorge@macbook.gmz authored
       When using index for group by and range access the server isolates    
       a set of ranges based on the conditions over the key parts of the
       index used. Then it uses only the ranges over the GROUP BY fields to
       jump from one group to another. Since the GROUP BY fields may form a
       prefix over the index, we may use only a prefix of the ranges produced
       by the range optimizer.
       Each range contains a notion on whether it includes its border values.
       The problem is that when using a range prefix, the last range is open
       because it assumes that there is a range on the next keypart. Thus when
       we use a prefix range as it is, it excludes all border values.
       The solution is when ignoring the suffix of the range conditions 
       (to jump over the GROUP BY prefix only) the server must change the 
       remaining intervals so they always contain their borders, e.g. 
       if the whole range was :
       (1,-inf) <= (<group_by_col>,<min_max_arg_col>) < (1, 3) we must make
       (1) <= (<group_by_col>) <= (1) because (a,b) < (c1,c2) means :
       a < c1 OR (a = c1 AND b < c2).
      0e954d2c
    • 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
    • gkodinov/kgeorge@macbook.gmz's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · abad78f4
      gkodinov/kgeorge@macbook.gmz authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B14019-5.0-opt
      abad78f4
    • gkodinov/kgeorge@macbook.gmz's avatar
    • gkodinov/kgeorge@macbook.gmz's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/B14019-4.1-opt · dff0a1ac
      gkodinov/kgeorge@macbook.gmz authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B14019-5.0-opt
      dff0a1ac
    • gkodinov/kgeorge@macbook.gmz's avatar
      BUG#14019 : group by converts literal string to column name · 11561638
      gkodinov/kgeorge@macbook.gmz authored
         When resolving unqualified name references MySQL was not
         checking what is the item type for the reference. Thus
         e.g a string literal item that has by convention a name
         equal to its string value will also work as a reference to 
         a SELECT list item or a table field.
         Fixed by allowing only Item_ref or Item_field to referenced by
         (unqualified) name.
      11561638
  3. 13 Oct, 2006 1 commit
    • evgen@moonbone.local's avatar
      Bug#14959: ALTER TABLE isn't able to rename a view · 2b474898
      evgen@moonbone.local authored
      The mysql_alter_table() was able to rename only a table.
      
      The view/table renaming code is moved from the function rename_tables 
      to the new function called do_rename().
      The mysql_alter_table() function calls it when it needs to rename a view.
      2b474898
  4. 11 Oct, 2006 1 commit
    • evgen@moonbone.local's avatar
      Bug#22138: Unhandled NULL caused server crash · ea8a646d
      evgen@moonbone.local authored
      The Cached_item_decimal::cmp() method wasn't checking for null pointer
      returned from the val_decimal() of the item being cached.
      This leads to server crash.
      
      The Cached_item_decimal::cmp() method now check for null values.
      ea8a646d
  5. 09 Oct, 2006 2 commits
    • gkodinov/kgeorge@macbook.local's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · 5367793e
      gkodinov/kgeorge@macbook.local authored
      into  macbook.local:/Users/kgeorge/mysql/work/B22781-5.0-opt
      5367793e
    • gkodinov/kgeorge@macbook.local's avatar
      Bug #22781: SQL_BIG_RESULT fails to influence sort plan · 13633864
      gkodinov/kgeorge@macbook.local authored
       Currently SQL_BIG_RESULT is checked only at compile time.
       However, additional optimizations may take place after
       this check that change the sort method from 'filesort'
       to sorting via index. As a result the actual plan
       executed is not the one specified by the SQL_BIG_RESULT
       hint. Similarly, there is no such test when executing
       EXPLAIN, resulting in incorrect output.
       The patch corrects the problem by testing for
       SQL_BIG_RESULT both during the explain and execution
       phases.
      13633864
  6. 01 Oct, 2006 3 commits
  7. 29 Sep, 2006 7 commits
  8. 28 Sep, 2006 7 commits
  9. 27 Sep, 2006 7 commits
  10. 26 Sep, 2006 1 commit