1. 27 Jul, 2006 1 commit
  2. 26 Jul, 2006 5 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 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-5.0-opt · c0a592e6
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B21086-5.0-opt
      
      c0a592e6
  3. 25 Jul, 2006 7 commits
    • 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
  4. 22 Jul, 2006 9 commits
  5. 21 Jul, 2006 10 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
    • unknown's avatar
      Bug #20868: Client connection is broken on SQL query error · 579a7c5b
      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.
      579a7c5b
    • unknown's avatar
      Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 9f4a3819
      unknown authored
      into  lamia.home:/home/tkatchaounov/autopush/5.0-bug-21007
      
      
      client/mysql.cc:
        Auto merged
      mysql-test/r/date_formats.result:
        Auto merged
      mysql-test/r/func_str.result:
        Auto merged
      mysql-test/t/date_formats.test:
        Auto merged
      mysql-test/t/func_str.test:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/time.cc:
        Auto merged
      9f4a3819
    • unknown's avatar
      Fix for BUG#21007. · 2ce5582a
      unknown authored
      The problem was that store_top_level_join_columns() incorrectly assumed
      that the left/right neighbor of a nested join table reference can be only
      at the same level in the join tree.
      
      The fix checks if the current nested join table reference has no immediate
      left/right neighbor, and if so chooses the left/right neighbors of the
      nearest upper level, where these references are != NULL.
      
      
      mysql-test/r/group_min_max.result:
        Test for BUG#21007.
      mysql-test/t/group_min_max.test:
        Test for BUG#21007.
      sql/sql_base.cc:
        After computing and materializing the columns of all NATURAL joins in a FROM clause,
        the procedure store_top_level_join_columns() has to change the current natural join
        into a leaf table reference for name resolution. For this it needs to make the left
        neighbor point to the natural join table reference, and the natural join itself point
        to its left neighbor.
        
        This fix correctly determines the left/right neighbors of a table reference, even if
        the neghbors are at higher levels in the nested join tree. The rule is that if a table
        reference has no immediate left/right neighbors, we recursively pick the left/right
        neighbor of the level(s) above.
      2ce5582a
  6. 20 Jul, 2006 1 commit
    • unknown's avatar
      BUG#20975: Incorrect query result for NOT (subquery): · 1b03ac4c
      unknown authored
        Add implementations of Item_func_{nop,not}_all::neg_transformer
      
      
      mysql-test/r/subselect.result:
        BUG#20975: testcase
      mysql-test/t/subselect.test:
        BUG#20975: testcase
      sql/mysql_priv.h:
        Make chooser_compare_func_creator visible in item.h
      1b03ac4c
  7. 19 Jul, 2006 3 commits
    • unknown's avatar
      Added a test case with views for bug #17526. · 2fed1348
      unknown authored
      
      mysql-test/r/func_str.result:
        Adjusted results for the test case of bug 17526.
      sql/item_strfunc.cc:
        Post-merge modification
      2fed1348
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-4.1-opt · e8f7ed95
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      mysql-test/r/func_str.result:
        Auto merged
      mysql-test/t/func_str.test:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/item_strfunc.h:
        Auto merged
      e8f7ed95
    • unknown's avatar
      Fixed bug #17526: incorrect print method · fbf07364
      unknown authored
      for class Item_func_trim. 
      For 4.1 it caused wrong output for EXPLAIN EXTENDED commands
      if expressions with the TRIM function of two arguments were used.
      For 5.0 it caused an error message when trying to select
      from a view with the TRIM function of two arguments.
      This unexpected error message was due to the fact that the
      print method for the class Item_func_trim was inherited from
      the class Item_func. Yet the TRIM function does not take a list
      of its arguments. Rather it takes the arguments in the form:
        [{BOTH | LEADING | TRAILING} [remstr] FROM] str) |
        [remstr FROM] str
      
      
      mysql-test/r/func_str.result:
        Added a test case for bug #17526: uncorrect print method
        for class Item_func_trim.
      mysql-test/t/func_str.test:
        Added a test case for bug #17526: incorrect print method
        for class Item_func_trim.
      sql/item_strfunc.cc:
        Fixed bug #17526: incorrect print method
        for class Item_func_trim.
            
        Added an implementation for the virtual function print
        in the class Item_func_trim.
        The implementation takes into account the fact the TRIM
        function takes the arguments in the following forms:
          [{BOTH | LEADING | TRAILING} [remstr] FROM] str) |
          [remstr FROM] str
      sql/item_strfunc.h:
        Fixed bug #17526: incorrect print method
        for class Item_func_trim.
            
        Added an implementation for the virtual function print
        in the class Item_func_trim.
        Declared a virtual method to return the mode of the TRIM 
        function: LEADING, TRAILING or BOTH.
        Added implementations of this method for Item_func_trim and
        its descendants Item_func_ltrim and Item_func_rtrim.
      fbf07364
  8. 18 Jul, 2006 3 commits
  9. 17 Jul, 2006 1 commit