1. 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
  2. 27 Jul, 2006 3 commits
  3. 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
  4. 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
  5. 22 Jul, 2006 9 commits
  6. 21 Jul, 2006 8 commits
    • unknown's avatar
      Merge mysql.com:/home/psergey/mysql-4.1-opt · 8fc51f7a
      unknown authored
      into  mysql.com:/home/psergey/mysql-5.0-opt2
      
      
      mysql-test/r/subselect.result:
        Manual merge
      mysql-test/t/subselect.test:
        Manual merge
      8fc51f7a
    • unknown's avatar
      Add missing "DROP TABLE" clause · 9d432f0d
      unknown authored
      9d432f0d
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · f171d628
      unknown authored
      into  moonbone.local:/work/autopush/12185-bug-5.0-opt-mysql
      
      
      mysql-test/r/create.result:
        Auto merged
      mysql-test/t/innodb.test:
        Auto merged
      sql/field.cc:
        Auto merged
      sql/field.h:
        Auto merged
      sql/item.cc:
        Auto merged
      mysql-test/r/union.result:
        SCCS merged
      mysql-test/t/union.test:
        SCCS merged
      f171d628
    • unknown's avatar
      Fixed bug#12185: Data type aggregation may produce wrong result · 35209c68
      unknown authored
      The Item::tmp_table_field_from_field_type() function creates Field_datetime
      object instead of Field_timestamp object for timestamp field thus always
      changing data type is a tmp table is used.
      
      The Field_blob object constructor which is used in the 
      Item::tmp_table_field_from_field_type() is always setting packlength field of
      newly created blob to 4. This leads to changing fields data type for example
      from the blob to the longblob if a temporary table is used.
      
      The Item::make_string_field() function always converts Field_string objects 
      to Field_varstring objects. This leads to changing data type from the 
      char/binary to varchar/varbinary.
      
      Added appropriate Field_timestamp object constructor for using in the 
      Item::tmp_table_field_from_field_type() function.
      
      Added Field_blob object constructor which sets pack length according to
      max_length argument.
      
      The Item::tmp_table_field_from_field_type() function now creates
      Field_timestamp object for a timestamp field.
      
      The Item_type_holder::display_length() now returns correct NULL length NULL
      length. 
      
      The Item::make_string_field() function now doesn't change Field_string to
      Field_varstring in the case of Item_type_holder. 
      
      The Item::tmp_table_field_from_field_type() function now uses the Field_blob
      constructor which sets packlength according to max_length.
      
      
      mysql-test/t/union.test:
        Added test case for bug#12185: Data type aggregation may produce wrong result
        Corrected test case after fix for bug#12185
      mysql-test/t/innodb.test:
        Corrected test case after fix for bug#12185
      mysql-test/r/union.result:
        Added test case for bug#12185: Data type aggregation may produce wrong result
         Corrected test case after fix for bug#12185
      mysql-test/r/innodb.result:
        Corrected test case after fix for bug#12185
      mysql-test/r/create.result:
        Corrected the test case after fixing bug#12185
      sql/field.h:
        Fixed bug#12185: Data type aggregation may produce wrong result
        Added Field_blob object constructor which sets packlength according to
        max_length argument.
      sql/item.cc:
        Fixed bug#12185: Data type aggregation may produce wrong result
        The Item::make_string_field() function now doesn't change Field_string to
        Field_varstring in the case of Item_type_holder.
        The Item::tmp_table_field_from_field_type() function now creates
        Field_timestamp object for a timestamp field.
        The Item::tmp_table_field_from_field_type() function now uses the Field_blob
        constructor which sets packlength according to max_length.
        The Item_type_holder::display_length() now returns correct NULL length NULL
        length.
      sql/field.cc:
        Fixed bug#12185: Data type aggregation may produce wrong result
        Added appropriate Field_timestamp object constructor for using in the 
        Item::tmp_table_field_from_field_type() function.
      35209c68
    • unknown's avatar
      Merge mysql.com:/home/psergey/mysql-4.1-opt · c13be230
      unknown authored
      into  mysql.com:/home/psergey/mysql-5.0-opt
      
      
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_cmpfunc.h:
        Auto merged
      sql/item_subselect.cc:
        Auto merged
      sql/item_subselect.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      mysql-test/r/subselect.result:
        Manual merge
      mysql-test/t/subselect.test:
        Manual merge
      sql/mysql_priv.h:
        Manual merge
      c13be230
    • unknown's avatar
      Bug #20466: a view is mixing data when there's a trigger on the table · 7118c252
      unknown authored
        When making a place to store field values at the start of each group
        the real item (not the reference) must be used when deciding which column
        to copy.
      
      
      mysql-test/r/group_by.result:
        Bug #20466: a view is mixing data when there's a trigger on the table
         - test suite for the bug
      mysql-test/t/group_by.test:
        Bug #20466: a view is mixing data when there's a trigger on the table
         - test suite for the bug
      sql/sql_select.cc:
        Bug #20466: a view is mixing data when there's a trigger on the table
         - deal correctly with references
      7118c252
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 47d6f7a6
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B20868-5.0-opt
      
      
      47d6f7a6
    • unknown's avatar
      Bug #20868: Client connection is broken on SQL query error · 8024aabb
      unknown authored
       An aggregate function reference was resolved incorrectly and
      caused a crash in count_field_types.
       Must use real_item() to get to the real Item instance through
      the reference
      
      
      mysql-test/r/func_group.result:
        Bug #20868: Client connection is broken on SQL query error
         * test case for the bug
      mysql-test/t/func_group.test:
        Bug #20868: Client connection is broken on SQL query error
         * test case for the bug
      sql/sql_select.cc:
        Bug #20868: Client connection is broken on SQL query error
         * correctly resolve aggregate function references.
      8024aabb