1. 31 Jul, 2006 1 commit
  2. 29 Jul, 2006 1 commit
    • unknown's avatar
      Merge sunlight.local:/local_work/tmp_merge-4.1-opt-mysql · 207522c5
      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
      207522c5
  3. 27 Jul, 2006 3 commits
  4. 26 Jul, 2006 10 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 17adf8f9
      unknown authored
      into  moonbone.local:/work/19862-bug-5.0-opt-mysql
      
      17adf8f9
    • unknown's avatar
      item_func.h, item_func.cc, sql_select.cc, item.h: · eb38c451
      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.
      eb38c451
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 18723dc9
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B20792-4.1-opt
      
      
      sql/sql_select.cc:
        Auto merged
      18723dc9
    • unknown's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/B20792-4.1-opt · 89d16a5b
      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
      89d16a5b
    • unknown's avatar
      * Bug #20792: Incorrect results from aggregate subquery · 1f318e3c
      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.
      1f318e3c
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 7a12b237
      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
      7a12b237
    • unknown's avatar
      d3b66285
    • unknown's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/B21019-4.1-opt · 7dd965ae
      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
      7dd965ae
    • unknown's avatar
      Bug #21019: First result of SELECT COUNT(*) different than consecutive runs · 035ddb82
      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.
      035ddb82
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · c0a592e6
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B21086-5.0-opt
      
      c0a592e6
  5. 25 Jul, 2006 9 commits
    • unknown's avatar
      Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · eef7e4d0
      unknown authored
      into  lamia.home:/home/tkatchaounov/autopush/4.1-bug-20954
      
      
      mysql-test/r/subselect.result:
        Auto merged
      eef7e4d0
    • unknown's avatar
      Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set · 996cdfd3
      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.
      996cdfd3
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 82246120
      unknown authored
      into  moonbone.local:/work/19862-bug-5.0-opt-mysql
      
      
      sql/item_func.h:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      82246120
    • unknown's avatar
      Fixed bug#19862: Sort with filesort by function evaluates function twice · 7af7bd48
      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.
      7af7bd48
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · db7e5f0b
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      db7e5f0b
    • unknown's avatar
      Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called · cda97091
      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.
      cda97091
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 8b34130a
      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
      8b34130a
    • unknown's avatar
      Bug#16712: group_concat returns odd srting insead of intended result · 51aca02d
      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
      51aca02d
    • unknown's avatar
      Fixed bug #21231: wrong results for a simple query with a · 29e9526c
      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.
      29e9526c
  6. 22 Jul, 2006 9 commits
  7. 21 Jul, 2006 7 commits
    • unknown's avatar
      Merge mysql.com:/home/psergey/mysql-4.1-opt · a1f2ed15
      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
      a1f2ed15
    • unknown's avatar
      Add missing "DROP TABLE" clause · dae1cb0e
      unknown authored
      dae1cb0e
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 147da135
      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
      147da135
    • unknown's avatar
      Fixed bug#12185: Data type aggregation may produce wrong result · a05809b6
      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.
      a05809b6
    • unknown's avatar
      Merge mysql.com:/home/psergey/mysql-4.1-opt · ecc6e990
      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
      ecc6e990
    • unknown's avatar
      Bug #20466: a view is mixing data when there's a trigger on the table · 224b5785
      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
      224b5785
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 672c8d2c
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B20868-5.0-opt
      
      672c8d2c