1. 14 Aug, 2006 1 commit
    • unknown's avatar
      Bug #21174: Index degrades sort performance and · 6675c2c2
      unknown authored
                   optimizer does not honor IGNORE INDEX
       - Allow an index to be used for sorting the table 
         instead of filesort only if it is not disabled by
         IGNORE INDEX.
      
      
      mysql-test/r/group_by.result:
        Bug #21174: Index degrades sort performance and 
                     optimizer does not honor IGNORE INDEX
         - test case
      mysql-test/t/group_by.test:
        Bug #21174: Index degrades sort performance and 
                     optimizer does not honor IGNORE INDEX
         - test case
      6675c2c2
  2. 01 Aug, 2006 4 commits
  3. 31 Jul, 2006 5 commits
    • unknown's avatar
      select.result, func_group.result, sql_select.cc: · 45871dbf
      unknown authored
        After merge fix
      
      
      mysql-test/r/select.result:
        After merge fix
      mysql-test/r/func_group.result:
        After merge fix
      sql/sql_select.cc:
        After merge fix
      45871dbf
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 464cb603
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B11551-5.0-opt
      
      
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/view.test:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      464cb603
    • unknown's avatar
      Bug #11551: Asymmetric + undocumented behaviour of DROP VIEW and DROP TABLE · b74cb623
      unknown authored
       
      made DROP VIEW to continue on error and report an aggregated error 
       at its end. This makes it similar to DROP TABLE.
      
      
      mysql-test/r/view.result:
        Bug #11551: Asymmetric + undocumented behaviour of DROP VIEW and DROP TABLE
         - test case
         - changed error message
      mysql-test/t/view.test:
        Bug #11551: Asymmetric + undocumented behaviour of DROP VIEW and DROP TABLE
         - test case
      sql/sql_view.cc:
        Bug #11551: Asymmetric + undocumented behaviour of DROP VIEW and DROP TABLE
         - made DROP VIEW to continue on error and report an aggregated error
      b74cb623
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · 4acf6de8
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B21080-5.0-opt
      
      
      mysql-test/r/view.result:
        merge
      mysql-test/t/view.test:
        merge
      4acf6de8
    • unknown's avatar
      Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM · c8673b09
      unknown authored
        When executing ALTER TABLE all the attributes of the view were overwritten.
        This is contrary to the user's expectations.
        So some of the view attributes are preserved now : namely security and 
        algorithm. This means that if they are not specified in ALTER VIEW
        their values are preserved from CREATE VIEW instead of being defaulted.
      
      
      mysql-test/r/view.result:
        Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM
         - test suite
      mysql-test/t/view.test:
        Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM
         - test suite
      sql/sql_lex.h:
        Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM
         - must make create_view_suid a tristate : on/off/unspecified
      sql/sql_view.cc:
        Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM
         - open the view to get it's attributes and put then as defaults 
           for ALTER VIEW
      sql/sql_yacc.yy:
        Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM
         - must make create_view_suid a tristate : on/off/unspecified
      sql/table.h:
        Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM
         - must make create_view_suid a tristate : on/off/unspecified
      c8673b09
  4. 29 Jul, 2006 1 commit
    • unknown's avatar
      Merge sunlight.local:/local_work/tmp_merge-4.1-opt-mysql · 08be4e96
      unknown authored
      into  sunlight.local:/local_work/tmp_merge-5.0-opt-mysql
      
      
      mysql-test/t/select.test:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/func_group.result:
        Manual merge
      mysql-test/r/select.result:
        Manual merge
      mysql-test/r/subselect.result:
        Manual merge
      08be4e96
  5. 27 Jul, 2006 3 commits
  6. 26 Jul, 2006 10 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · f15c5686
      unknown authored
      into  moonbone.local:/work/19862-bug-5.0-opt-mysql
      
      
      f15c5686
    • unknown's avatar
      item_func.h, item_func.cc, sql_select.cc, item.h: · 1150869c
      unknown authored
        Post review changes for bug#19862.
      
      
      sql/sql_select.cc:
        Post review changes for bug#19862.
      sql/item_func.h:
        Post review changes for bug#19862.
      sql/item_func.cc:
        Post review changes for bug#19862.
      sql/item.h:
        Post review changes for bug#19862.
      1150869c
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · bb81f6ac
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B20792-4.1-opt
      
      
      sql/sql_select.cc:
        Auto merged
      bb81f6ac
    • unknown's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/B20792-4.1-opt · c7c8c33c
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B20792-5.0-opt
      
      
      mysql-test/r/subselect2.result:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      c7c8c33c
    • unknown's avatar
      * Bug #20792: Incorrect results from aggregate subquery · 6b75e24b
      unknown authored
      When processing aggregate functions all tables values are reset
      to NULLs at the end of each group. 
      When doing that if there are no rows found for a group
      the const tables must not be reset as they are not recalculated 
      by do_select()/sub_select() for each group.
      
      
      mysql-test/r/subselect2.result:
        * Bug #20792: Incorrect results from aggregate subquery
         - test suite for the bug. This is dependent on InnoDB despite
           the fact that the bug and the fix are not InnoDB specific.
           This is because of the table flag HA_NOT_EXACT_COUNT.
           When this flag is off (as in MyISAM) both t2 and t3 become of
           join type 'system' as they are estimated to have 1 record and
           and this statistics can be trusted (according to the absence of
           HA_NOT_EXACT_COUNT).
      mysql-test/t/subselect2.test:
        * Bug #20792: Incorrect results from aggregate subquery
         - test suite for the bug
      sql/sql_select.cc:
        * Bug #20792: Incorrect results from aggregate subquery
         - when clearing results if there are not rows found for group
           the const tables must not be reset as they are not recalculated
           for each group.
      6b75e24b
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 70d27b35
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B21019-4.1-opt
      
      
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/select.result:
        SCCS merged
      mysql-test/t/select.test:
        SCCS merged
      70d27b35
    • unknown's avatar
      8c92143b
    • unknown's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/B21019-4.1-opt · 048fbb84
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B21019-5.0-opt
      
      
      mysql-test/t/select.test:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/select.result:
        SCCS merged
      048fbb84
    • unknown's avatar
      Bug #21019: First result of SELECT COUNT(*) different than consecutive runs · 5ca1ee5e
      unknown 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.
      
      
      mysql-test/r/select.result:
        Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
         - test case
      mysql-test/t/select.test:
        Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
         - test case. 
           Note that ALTER TABLE is important here : it happens to
           leave the Field instance for t1.b set to NULL, witch is vital for
           demonstrating the problem fixed by this changeset.
      sql/sql_select.cc:
        Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
         - check whether a value is null taking into account its table dependency.
      5ca1ee5e
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 38091170
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B21086-5.0-opt
      
      
      38091170
  7. 25 Jul, 2006 9 commits
    • unknown's avatar
      Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 03fc0a8f
      unknown authored
      into  lamia.home:/home/tkatchaounov/autopush/4.1-bug-20954
      
      
      mysql-test/r/subselect.result:
        Auto merged
      03fc0a8f
    • unknown's avatar
      Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set · 585b5bbc
      unknown 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.
      
      
      mysql-test/r/func_group.result:
        BUG#20954 - test result adjustment.
        Adjusted the test result of bug 12882 which was not preperly fixed.
        The current patch corrects the problem that was fully corrected by the
        patch for 12882.
        
        The problem was that opt_sum_query() indicated that the optimizer may
        remove all tables because all MIN/MAX/COUNT functions are constants,
        but this lead to an empty result instead of NULL because the WHERE
        clause was still evaluated.
        
        The current fix removes all conjuncts in the where clause that
        reference the removed tables, and thus corrects the problem.
      mysql-test/r/select.result:
        BUG#20954 - added test
      mysql-test/r/subselect.result:
        BUG#20954 - test result adjustment.
        
        The fix removes those conditions in a where clause that refer to
        tables optimized away by MIN/MAX optimization (opt_sum_query()).
      mysql-test/t/select.test:
        BUG#20954 - added test
      sql/sql_select.cc:
        Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set
        
        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.
      585b5bbc
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · beb6f57c
      unknown authored
      into  moonbone.local:/work/19862-bug-5.0-opt-mysql
      
      
      sql/item_func.h:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      beb6f57c
    • unknown's avatar
      Fixed bug#19862: Sort with filesort by function evaluates function twice · 9a63adc8
      unknown authored
      When there is no index defined filesort is used to sort the result of a
      query. If there is a function in the select list and the result set should be
      ordered by it's value then this function will be evaluated twice. First time to
      get the value of the sort key and second time to send its value to a user.
      This happens because filesort when sorts a table remembers only values of its
      fields but not values of functions.
      All functions are affected. But taking into account that SP and UDF functions
      can be both expensive and non-deterministic a temporary table should be used 
      to store their results and then sort it to avoid twice SP evaluation and to 
      get a correct result.
      
      If an expression referenced in an ORDER clause contains a SP or UDF 
      function, force the use of a temporary table.
      
      A new Item_processor function called func_type_checker_processor is added
      to check whether the expression contains a function of a particular type.
      
      
      mysql-test/t/udf.test:
        Added test case for bug#19862: Sort with filesort by function evaluates function twice
      mysql-test/t/sp.test:
        Added test case for bug#19862: Sort with filesort by function evaluates function twice
      mysql-test/r/sp.result:
        Added test case for bug#19862: Sort with filesort by function evaluates function twice
      mysql-test/r/udf.result:
        Added test case for bug#19862: Sort with filesort by function evaluates function twice
      sql/sql_select.cc:
        Fixed bug#19862: Sort with filesort by function evaluates function twice
        If an expression referenced in an ORDER clause contains a SP or UDF
        function, force the use of a temporary table.
      sql/item_func.h:
        Fixed bug#19862: Sort with filesort by function evaluates function twice
        A new Item_processor function called func_type_checker_processor is added
        to check whether the expression contains a function of a particular type.
      sql/item.h:
        Fixed bug#19862: Sort with filesort by function evaluates function twice
        A new Item_processor function called func_type_checker_processor is added
        to check whether the expression contains a function of a particular type.
      sql/item_func.cc:
        Fixed bug#19862: Sort with filesort by function evaluates function twice
        A new Item_processor function called func_type_checker_processor is added
        to check whether the expression contains a function of a particular type.
      9a63adc8
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · ca3dbd26
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      ca3dbd26
    • unknown's avatar
      Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called · 1b3cdb60
      unknown authored
        When executing INSERT over a view with calculated columns it was assuming all
        elements of the fields collection are actually Item_field instances.
        This may not be true when inserting into a view and that view has columns that are 
        such expressions that allow updating (like setting a collation for example).
        Corrected to access field information through the filed_for_view_update() function and 
        retrieve correctly the field info even for "update-friendly" non-Item_field items.
      
      
      mysql-test/r/view.result:
        Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called
         - test suite
      mysql-test/t/view.test:
        Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called
         - test suite
      sql/item_strfunc.h:
        Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called
         - obvious typo fixed
      sql/sql_base.cc:
        Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called
         - must access field information through the filed_for_view_update() function to retrieve
           correctly the field info even for "update-friendly" non-Item_field items.
      1b3cdb60
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · bc6fd749
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B16712-5.0-opt
      
      
      sql/item_sum.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      bc6fd749
    • unknown's avatar
      Bug#16712: group_concat returns odd srting insead of intended result · 4e7121c0
      unknown authored
        when calculating GROUP_CONCAT all blob fields are transformed
        to varchar when making the temp table.
        However a varchar has at max 2 bytes for length. 
        This fix makes the conversion only for blobs whose max length 
        is below that limit. 
        Otherwise blob field is created by make_string_field() call.
      
      
      mysql-test/r/func_gconcat.result:
        Bug#16712: group_concat returns odd srting insead of intended result
          * testsuite for the bug
      mysql-test/t/func_gconcat.test:
        Bug#16712: group_concat returns odd srting insead of intended result
          * testsuite for the bug
      sql/item_sum.cc:
        Bug#16712: group_concat returns odd srting insead of intended result
          * force blob->varchar conversion for small enough blobs only
      sql/sql_select.cc:
        Bug#16712: group_concat returns odd srting insead of intended result
          * force blob->varchar conversion for small enough blobs only
      4e7121c0
    • unknown's avatar
      Fixed bug #21231: wrong results for a simple query with a · d64f605e
      unknown authored
      a non-correlated single-row subquery over information schema.
      
      The function get_all_tables filling all information schema
      tables reset lex->sql_command to SQLCOM_SHOW_FIELDS. After
      this the function could evaluate partial conditions related to
      some columns. If these conditions contained a subquery over
      information schema it led to a wrong evaluation and a wrong 
      result set.
      This bug was already fixed in 5.1.
      This patch follows the way how it was done in 5.1 where
      the value of lex->sql_command is set to SQLCOM_SHOW_FIELDS
      in get_all_tables only for the calls of the function 
      open_normal_and_derived_tables and is restored after these
      calls.
      
      
      mysql-test/r/information_schema.result:
        Added a test case for bug #21231.
      mysql-test/t/information_schema.test:
        Added a test case for bug #21231.
      d64f605e
  8. 22 Jul, 2006 7 commits
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 800b1600
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      800b1600
    • unknown's avatar
      Fixed bug #18925: wrong results for queries with · 43df9fd3
      unknown authored
      subqueries on information schema that use MIN/MAX aggregation.
      
      Execution of some correlated subqueries may set the value
      of null_row to 1 for tables used in the subquery.
      If the the subquery is on information schema it causes
      rejection of any row for the following executions of
      the subquery in the case when an optimization filtering
      by some condition is applied.
      
      The fix restores the value of the null_row flag for 
      each execution of a subquery on information schema.
      
      
      mysql-test/r/information_schema.result:
        Added a test case for bug #18925.
      mysql-test/t/information_schema.test:
        Added a test case for bug #18925.
      sql/sql_show.cc:
        Fixed bug #18925.
        Execution of some correlated subqueries may set the value
        of null_row to 1 for tables used in the subquery.
        If the the subquery is on information schema it causes
        rejection of any row for the following execitions of
        the subquery in the case when an optimization filtering
        by some condition is applied.
        
        The fix restores the value of the null_row flag for 
        each execution of a subquery on information schema.
      43df9fd3
    • unknown's avatar
      Merge office:mysql/autopush/B20466-5.0-opt · 8a596b02
      unknown authored
      into  macbook.mshome.net:/Users/kgeorge/mysql/work/B20466-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      8a596b02
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 6c6c280b
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B20868-5.0-opt
      
      
      6c6c280b
    • unknown's avatar
      Post-merge fixes · 0f5797f5
      unknown authored
      0f5797f5
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · c24e91ec
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B20868-5.0-opt
      
      
      c24e91ec
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 0950a316
      unknown authored
      into  mysql.com:/home/psergey/mysql-5.0-opt2
      
      
      0950a316