1. 19 Oct, 2006 4 commits
  2. 18 Oct, 2006 1 commit
  3. 17 Oct, 2006 9 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 2a951698
      unknown authored
      into  sunlight.local:/local_work/14959-bug-5.0-opt-mysql
      
      2a951698
    • unknown's avatar
      sql_rename.cc: · fc075268
      unknown authored
        Cleanup of fix for bug#14959.
      
      
      sql/sql_rename.cc:
        Cleanup of fix for bug#14959.
      fc075268
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · d85dfe59
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      d85dfe59
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-5.0-opt · 88df828b
      unknown authored
      into  rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug19579
      
      
      mysql-test/t/select.test:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/select.result:
        SCCS merged
      88df828b
    • unknown's avatar
      ba127a9e
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · 964a52b4
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B21798-5.0-opt-merge
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/sql_update.cc:
        Auto merged
      mysql-test/r/subselect.result:
        merge fixes for bug 21798
      mysql-test/t/subselect.test:
        merge fixes for bug 21798
      964a52b4
    • unknown's avatar
      Bug#21798: memory leak during query execution with subquery in column · ce5b38bd
      unknown 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.
      
      
      mysql-test/r/subselect.result:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - test case
      mysql-test/t/subselect.test:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - test case
      sql/mysql_priv.h:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the entities allocated in the threads memory pool by
           JOIN::exec ().
      sql/sql_delete.cc:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      sql/sql_select.cc:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      sql/sql_select.h:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      sql/sql_table.cc:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      sql/sql_update.cc:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      ce5b38bd
    • unknown's avatar
      merge changes becuase of the fix for bug 22367 · eb64c625
      unknown authored
      eb64c625
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · e2f0c0f9
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B22367-5.0-opt-merge
      
      
      include/my_base.h:
        Auto merged
      mysql-test/r/select.result:
        merge of 5.0-opt to 22367
      mysql-test/t/select.test:
        merge of 5.0-opt to 22367
      e2f0c0f9
  4. 16 Oct, 2006 9 commits
    • unknown's avatar
      Fixed bug #19579: at range analysis optimizer did not take into · 93a82420
      unknown 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.
      
      
      
      mysql-test/r/select.result:
        Added a test case for bug #19579.
      mysql-test/t/select.test:
        Added a test case for bug #19579.
      sql/item_cmpfunc.cc:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Added a counter of between predicates.
      sql/sql_base.cc:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Added a counter of between predicates.
      sql/sql_lex.cc:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Added a counter of between predicates.
      sql/sql_lex.h:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Added a counter of between predicates.
      sql/sql_select.cc:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        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.
      93a82420
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 5207d860
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B22342-5.0-opt
      
      
      sql/opt_range.cc:
        Auto merged
      5207d860
    • unknown's avatar
      Bug #22342: No results returned for query using max and group by · 1d3a5f57
      unknown 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).
      
      
      mysql-test/r/group_min_max.result:
        Bug #22342: No results returned for query using max and group by
         - test case
      mysql-test/t/group_min_max.test:
        Bug #22342: No results returned for query using max and group by
         - test case
      sql/opt_range.cc:
        Bug #22342: No results returned for query using max and group by
         - open the intervals for prefix select when there are more conditions
           than used for the prefix search.
      sql/opt_range.h:
        Bug #22342: No results returned for query using max and group by
         - open the intervals for prefix select when there are more conditions
           than used for the prefix search.
      1d3a5f57
    • unknown's avatar
      Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on · fabcd518
      unknown 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.
      
      
      include/my_base.h:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - disabled HA_END_SPACE_KEY as it's no longer needed
      mysql-test/r/func_str.result:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - fixed explain in an existing case
      mysql-test/r/merge.result:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - fixed explain in an existing case
      mysql-test/r/select.result:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - test case
      mysql-test/r/subselect.result:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - fixed explain in an existing case
      mysql-test/t/select.test:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - test case
      fabcd518
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · c15fc8f4
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B14019-5.0-opt
      
      c15fc8f4
    • unknown's avatar
      Merge update of the fix for bug 14019 in 5.0 · c7c034c5
      unknown authored
      c7c034c5
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 10c15e9f
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B14019-4.1-opt
      
      10c15e9f
    • unknown's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/B14019-4.1-opt · f85e990a
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B14019-5.0-opt
      
      
      mysql-test/r/func_gconcat.result:
        Auto merged
      mysql-test/t/func_gconcat.test:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      mysql-test/r/group_by.result:
        merge 4.1->5.0
      mysql-test/t/group_by.test:
        merge 4.1->5.0
      f85e990a
    • unknown's avatar
      BUG#14019 : group by converts literal string to column name · a885a6db
      unknown 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.
      
      
      mysql-test/r/func_gconcat.result:
        Bug #14019: group by converts literal string to column name
         - removed undeterministic testcase : order by a constant 
           means no order.
      mysql-test/r/group_by.result:
        Bug #14019: group by converts literal string to column name
         - test case
      mysql-test/t/func_gconcat.test:
        Bug #14019: group by converts literal string to column name
         - removed undeterministic testcase : order by a constant 
           means no order.
      mysql-test/t/group_by.test:
        Bug #14019: group by converts literal string to column name
         - test case
      sql/sql_base.cc:
        Bug #14019: group by converts literal string to column name
         - resolve unqualified by name refs only for real references
      a885a6db
  5. 13 Oct, 2006 4 commits
    • unknown's avatar
      Bug#14959: ALTER TABLE isn't able to rename a view · 5e587558
      unknown 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.
      
      
      mysql-test/t/rename.test:
        Added a test case for bug#14959: ALTER TABLE isn't able to rename a view
      mysql-test/r/rename.result:
        Added a test case for bug#14959: ALTER TABLE isn't able to rename a view
      sql/mysql_priv.h:
        Bug#14959: ALTER TABLE isn't able to rename a view
        Added the prototype of the do_rename() function.
      sql/sql_rename.cc:
        Bug#14959: ALTER TABLE isn't able to rename a view
        The view/table renaming code is moved from the function rename_tables
        to the new function called do_rename().
      sql/sql_table.cc:
        Bug#14959: ALTER TABLE isn't able to rename a view
        Added handling of a view rename to the mysql_alter_table() function.
      5e587558
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1 · f8048918
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug9678
      
      f8048918
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug9678 · 197ab7a8
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-real
      
      
      include/violite.h:
        SCCS merged
      sql/net_serv.cc:
        SCCS merged
      vio/viosocket.c:
        SCCS merged
      197ab7a8
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.0 · b35f7c1b
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug9678
      
      
      BitKeeper/deleted/.del-lib_vio.c~d779731a1e391220:
        Use local.
      include/violite.h:
        Use local.
      sql/net_serv.cc:
        Use local.
      vio/viosocket.c:
        Use local.
      b35f7c1b
  6. 12 Oct, 2006 1 commit
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-4.1 · 9cb66b46
      unknown authored
      into  mysql.com:/home/hf/mysql-5.0.mrg
      
      
      include/m_ctype.h:
        Auto merged
      mysql-test/r/ctype_utf8.result:
        Auto merged
      mysql-test/r/type_enum.result:
        Auto merged
      mysql-test/t/ctype_utf8.test:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      sql/unireg.cc:
        Auto merged
      strings/ctype-mb.c:
        SCCS merged
      strings/ctype-utf8.c:
        SCCS merged
      9cb66b46
  7. 11 Oct, 2006 3 commits
    • unknown's avatar
      Bug#22138: Unhandled NULL caused server crash · 09cfff5f
      unknown 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.
      
      
      sql/item_buff.cc:
        Bug#22138: Unhandled NULL caused server crash
        The Cached_item_decimal::cmp() method now check for null values.
      mysql-test/r/type_decimal.result:
        Added the test case for bug#22138: Unhandled NULL caused server crash
      mysql-test/t/type_decimal.test:
        Added the test case for bug#22138: Unhandled NULL caused server crash
      09cfff5f
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-rpl · 72988a1c
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      72988a1c
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-4.1-rpl · 046419c3
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-4.1
      
      046419c3
  8. 10 Oct, 2006 3 commits
  9. 09 Oct, 2006 2 commits
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · b7e4fe3b
      unknown authored
      into  macbook.local:/Users/kgeorge/mysql/work/B22781-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      b7e4fe3b
    • unknown's avatar
      Bug #22781: SQL_BIG_RESULT fails to influence sort plan · 16a0344a
      unknown 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.
      
      
      mysql-test/r/bdb.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/r/group_by.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with MyISAM
      mysql-test/r/innodb.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/r/innodb_mysql.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with InnoDB
      mysql-test/r/myisam.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/t/group_by.test:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with MyISAM
      mysql-test/t/innodb_mysql.test:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with InnoDB
      sql/sql_select.cc:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - When SQL_BIG_RESULT is specified, disable the optimization performed
        at execution/explain time that decides to use an index instead
        of filesort.
      16a0344a
  10. 08 Oct, 2006 4 commits