An error occurred fetching the project authors.
  1. 20 Apr, 2007 1 commit
    • unknown's avatar
      Bug #24778: Innodb: No result when using ORDER BY · f3e261a9
      unknown authored
      This bug was intruduced by the fix for bug#17212 (in 4.1). It is not 
      ok to call test_if_skip_sort_order since this function will 
      alter the execution plan. By contract it is not ok to call 
      test_if_skip_sort_order in this context.
      
      This bug appears only in the case when the optimizer has chosen 
      an index for accessing a particular table but finds a covering 
      index that enables it to skip ORDER BY. This happens in 
      test_if_skip_sort_order.
      
      
      mysql-test/r/key.result:
        Bug#24778
        
        test case.
        
        The bug causes the result to be the empty set.
      mysql-test/t/key.test:
        Bug#24778
        
        The minimal test case that reveals the bug. The reason for such a 
        complicated schema is that we have to convince the optimizer to 
        pick one index, then discard it in order to be able to skip 
        ORDER BY.
      sql/sql_select.cc:
        bug#24778
        
        Removed the call to test_if_skip_sort_order that constituted the
        bug.
      f3e261a9
  2. 15 Apr, 2007 1 commit
    • unknown's avatar
      Bug#27321: Wrong subquery result in a grouping select. · 1cf3b965
      unknown authored
      The Item_outer_ref class based on the Item_direct_ref class was always used
      to represent an outer field. But if the outer select is a grouping one and the 
      outer field isn't under an aggregate function which is aggregated in that
      outer select an Item_ref object should be used to represent such a field.
      If the outer select in which the outer field is resolved isn't grouping then
      the Item_field class should be used to represent such a field.
      This logic also should be used for an outer field resolved through its alias
      name.
      
      Now the Item_field::fix_outer_field() uses Item_outer_field objects to
      represent aliased and non-aliased outer fields for grouping outer selects
      only.
      Now the fix_inner_refs() function chooses which class to use to access outer
      field - the Item_ref or the Item_direct_ref. An object of the chosen class
      substitutes the original field in the Item_outer_ref object.
      The direct_ref and the found_in_select_list fields were added to the
      Item_outer_ref class.
      
      
      mysql-test/t/subselect3.test:
        Some test cases were corrected after the fix for the bug#27321.
      mysql-test/r/subselect3.result:
        Some test cases were corrected after the fix for the bug#27321.
      mysql-test/t/subselect.test:
        Added a test case for the bug#27321: Wrong subquery result in a grouping select.
      mysql-test/r/subselect.result:
        Added a test case for the bug#27321: Wrong subquery result in a grouping select.
        Some test cases were corrected after this fix.
      sql/sql_union.cc:
        Bug#27321: Wrong subquery result in a grouping select.
        Cleanup of the inner_refs_list.
      sql/sql_select.cc:
        Bug#27321: Wrong subquery result in a grouping select.
        Now the fix_inner_refs() function chooses which class to use to access outer
        field - the Item_ref or the Item_direct_ref. An object of the chosen class
        substitutes the original field in the Item_outer_ref object.
        A comment is corrected.
      sql/item.cc:
        Bug#27321: Wrong subquery result in a grouping select.
        Now the Item_field::fix_outer_field() uses Item_outer_field objects to
        represent aliased and non-aliased outer fields for grouping outer selects
        only.
      sql/item.h:
        Bug#27321: Wrong subquery result in a grouping select.
        The direct_ref and the found_in_select_list fields were added to the
        Item_outer_ref class.
      1cf3b965
  3. 10 Apr, 2007 1 commit
    • unknown's avatar
      Bug #27659: · 041767e1
      unknown authored
      The optimizer transforms DISTINCT into a GROUP BY
      when possible.
      It does that by constructing the same structure
      (a list of ORDER instances) the parser makes when
      parsing GROUP BY.
      While doing that it also eliminates duplicates.
      But if a duplicate is found it doesn't advance the
      pointer to ref_pointer array, so the next 
      (and subsequent) ORDER structures point to the wrong
      element in the SELECT list.
      Fixed by advancing the pointer in ref_pointer_array
      even in the case of a duplicate.
      
      
      mysql-test/r/distinct.result:
        Bug #27659: test case
      mysql-test/t/distinct.test:
        Bug #27659: test case
      sql/sql_select.cc:
        Bug #27659: use correct ref_pointer_array element
      041767e1
  4. 31 Mar, 2007 1 commit
    • unknown's avatar
      Fixed bug #27154: memory corruption when using row equalities in where · 7887a744
      unknown authored
      conditions.
      When allocating memory for KEY_FIELD/SARGABLE_PARAM structures the
      function update_ref_and_keys did not take into account the fact that
      a single row equality could be replaced by several simple equalities.
      Fixed by adjusting the counter cond_count accordingly for each subquery
      when performing substitution of a row equality for simple equalities. 
       
      
      
      mysql-test/r/row.result:
        Added a test case for bug #27154.
      mysql-test/t/row.test:
        Added a test case for bug #27154.
      7887a744
  5. 29 Mar, 2007 1 commit
    • unknown's avatar
      Bug #26815: · 40c1a3f9
      unknown authored
       When creating a temporary table the concise column type
       of a string expression is decided based on its length:
       - if its length is under 512 it is stored as either 
         varchar or char.
       - otherwise it is stored as a BLOB.
       
       There is a flag (convert_blob_length) to create_tmp_field 
       that, when >0 allows to force creation of a varchar if the
       max blob length is under convert_blob_length.
       However it must be verified that convert_blob_length 
       (settable through a SQL option in some cases) is 
       under the maximum that can be stored in a varchar column.
       While performing that check for expressions in 
       create_tmp_field_from_item the max length of the blob was
       used instead. This causes blob columns to be created in the
       heap temp table used by GROUP_CONCAT (where blobs must not
       be created in the temp table because of the constant 
       convert_blob_length that is passed to create_tmp_field() ).
       And since these blob columns are not expected in that place
       we get wrong results.
       Fixed by checking that the value of the flag variable is 
       in the limits that fit into VARCHAR instead of the max length
       of the blob column.
      
      
      mysql-test/r/func_gconcat.result:
        Bug #26815: test case
      mysql-test/t/func_gconcat.test:
        Bug #26815: test case
      sql/item_sum.cc:
        Bug #26815: wrong length was checked
      sql/sql_select.cc:
        Bug #26815: wrong length was checked
      40c1a3f9
  6. 28 Mar, 2007 1 commit
    • unknown's avatar
      Bug #27300: · c8f1cf4c
      unknown authored
        Geometry fields have a result type string and a 
        special subclass to cater for the differences
        between them and the base class (just like 
        DATE/TIME).
        When creating temporary tables for results of 
        functions that return results of type GEOMETRY
        we must construct fields of the derived class 
        instead of the base class.
        Fixed by creating a GEOMETRY field (Field_geom) 
        instead of a generic BLOB (Field_blob) in temp 
        tables for the results of GIS functions that 
        have GEOMETRY return type (Item_geometry_func).
      
      
      mysql-test/r/gis.result:
        Bug #27300: test case
      mysql-test/t/gis.test:
        Bug #27300: test case
      sql/item.cc:
        Bug #27300:
          Create a GEOMETRY field (Field_geom) instead of 
          a generic BLOB (Field_blob) in temp tables for 
          the results of GIS functions (Item_geometry_func).
      sql/sql_select.cc:
        Bug #27300:
          Create a GEOMETRY field (Field_geom) instead of 
          a generic BLOB (Field_blob) in temp tables for 
          the results of GIS functions (Item_geometry_func).
      c8f1cf4c
  7. 27 Mar, 2007 1 commit
    • unknown's avatar
      Bug #26815: · 8aa2d6bf
      unknown authored
       When creating a temporary table the concise column type
       of a string expression is decided based on its length:
       - if its length is under 512 it is stored as either 
         varchar or char.
       - otherwise it is stored as a BLOB.
       
       There is a flag (convert_blob_length) to create_tmp_field 
       that, when >0 allows to force creation of a varchar if the
       max blob length is under convert_blob_length.
       However it must be verified that convert_blob_length 
       (settable through a SQL option in some cases) is 
       under the maximum that can be stored in a varchar column.
       While performing that check for expressions in 
       create_tmp_field_from_item the max length of the blob was
       used instead. This causes blob columns to be created in the
       heap temp table used by GROUP_CONCAT (where blobs must not
       be created in the temp table because of the constant 
       convert_blob_length that is passed to create_tmp_field() ).
       And since these blob columns are not expected in that place
       we get wrong results.
       Fixed by checking that the value of the flag variable is 
       in the limits that fit into VARCHAR instead of the max length
       of the blob column.
      
      
      mysql-test/r/func_gconcat.result:
        Bug #26815: test case
      mysql-test/t/func_gconcat.test:
        Bug #26815: test case
      sql/item_sum.cc:
        Bug #26815: wrong length was checked
      sql/sql_select.cc:
        Bug #26815: wrong length was checked
      8aa2d6bf
  8. 26 Mar, 2007 1 commit
    • unknown's avatar
      This is a fix for the memory corruption occurred in one of test cases · d95c307f
      unknown authored
      from func_group.test after the patch for bug #27229 had been applied.
      The memory corruption happened because in some rare cases the function
      count_field_types underestimated the number of elements in
      in the array param->items_to_copy.
      
      
      sql/item_sum.cc:
        The return value of the Item_sum::update_used_tables method
        should not depend on the place of aggregation of the set 
        function for which the Item_sum object has been created.
      sql/sql_select.cc:
        This is a fix for the memory corruption occurred in one of test cases
        from func_group.test after the patch for bug #27229 had been applied.
        The memory corruption happened because in some rare cases the function
        count_field_types underestimated the number of elements in
        in the array param->items_to_copy.
        
        Currently it's not guaranteed that after JOIN::prepare() the 
        used_tables attribute is calculated for all items. For example
        for the expression SUM(outer_ref)+1 used_tables() must return
        OUTER_REF_TABLE_BIT. Yet by the moment when the used_tables
        attribute is calculated in JOIN::prepare SUM(outer_ref) has
        not been substituted for Item_aggregate_ref yet.
        By this reason additional calls of the method update_used_tables
        are needed for some items passed as parameters to the function
        create_tmp_table.
      d95c307f
  9. 22 Mar, 2007 3 commits
    • unknown's avatar
      Fixed bug #27229: crash when a set function aggregated in outer · 1f8bdbe4
      unknown authored
      context was used as an argument of GROUP_CONCAT.
      Ensured correct setting of the depended_from field in references
      generated for set functions aggregated in outer selects.
      A wrong value of this field resulted in wrong maps returned by 
      used_tables() for these references.
      Made sure that a temporary table field is added for any set function
      aggregated in outer context when creation of a temporary table is 
      needed to execute the inner subquery. 
      
      
      mysql-test/r/subselect.result:
        Added a test case for bug #27229.
      mysql-test/t/subselect.test:
        Added a test case for bug #27229.
      sql/item.cc:
        Fixed bug #27229: crash when a set function aggregated in outer
        context was used as an argument of GROUP_CONCAT.
        Ensured correct setting of the depended_from field in references
        generated for set functions aggregated in outer selects.
      sql/item_sum.cc:
        Fixed bug #27229: crash when a set function aggregated in outer
        context was used as an argument of GROUP_CONCAT.
        Added the field aggr_sel to the objects of the class Item_sum.
        In any Item_sum object created for a set function this field 
        has to contain a pointer to the select where the set function
        is aggregated.
      sql/item_sum.h:
        Fixed bug #27229: crash when a set function aggregated in outer
        context was used as an argument of GROUP_CONCAT.
        Added the field aggr_sel to the objects of the class Item_sum.
        In any Item_sum object created for a set function this field 
        has to contain a pointer to the select where the set function
        is aggregated.
        Added a method that says whether a set function is aggregated
        in outer context and, if so, returns the aggregating select.
        Removed the field nest_level_tables_count introduced by the
        patch for bug 24484 as aggr_sel->join->tables contains the
        sane number.
      sql/sql_base.cc:
        Fixed bug #27229: crash when a set function aggregated in outer
        context was used as an argument of GROUP_CONCAT.
        Added the field aggr_sel to the objects of the class Item_sum.
        Removed changes introduced by the patch for bug 24484 as 
        the field leaf_count of the THD class is not used anymore.
      sql/sql_class.h:
        Fixed bug #27229: crash when a set function aggregated in outer
        context was used as an argument of GROUP_CONCAT.
        Added the field aggr_sel to the objects of the class Item_sum.
        Removed changes introduce by the patch for bug 24484 as 
        the field leaf_count of the THD class is not used anymore.
      sql/sql_insert.cc:
        Fixed bug #27229: crash when a set function aggregated in outer
        context was used as an argument of GROUP_CONCAT.
        Added the field aggr_sel to the objects of the class Item_sum.
        Removed changes introduce by the patch for bug 24484 as 
        the field leaf_count of the THD class is not used anymore.
      sql/sql_select.cc:
        Fixed bug #27229: crash when a set function aggregated in outer
        context was used as an argument of GROUP_CONCAT.
        When creating a temporary table a field is added in it for any 
        set function aggregated in outer context.
      1f8bdbe4
    • unknown's avatar
      Fixed compiler warnings. · 7eb3881b
      unknown authored
      mysys/default.c:
        Fixed bug.
      ndb/src/mgmclient/CommandInterpreter.cpp:
        Added parenthesis around the expression.
      sql/mysqld.cc:
        Fixed compiler warnings.
        
        Added a missing component in options struct (bug).
      sql-common/my_time.c:
        Removed garbage.
      sql/sql_table.cc:
        A possible use of a variable uninitialized.
      support-files/compiler_warnings.supp:
        BitKeeper file /home/my/bk/mysql-4.1-main/support-files/compiler_warnings.supp
      7eb3881b
    • unknown's avatar
      - renaming TMP_TABLE to NON_TRANSACTIONAL_TMP_TABLE because this is · 685d21b7
      unknown authored
      what it actually means (Monty approved the renaming)
      - correcting description of transaction_alloc command-line options
      (our manual is correct)
      - fix for a failure of rpl_trigger.
      
      
      mysql-test/t/rpl_misc_functions.test:
        test was cleaning up only on slave, but it's also needed on master,
        otherwise it influences rpl_trigger.test
      sql/lock.cc:
        clearer name
      sql/mysqld.cc:
        I checked the code that those two variables are not about binlogging
        but about the size of the transaction's memroot which is used
        to create savepoint structures and to store list of tables to be invalidated
        (for NDB). The manual has a correct description, no need to fix it.
      sql/sql_base.cc:
        clearer name
      sql/sql_derived.cc:
        clearer name
      sql/sql_select.cc:
        clearer name
      sql/table.h:
        clearer name: TMP_TABLE is used for non-transactional tables.
      685d21b7
  10. 20 Mar, 2007 1 commit
    • unknown's avatar
      Bug #24484: · 9c89dd65
      unknown authored
      To correctly decide which predicates can be evaluated with a given table
      the optimizer must know the exact set of tables that a predicate depends 
      on. If that mask is too wide (refer to non-existing tables) the optimizer
      can erroneously skip a predicate.
      One such case of wrong table usage mask were the aggregate functions.
      The have a all-1 mask (meaning depend on all tables, including non-existent
      ones).
      Fixed by making a real used_tables mask for the aggregates. The mask is
      constructed in the following way :
      1. OR the table dependency masks of all the arguments of the aggregate.
      2. If all the arguments of the function are from the local name resolution 
        context and it is evaluated in the same name resolution
        context where it is referenced all the tables from that name resolution 
        context are OR-ed to the dependency mask. This is to denote that an
        aggregate function depends on the number of rows it processes.
      3. Handle correctly the case of an aggregate function optimization (such that
        the aggregate function can be pre-calculated and made a constant).
      
      Made sure that an aggregate function is never a constant (unless subject of a 
      specific optimization and pre-calculation).  
      
      One other flaw was revealed and fixed in the process : references were 
      not calling the recalculation method for used_tables of their targets.
      
      
      mysql-test/r/subselect3.result:
        Bug #24484: test case
      mysql-test/t/subselect3.test:
        Bug #24484: test case
      sql/item.h:
        Bug #24484: Item_ref must update the used tables.
      sql/item_sum.cc:
        Bug #24484: correct calculation of used_tables for aggregates.
      sql/item_sum.h:
        Bug #24484: correct calculation of used_tables for aggregates.
      sql/opt_range.cc:
        Bug #24484: fixed ref resolution in loose index scan
      sql/sql_base.cc:
        Bug #24484: moved counting of leaf tables inside 
        setup_tables_and_check_access.
      sql/sql_class.h:
        Bug #24484: changed table count to more narrow type.
      sql/sql_insert.cc:
        Bug #24484: moved counting of leaf tables inside 
        setup_tables_and_check_access. Substract the first
        table (and its subtables) of an INSERT statement
        from leaf_count.
      sql/sql_select.cc:
        Bug #24484: correct check for aggregates
      9c89dd65
  11. 09 Mar, 2007 1 commit
    • unknown's avatar
      Polishing: use constants instead of magic numbers. · a0521cd7
      unknown authored
      include/my_global.h:
        Introduce constants to be used instead of magic numbers.
      sql/field.cc:
        Polishing: use contants instead of magic numbers.
      sql/ha_innodb.cc:
        Polishing: use contants instead of magic numbers.
      sql/handler.cc:
        Polishing: use contants instead of magic numbers.
      sql/item.cc:
        Polishing: use contants instead of magic numbers.
      sql/item.h:
        Polishing: use contants instead of magic numbers.
      sql/item_func.cc:
        Polishing: use contants instead of magic numbers.
      sql/item_subselect.cc:
        Polishing: use contants instead of magic numbers.
      sql/log_event.cc:
        Polishing: use contants instead of magic numbers.
      sql/sql_base.cc:
        Polishing: use contants instead of magic numbers.
      sql/sql_select.cc:
        Polishing: use contants instead of magic numbers.
      sql/sql_show.cc:
        Polishing: use contants instead of magic numbers.
      sql/sql_table.cc:
        Polishing: use contants instead of magic numbers.
      a0521cd7
  12. 08 Mar, 2007 1 commit
    • unknown's avatar
      sql_select.cc: · 4c0ab891
      unknown authored
        Postfix for bug#22331.
      
      
      sql/sql_select.cc:
        Postfix for bug#22331.
      4c0ab891
  13. 07 Mar, 2007 2 commits
    • unknown's avatar
      sql_select.cc: · 1631f65d
      unknown authored
        Postfix for bug#22331 for windows platform.
      explain.test, explain.result:
        Cleanup after bugfix#22331.
      
      
      mysql-test/t/explain.test:
        Cleanup after bugfix#22331.
      mysql-test/r/explain.result:
        Cleanup after bugfix#22331.
      sql/sql_select.cc:
        Postfix for bug#22331 for windows platform.
      1631f65d
    • unknown's avatar
      Bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were optimized · 6de27791
      unknown authored
      away.
      
      During optimization stage the WHERE conditions can be changed or even
      be removed at all if they know for sure to be true of false. Thus they aren't
      showed in the EXPLAIN EXTENDED which prints conditions after optimization.
      
      Now if all elements of an Item_cond were removed this Item_cond is substituted
      for an Item_int with the int value of the Item_cond.
      If there were conditions that were totally optimized away then values of the
      saved cond_value and having_value will be printed instead.
      
      
      mysql-test/t/explain.test:
        Added a test case for the bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were optimized away.
      mysql-test/r/subselect.result:
        Corrected test case result after fix for bug#22331.
      mysql-test/r/func_test.result:
        Corrected test case result after fix for bug#22331.
      mysql-test/r/explain.result:
        Added a test case for the bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were optimized away.
      sql/sql_select.cc:
        Bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were optimized
        away.
        Now if all elements of an Item_cond were removed this Item_cond is substituted
        for an Item_int with the int value of the Item_cond.
        If there were conditions that were totally optimized away then values of the
        saved cond_value and having_value will be printed instead.
      sql/sql_lex.h:
        Bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were optimized
        away.
        The cond_value and the having_value variables are
        added to the SELECT_LEX class.
      sql/sql_lex.cc:
        Bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were optimized
        away.
        The initialization of the cond_value and the having_value variables.
      sql/sql_select.h:
        Bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were optimized
        away.
        Now having_value is also stored in the JOIN class.
      6de27791
  14. 06 Mar, 2007 1 commit
    • unknown's avatar
      Bug#25376: Incomplete setup of ORDER BY clause results in a wrong result. · 38acf43e
      unknown authored
      Functions over sum functions wasn't set up correctly for the ORDER BY clause
      which leads to a wrong order of the result set.
      
      The split_sum_func() function is called now for each ORDER BY item that
      contains a sum function to set it up correctly.
      
      
      mysql-test/t/order_by.test:
        Added a test case for bug#25376: Incomplete setup of ORDER BY clause results in a wrong result.
      mysql-test/r/order_by.result:
        Added a test case for bug#25376: Incomplete setup of ORDER BY clause results in a wrong result.
      sql/sql_select.cc:
        Bug#25376: Incomplete setup of ORDER BY clause results in a wrong result.
        The split_sum_func() function is called now for each ORDER BY item that
        contains a sum function to set it up correctly.
      38acf43e
  15. 05 Mar, 2007 1 commit
    • unknown's avatar
      Fixed bug #26560. · 6da758c2
      unknown authored
      The flag alias_name_used was not set on for the outer references
      in subqueries. It resulted in replacement of any outer reference
      resolved against an alias for a full field name when the frm 
      representation of a view with a subquery was generated. 
      If the subquery and the outer query referenced the same table in
      their from lists this replacement effectively changed the meaning
      of the view and led to wrong results for selects from this view. 
      
      Modified several functions to ensure setting the right value of
      the alias_name_used flag for outer references resolved against
      aliases.
       
      
      
      mysql-test/r/view.result:
        Added a test case for bug #26560.
      mysql-test/t/view.test:
        Added a test case for bug #26560.
      sql/item.cc:
        Fixed bug #26560.
        Made the function resolve_ref_in_select_and_group analyze the return
        value of the last parameter with the type of the name resolution for
        the submitted reference. If the reference has been resolved against 
        an alias name from select list then its flag alias_name_used is set on.
        Now this value is used in Item_field::fix_outer_field to initialize the flag
        when the item_ref object is created for an outer reference.
        Added a parameter for the second Item_ref::Item_ref constructor to initialize
        properly the flag alias_name_used. The default value of the parameter is FALSE.
        If this flag is set on at the creation of an object by this constructor it
        will never be changed. Corrected appropriately the Item_ref::set_properties
        function.
        The function Item_ref::print now prints alias name for an outer reference
        if the flag alias_name_used is set on.
      sql/item.h:
        Fixed bug #26560.
        Added a parameter for the second Item_ref::Item_ref constructor to initialize
        properly the flag alias_name_used. The default value of the parameter is FALSE.
        A similar change has been applied to the first Item_direct_ref::Item_direct_ref
        constructor.
      sql/mysql_priv.h:
        Fixed bug #26560.
        Added an an enumeration type enum_resolution_type to return info on
        how the function find_item_in_list has resolved the submitted item.
        The type is used only for this function.
      sql/sql_base.cc:
        Fixed bug #26560.
        Made the last parameter of the function find_field_in_tables return
        more detailed information on how the submitted item has been resolved.
        Now it says whether the item has been resolved
          against an alias name,
          or as a field name without alias,
          or as a field name hidden by alias, 
          or was resolved ignoring alias.
      sql/sql_select.cc:
        Fixed bug #26560.
        Took into account the new type of the last parameter of the function
        find_item_in_list.
      6da758c2
  16. 03 Mar, 2007 1 commit
    • unknown's avatar
      Bug#25126: Wrongly resolved field leads to a crash. · 72773f4f
      unknown authored
      When the ORDER BY clause gets fixed it's allowed to search in the current
      item_list in order to find aliased fields and expressions. This is ok for a
      SELECT but wrong for an UPDATE statement. If the ORDER BY clause will
      contain a non-existing field which is mentioned in the UPDATE set list
      then the server will crash due to using of non-existing (0x0) field.
      
      When an Item_field is getting fixed it's allowed to search item list for
      aliased expressions and fields only for selects.
      
      
      sql/sql_base.cc:
        Bug#25126: Wrongly resolved field leads to a crash.
        When an Item_field is getting fixed it's allowed to search item list for
        aliased expressions and fields only for selects.
      sql/sql_select.cc:
        Bug#25126: Wrongly resolved field leads to a crash.
        When an Item_field is getting fixed it's allowed to search item list for
        aliased expressions and fields only for selects.
      mysql-test/r/update.result:
        Added a test case for bug#25126: Wrongly resolved field leads to a crash.
      mysql-test/t/update.test:
        Added a test case for bug#25126: Wrongly resolved field leads to a crash.
      72773f4f
  17. 27 Feb, 2007 1 commit
  18. 22 Feb, 2007 1 commit
    • unknown's avatar
      Fixed compiler warnings (for linux and win32 and win64) · 50bd97a9
      unknown authored
      Fixed a couple of usage of not initialized warnings (unlikely cases)
      
      
      client/mysqldump.c:
        Fixed compiler warnings from 'max' build
      client/mysqltest.c:
        Removed compiler warnings
      cmd-line-utils/readline/xmalloc.c:
        Fixed compiler warnings from 'max' build
      extra/comp_err.c:
        Fixed compiler warnings from 'max' build
      extra/yassl/include/openssl/ssl.h:
        Changed prototype for SSL_set_fd() to fix compiler warnings (and possible errors) on windows 64 bit
      extra/yassl/include/socket_wrapper.hpp:
        Moved socket_t to ssl.h, to be able to removed compiler warnings on windows 64 bit
      extra/yassl/src/ssl.cpp:
        Changed prototype for SSL_set_fd() to fix compiler warnings (and possible errors) on windows 64 bit
      extra/yassl/taocrypt/src/integer.cpp:
        Fixed compiler warnings
      include/my_global.h:
        Added my_offsetof() macro from 5.1 to get rid of compiler warnings
      innobase/include/ut0byte.ic:
        Fixed compiler warnings on win64
      innobase/include/ut0ut.ic:
        Fixed compiler warnings on win64
      libmysql/libmysql.def:
        Fixed compiler warnings on win64
      myisam/mi_packrec.c:
        Fixed compiler warnings on win64
      myisam/myisamchk.c:
        Fixed compiler warnings from 'max' build
      mysys/base64.c:
        Fixed compiler warnings on win64
      mysys/mf_keycache.c:
        Fixed compiler warnings from 'max' build
      mysys/my_getopt.c:
        Fixed compiler warnings from 'max' build
      mysys/my_init.c:
        Fixed compiler warnings from 'max' build
      mysys/my_thr_init.c:
        Fixed compiler warnings
      mysys/ptr_cmp.c:
        Fixed compiler warnings from 'max' build
      ndb/include/kernel/signaldata/DictTabInfo.hpp:
        Fixed compiler warnings
      server-tools/instance-manager/mysql_connection.cc:
        Fixed compiler warnings
      server-tools/instance-manager/mysqlmanager.cc:
        Fixed compiler warnings
      sql/filesort.cc:
        Initalize variable that was used unitialized in error conditions
      sql/ha_berkeley.cc:
        Moved get_auto_primary_key() here as int5store() gives (wrong) compiler warnings in win64
      sql/ha_berkeley.h:
        Moved get_auto_primary_key() to ha_berkeley.cc
      sql/ha_innodb.cc:
        Fixed compiler warnings
      sql/item.cc:
        Fixed compiler warnings from 'max' build
      sql/item_timefunc.cc:
        Fixed compiler warnings
      sql/mysqld.cc:
        Fixed compiler warnings
      sql/sql_acl.cc:
        Fixed compiler warnings from 'max' build
      sql/sql_base.cc:
        Fixed compiler warnings from 'max' build
      sql/sql_insert.cc:
        Initialize variable that may be used unitialized on error conditions (not fatal)
      sql/sql_prepare.cc:
        Fixed compiler warnings from 'max' build
      sql/sql_select.cc:
        Fixed compiler warnings
      sql/sql_show.cc:
        Fixed compiler warnings
      sql/udf_example.def:
        Fixed compiler warnings on win64
      sql/unireg.cc:
        Initialize variable that may be used unitialized on error conditions
      strings/ctype-ucs2.c:
        Fixed compiler warnings
      strings/ctype-utf8.c:
        Fixed compiler warnings
      strings/decimal.c:
        Fixed compiler warnings
      support-files/compiler_warnings.supp:
        Ignore warnings from sql_yacc.cc that are hard to remove
        Ignore some not important warnings from windows 64 bit build
      tools/mysqlmanager.c:
        Fixed compiler warnings
      50bd97a9
  19. 21 Feb, 2007 1 commit
    • unknown's avatar
      Bug#23800: Outer fields in correlated subqueries is used in a temporary table · f8855142
      unknown authored
      created for sorting.
      
      Any outer reference in a subquery was represented by an Item_field object.
      If the outer select employs a temporary table all such fields should be
      replaced with fields from that temporary table in order to point to the 
      actual data. This replacement wasn't done and that resulted in a wrong
      subquery evaluation and a wrong result of the whole query.
      
      Now any outer field is represented by two objects - Item_field placed in the
      outer select and Item_outer_ref in the subquery. Item_field object is
      processed as a normal field and the reference to it is saved in the
      ref_pointer_array. Thus the Item_outer_ref is always references the correct
      field. The original field is substituted for a reference in the
      Item_field::fix_outer_field() function.
      
      New function called fix_inner_refs() is added to fix fields referenced from
      inner selects and to fix references (Item_ref objects) to these fields.
      
      The new Item_outer_ref class is a descendant of the Item_direct_ref class.
      It additionally stores a reference to the original field and designed to
      behave more like a field.
      
      
      sql/item.cc:
        Bug#23800: Correlated sub query returning incorrect results when operated upon.
        Now all outer fields are substituted with references to them (Item_outer_ref objects)
        in the Item_field::fix_outer_field() function.
        The original field is saved in the Item_outer_ref object.
      sql/item.h:
        Bug#23800: Correlated sub query returning incorrect results when operated upon.
        Added the Item_outer_ref class.
      sql/mysql_priv.h:
        Bug#23800: Correlated sub query returning incorrect results when operated upon.
        Added the fix_inner_refs() function prototype.
      sql/sql_delete.cc:
        Bug#23800: Correlated sub query returning incorrect results when operated upon.
        Added call to the fix_inner_refs() function.
      sql/sql_select.cc:
        Bug#23800: Correlated sub query returning incorrect results when operated upon.
        The new function called fix_inner_refs() is added.
      mysql-test/r/subselect.result:
        Added a test case for bug#23800: Correlated sub query returning incorrect results when
        operated upon.
      sql/sql_update.cc:
        Bug#23800: Correlated sub query returning incorrect results when operated upon.
        Added call to the fix_inner_refs() function.
      mysql-test/r/subselect3.result:
        Corrected test cases result after fix for bug#23800: Correlated sub query returning
        incorrect results when operated upon.
      mysql-test/t/subselect.test:
        Added a test case for bug#23800: Correlated sub query returning incorrect results when
        operated upon.
      sql/sql_lex.cc:
        Bug#23800: Correlated sub query returning incorrect results when operated upon.
        Added cleanup of the inner_refs_list.
      sql/sql_lex.h:
        Bug#23800: Correlated sub query returning incorrect results when operated upon.
        The inner_refs_list is added to the SELECT_LEX class.
      f8855142
  20. 16 Feb, 2007 1 commit
    • unknown's avatar
      Bug#16630: The update fields of the INSERT .. SELECT .. ON DUPLICATE KEY · d5813a06
      unknown authored
      UPDATE contains wrong data if the SELECT employs a temporary table.
      
      If the UPDATE values of the INSERT .. SELECT .. ON DUPLICATE KEY UPDATE
      statement contains fields from the SELECT part and the select employs a
      temporary table then those fields will contain wrong values because they
      aren't corrected to get data from the temporary table.
      
      The solution is to add these fields to the selects all_fields list,
      to store pointers to those fields in the selects ref_pointer_array and
      to access them via Item_ref objects.
      
      The substitution for Item_ref objects is done in the new function called 
      Item_field::update_value_transformer(). It is called through the
      item->transform() mechanism at the end of the select_insert::prepare()
      function.
      
      
      sql/item.cc:
        Bug#16630: The update fields of the INSERT .. SELECT .. ON DUPLICATE KEY
        UPDATE contains wrong data if the SELECT employs a temporary table.
        The new method Item_field::update_value_transformer() is added. It
        substitutes fields in the update values list for references 
        (Item_ref objects) to them.
      sql/item.h:
        Bug#16630: The update fields of the INSERT .. SELECT .. ON DUPLICATE KEY
        UPDATE contains wrong data if the SELECT employs a temporary table.
        The update_value_transformer() method is added to the Item and to the
        Item_field classes.
      sql/sql_insert.cc:
        Bug#16630: The update fields of the INSERT .. SELECT .. ON DUPLICATE KEY
        UPDATE contains wrong data if the SELECT employs a temporary table.
        Traverse update values and substitute fields from the select for
        references (Item_ref objects) to them.
      sql/sql_select.cc:
        Bug#16630: The update fields of the INSERT .. SELECT .. ON DUPLICATE KEY
        UPDATE contains wrong data if the SELECT employs a temporary table.
        Traverse update values and substitute fields from the select for
        references (Item_ref objects) to them.
      mysql-test/r/insert_select.result:
        Added a test case for bug#16630: The update fields of the INSERT .. SELECT ..
        ON DUPLICATE KEY UPDATE contains wrong data if the SELECT employs a 
        temporary table.
      mysql-test/t/insert_select.test:
        Added a test case for bug#16630: The update fields of the INSERT .. SELECT ..
        ON DUPLICATE KEY UPDATE contains wrong data if the SELECT employs a 
        temporary table.
      d5813a06
  21. 15 Feb, 2007 1 commit
    • unknown's avatar
      Fixed bug #25971: indexes on text columns were ignored when ref accesses · 6ae94723
      unknown authored
      were evaluated.
      According to the new rules for string comparison partial indexes on text
      columns can be used in the same cases when partial indexes on varchar
      columns can be used.
      
      
      mysql-test/r/endspace.result:
        Adjusted results after the fix for bug #25971.
      mysql-test/r/innodb.result:
        Adjusted results after the fix for bug #25971.
      mysql-test/r/myisam.result:
        Adjusted results after the fix for bug #25971.
      mysql-test/r/select.result:
        Added a test case for bug #25971.
      mysql-test/r/type_blob.result:
        Adjusted results after the fix for bug #25971.
      mysql-test/t/select.test:
        Added a test case for bug #25971.
      6ae94723
  22. 12 Feb, 2007 2 commits
    • unknown's avatar
      Bug#24630 Subselect query crashes mysqld · 2572c826
      unknown authored
      The crash happens because second filling of the same I_S table happens in
      case of subselect with order by. table->sort.io_cache previously allocated
      in create_sort_index() is deleted during second filling
      (function get_schema_tables_result). There are two places where
      I_S table can be filled: JOIN::exec and create_sort_index().
      To fix the bug we should check if the table was already filled
      in one of these places and skip processing of the table in second.
      
      
      mysql-test/r/information_schema.result:
        test case
      mysql-test/t/information_schema.test:
        test case
      sql/mysql_priv.h:
        added new parameter 'executed_place' to function get_schema_tables_result()
      sql/sql_select.cc:
        added new parameter 'executed_place' to function get_schema_tables_result()
      sql/sql_show.cc:
        added more accurate check for cases when we need to refresh I_S table
      sql/table.cc:
        added more accurate check for cases when we need to refresh I_S table
      sql/table.h:
        added more accurate check for cases when we need to refresh I_S table
      2572c826
    • unknown's avatar
      Fixed bug #26209. · ac8e0293
      unknown authored
      The function make_unireg_sortorder ignored the fact that any
      view field is represented by a 'ref' object.
      This could lead to wrong results for the queries containing
      both GROUP BY and ORDER BY clauses.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #26209.
      mysql-test/t/view.test:
        Added a test case for bug #26209.
      ac8e0293
  23. 31 Jan, 2007 2 commits
    • unknown's avatar
      Bug #25551: inconsistent behaviour in grouping NULL, depending on index type · d01ec5e7
      unknown authored
       The optimizer takes away columns from GROUP BY/DISTINCT if they constitute
       all the parts of an unique index.
       However if some of the columns can contain NULLs this cannot be done 
      (because an UNIQUE index can have multiple rows with NULL values).
       Fixed by not using UNIQUE indexes with nullable columns to remove
       grouping columns from GROUP BY/DISTINCT.
      
      
      mysql-test/r/distinct.result:
        Bug #25551: inconsistent behaviour in grouping NULL, depending on index type
         - test case
      mysql-test/t/distinct.test:
        Bug #25551: inconsistent behaviour in grouping NULL, depending on index type
         - test case
      sql/sql_select.cc:
        Bug #25551: inconsistent behaviour in grouping NULL, depending on index type
         - UNIQUE NULL indices don't guarantee GROUP BY/DISTINCT.
      d01ec5e7
    • unknown's avatar
      fix for bug #19690: ORDER BY eliminates rows from the result · faad7355
      unknown authored
      Depending on the queries we use different data processing methods
      and can lose some data in case of double (and decimal in 4.1) fields.
      
      The fix consists of two parts:
      1. double comparison changed, now double a is equal to double b 
      if (a-b) is less than 5*0.1^(1 + max(a->decimals, b->decimals)). 
      For example, if a->decimals==1, b->decimals==2, a==b if (a-b)<0.005
      2. if we use a temporary table, store double values there as is 
      to avoid any data conversion (rounding).
      
      
      mysql-test/r/type_float.result:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - test result
      mysql-test/t/type_float.test:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - test case
      sql/field.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - use not_fixed flag instead of dec to check bounds.
      sql/field.h:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - Field_Double::not_fixed flag introduced, which is set if dec == NOT_FIXED_DEC
            and is used in the ::store() to check bounds. 
          - new constructor introduced (with not_fixed_arg parameter).
      sql/init.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - fill log_01[] array with 0.1 powers.
      sql/item_cmpfunc.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - compare_real_fixed() and compare_e_real_fixed() introduced,
            they consider double a == double b if a-b is less than 'precision',
            'precision' is set to 5*0.1^(1 + max(a->decimals, b->decimals)), 
            for example, if a->decimals==1, b->decimals==2, 'precision' is 0.005
          - use the above functions if both arguments are fixed.
      sql/item_cmpfunc.h:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - Arg_comparator::presision introduced.
          - Arg_comparator::compare_real_fixed(), Arg_comparator::compare_e_real_fixed() introduced.
      sql/mysql_priv.h:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - log_01 array of 0.1 powers added.
      sql/mysqld.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - log_01 array of 0.1 powers added.
      sql/sql_select.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - if we create double field in a temporary table, set not_fixed flag
            (use proper constructor) to avoid data conversion 
            in the Field_double::store(). Otherwise we can lose some data.
      faad7355
  24. 30 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #24987. · 1944b4ca
      unknown authored
      Made the function opt_sum_query to return HA_ERR_KEY_NOT_FOUND when
      no matches were found (instead of -1 it returned prior this patch).
      This changes allow us to avoid possible conflicts with return values
      from user-defined handler methods which also may return -1. 
      No particular test cases are provided with this fix.
      
      
      sql/opt_sum.cc:
        Fixed bug #24987.
        Made the function opt_sum_query to return HA_ERR_KEY_NOT_FOUND when
        no matches were found (instead of -1 it returned prior this patch).
        This changes allow us to avoid possible conflicts with return values
        from user-defined handler methods which also may return -1.
      sql/sql_select.cc:
        Fixed bug #24987.
        Made the function opt_sum_query to return HA_ERR_KEY_NOT_FOUND when
        no matches were found (instead of -1 it returned prior this patch).
        This changes allow us to avoid possible conflicts with return values
        from user-defined handler methods which also may return -1.
      1944b4ca
  25. 26 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #24653. · da561a80
      unknown authored
      The bug report has demonstrated the following two problems.
      1. If an ORDER/GROUP BY list includes a constant expression being 
      optimized away and, at the same time, containing single-row
      subselects that return more that one row, no error is reported.
      Strictly speaking the standard allows to ignore error in this case.
      Yet, now a corresponding fatal error is reported in this case.
      2. If a query requires sorting by expressions containing single-row
      subselects that, however, return more than one row, then the execution
      of the query may cause a server crash. 
      To fix this some code has been added that blocks execution of a subselect
      item in case of a fatal error in the method Item_subselect::exec.
      
      
      mysql-test/r/subselect.result:
        Added a test cases for bug #24653.
      mysql-test/t/subselect.test:
        Added a test cases for bug #24653.
      sql/filesort.cc:
        Fixed bug #24653.
        Added a check for fatal error after reading the next row from the table
        in the function find_all_keys.
      sql/item.cc:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item.h:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item_cmpfunc.cc:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item_cmpfunc.h:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item_func.cc:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item_subselect.cc:
        Fixed bug #24653.
        Added a check for fatal error in the method Item_subselect::exec
        to block evaluation of subselects in erroneous situations.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/sql_select.cc:
        Fixed bug #24653.
        Added a check to verify that any constant expression used
        in ORDER BY and/or GROUP BY lists which is optimized away
        does not contain subselects returning more than one row.
        If it does a fatal error is reported.
      da561a80
  26. 24 Jan, 2007 1 commit
  27. 22 Jan, 2007 1 commit
    • unknown's avatar
      sql_select.cc: · 6447a7b6
      unknown authored
        Code cleanup after fix for bug#23417.
      
      
      sql/sql_select.cc:
        Code cleanup after fix for bug#23417.
      6447a7b6
  28. 19 Jan, 2007 1 commit
    • unknown's avatar
      Bug#25172: Not checked buffer size leads to a server crash. · 5effa05d
      unknown authored
      After fix for bug#21798 JOIN stores the pointer to the buffer for sorting
      fields. It is used while sorting for grouping and for ordering. If ORDER BY
      clause has more elements then the GROUP BY clause then a memory overrun occurs.
      
      Now the length of the ORDER BY list is always passed to the 
      make_unireg_sortorder() function and it allocates buffer big enough to be
      used for bigger list.
      
      
      sql/sql_delete.cc:
        Bug#25172: Not checked buffer size leads to a server crash.
        Length parameter is initialized to 0 for the make_unireg_sortorder() function.
      sql/sql_select.cc:
        Bug#25172: Not checked buffer size leads to a server crash.
        Now the length of the ORDER BY list is always passed to the 
        make_unireg_sortorder() function and it allocates buffer big enough to be
        used for bigger list.
      sql/sql_table.cc:
        Bug#25172: Not checked buffer size leads to a server crash.
        Length parameter is initialized to 0 for the make_unireg_sortorder() function.
      sql/sql_update.cc:
        Bug#25172: Not checked buffer size leads to a server crash.
        Length parameter is initialized to 0 for the make_unireg_sortorder() function.
      mysql-test/r/select.result:
        Added a test case for bug#25172: Not checked buffer size leads to a server crash.
      mysql-test/t/select.test:
        Added a test case for bug#25172: Not checked buffer size leads to a server crash.
      5effa05d
  29. 15 Jan, 2007 2 commits
    • unknown's avatar
      sql_select.cc: · c797abae
      unknown authored
        Fix for crashes on 64bit platforms after fixing bug#23417.
      
      
      sql/sql_select.cc:
        Fix for crashes on 64bit platforms after fixing bug#23417.
      c797abae
    • unknown's avatar
      Fix for bug#20390 "SELECT FOR UPDATE does not release locks · 810fc001
      unknown authored
      of untouched rows in full table scans".
      
      SELECT ... FOR UPDATE/LOCK IN SHARE MODE statements as well as
      UPDATE/DELETE statements which were executed using full table
      scan were not releasing locks on rows which didn't satisfy
      WHERE condition.
      This bug surfaced in 5.0 and affected NDB tables. (InnoDB tables
      intentionally don't support such unlocking in default mode).
      
      This problem occured because code implementing join didn't call
      handler::unlock_row() for rows which didn't satisfy part of condition
      attached to this particular table/level of nested loop. So we solve
      the problem adding this call.
      Note that we already had this call in place in 4.1 but it was lost
      (actually not quite correctly placed) when we have introduced nested 
      joins.
      
      Also note that additional QA should be requested once this patch is
      pushed as interaction between handler::unlock_row() and many recent
      MySQL features such as subqueries, unions, views is not tested enough.
      
      
      mysql-test/r/ndb_lock.result:
        Enabled back part of the test that covers bug #20390 "SELECT FOR
        UPDATE does not release locks of untouched rows in full table scans".
        Adjusted test in such way that it now covers both execution paths
        in which we unlock non-matching rows inspected during table scan.
      mysql-test/t/ndb_lock.test:
        Enabled back part of the test that covers bug #20390 "SELECT FOR
        UPDATE does not release locks of untouched rows in full table scans".
        Adjusted test in such way that it now covers both execution paths
        in which we unlock non-matching rows inspected during table scan.
      sql/sql_select.cc:
        evaluate_join_record() should call handler::unlock_row() for records
        which don't satisfy condition which was pushed-down to this table/level
        of nested loop.
        We just put back the thing that we already have in 4.1 and which was lost
        when we have introduced nested joins.
      810fc001
  30. 12 Jan, 2007 1 commit
    • unknown's avatar
      BUG#24127: (a,b) IN (SELECT c,d ...) can produce wrong results if a and/or b are NULLs: · 5f97dc6e
      unknown authored
      - Make the code produce correct result: use an array of triggers to turn on/off equalities for each
        compared column. Also turn on/off optimizations based on those equalities.
      - Make EXPLAIN output show "Full scan on NULL key" for tables for which we switch between
        ref/unique_subquery/index_subquery and ALL access.
      - index_subquery engine now has HAVING clause when it is needed, and it is
        displayed in EXPLAIN EXTENDED
      - Fix incorrect presense of "Using index" for index/unique-based subqueries (BUG#22930)
      // bk trigger note: this commit refers to BUG#24127
      
      
      mysql-test/r/ndb_subquery.result:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Updated test results (checked)
      mysql-test/r/subselect.result:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Updated test results (checked)
      mysql-test/r/subselect2.result:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Updated test results (checked)
      mysql-test/r/subselect3.result:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Testcases
      mysql-test/t/subselect3.test:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Testcases
      sql/item_cmpfunc.cc:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - For row-based IN subqueries, use one flag per each column. Set the flags appropriately before
          running the subquery.
      sql/item_cmpfunc.h:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
         - Added Item_func_trig_cond::get_triv_var()
      sql/item_subselect.cc:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Item_subselect::exec() and subselect_*_engine::exec() don't have parameter
          anymore - now Item_subselect owns the pushed down predicates guard flags.
        - A correct set of conditional predicates is now pushed into row-based IN 
          subquery.
        - select_indexsubquery_engine now has "HAVING clause" (needed for correct query
          results), and it is shown in EXPLAIN EXTENDED
      sql/item_subselect.h:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Item_subselect::exec() and subselect_*_engine::exec() don't have parameter
          anymore - now Item_subselect owns the pushed down predicates guard flags.
        - A correct set of conditional predicates is now pushed into row-based IN 
          subquery.
        - select_indexsubquery_engine now has "HAVING clause" (needed for correct query
          results), and it is shown in EXPLAIN EXTENDED
      sql/mysql_priv.h:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Added "in_having_cond" special Item name
      sql/mysqld.cc:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Added "in_having_cond" special Item name
      sql/sql_lex.h:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
      sql/sql_select.cc:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Make "ref" analyzer be able to work with conditional equalities
        - Fix subquery optimization code to match the changes in what kinds of 
          conditions are pushed down into subqueries 
        - Fix wrong EXPLAIN output in some queries with subquery (BUG#22390)
      sql/sql_select.h:
        BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
        - Make "ref" analyzer be able to work with conditional equalities
        - Fix wrong EXPLAIN output in some queries with subquery (BUG#22390)
      5f97dc6e
  31. 11 Jan, 2007 1 commit
    • unknown's avatar
      Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. · 4d143a6f
      unknown authored
      Currently in the ONLY_FULL_GROUP_BY mode no hidden fields are allowed in the
      select list. To ensure this each expression in the select list is checked
      to be a constant, an aggregate function or to occur in the GROUP BY list.
      The last two requirements are wrong and doesn't allow valid expressions like
      "MAX(b) - MIN(b)" or "a + 1" in a query with grouping by a.
      
      The correct check implemented by the patch will ensure that:
      any field reference in the [sub]expressions of the select list 
        is under an aggregate function or
        is mentioned as member of the group list or
        is an outer reference or
        is part of the select list element that coincide with a grouping element.
      
      The Item_field objects now can contain the position of the select list
      expression which they belong to. The position is saved during the
      field's Item_field::fix_fields() call.
      
      The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX
      class. The SELECT_LEX::cur_pos_in_select_list now contains the position in the
      select list of the expression being currently fixed.
      
      
      sql/item.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        The Item_field objects now contain the position of the select list
        expression which they belong to. The position is saved at the field's
        Item_field::fix_fields() call.
      sql/item.h:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        The Item_field objects now can store the position in the select list of the
        expression to which they are belongs to.
      sql/mysql_priv.h:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Added the UNDEF_POS constant.
      sql/sql_base.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Now the setup_fields() function maintains the cur_pos_in_select_list variable.
      sql/sql_lex.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Set the cur_pos_in_select_list variable and the non_agg_fields list to their initial state.
      sql/sql_lex.h:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX
        class. The SELECT_LEX::cur_pos_in_select_list now stores the position in the
        select list of the expression being currently fixed.
      sql/sql_select.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Each select now keeps the list of fields that aren't
        used under any aggregate function. If an expression from the select list
        isn't found in the GROUP BY list the setup_group() function additionally
        checks whether non-aggregated fields occur in that expression.
        If there at least one such field and it isn't found in the GROUP BY list
        then an error is thrown.
      sql/sql_union.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Clean up of the non_agg_fields list.
      mysql-test/r/group_by.result:
        Added a test case for the bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
      mysql-test/t/group_by.test:
        Added a test case for the bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
      4d143a6f
  32. 05 Jan, 2007 1 commit
    • unknown's avatar
      Bug #15881: cast problems · 42e31f7a
      unknown authored
        The optimizer removes expressions from GROUP BY/DISTINCT
        if they happen to participate in a <expression> = <const>
        predicates of the WHERE clause (the idea being that if
        it's always equal to a constant it can't have multiple 
        values).
        However for predicates where the expression and the 
        constant item are of different result type this is not
        valid (e.g. a string column compared to 0).
        Fixed by additional check of the result types of the 
        expression and the constant and if they differ the 
        expression don't get removed from the group by list.
      
      
      mysql-test/r/distinct.result:
        Bug #15881: cast problems
          - test case
      mysql-test/t/distinct.test:
        Bug #15881: cast problems
          - test case
      sql/sql_select.cc:
        Bug #15881: cast problems
          - can't use <expr>=<const> to remove GROUP BY/DISTINCT cols
            if they're not of the same type.
      42e31f7a
  33. 03 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #24345. · 42010cde
      unknown authored
      This bug appeared after the patch for bug 21390 that had added some code
      to handle outer joins with no matches after substitution of a const
      table in an efficient way. That code as it is cannot be applied to the case
      of nested outer join operations. Being applied to the queries with
      nested outer joins the code can cause crashes or wrong result sets.
      The fix blocks row substitution for const inner tables of an outer join
      if the inner operand is not a single table.  
      
      
      mysql-test/r/join_nested.result:
        Added a test case for bug #24345.
      mysql-test/t/join_nested.test:
        Added a test case for bug #24345.
      42010cde
  34. 31 Dec, 2006 1 commit
    • unknown's avatar
      my_strtoll10-x86.s: · e2765a84
      unknown authored
        Corrected spelling in copyright text
      Makefile.am:
        Don't update the files from BitKeeper
      Many files:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header 
      Many files:
        Added GPL copyright text
      Removed files:
        Docs/Support/colspec-fix.pl
        Docs/Support/docbook-fixup.pl
        Docs/Support/docbook-prefix.pl
        Docs/Support/docbook-split
        Docs/Support/make-docbook
        Docs/Support/make-makefile
        Docs/Support/test-make-manual
        Docs/Support/test-make-manual-de
        Docs/Support/xwf
      
      
      CMakeLists.txt:
        Added GPL copyright text
      bdb/CMakeLists.txt:
        Added GPL copyright text
      client/CMakeLists.txt:
        Added GPL copyright text
      dbug/CMakeLists.txt:
        Added GPL copyright text
      extra/CMakeLists.txt:
        Added GPL copyright text
      extra/yassl/CMakeLists.txt:
        Added GPL copyright text
      extra/yassl/taocrypt/CMakeLists.txt:
        Added GPL copyright text
      heap/CMakeLists.txt:
        Added GPL copyright text
      innobase/CMakeLists.txt:
        Added GPL copyright text
      libmysql/CMakeLists.txt:
        Added GPL copyright text
      myisam/CMakeLists.txt:
        Added GPL copyright text
      myisammrg/CMakeLists.txt:
        Added GPL copyright text
      mysys/CMakeLists.txt:
        Added GPL copyright text
      regex/CMakeLists.txt:
        Added GPL copyright text
      server-tools/CMakeLists.txt:
        Added GPL copyright text
      server-tools/instance-manager/CMakeLists.txt:
        Added GPL copyright text
      sql/CMakeLists.txt:
        Added GPL copyright text
      sql/examples/CMakeLists.txt:
        Added GPL copyright text
      strings/CMakeLists.txt:
        Added GPL copyright text
      tests/CMakeLists.txt:
        Added GPL copyright text
      vio/CMakeLists.txt:
        Added GPL copyright text
      zlib/CMakeLists.txt:
        Added GPL copyright text
      VC++Files/copy_mysql_files.bat:
        Added GPL copyright text
      extra/yassl/src/make.bat:
        Added GPL copyright text
      extra/yassl/taocrypt/benchmark/make.bat:
        Added GPL copyright text
      extra/yassl/taocrypt/src/make.bat:
        Added GPL copyright text
      extra/yassl/taocrypt/test/make.bat:
        Added GPL copyright text
      extra/yassl/testsuite/make.bat:
        Added GPL copyright text
      Docs/Support/generate-text-files.pl:
        Added GPL copyright text
      VC++Files/prepare:
        Added GPL copyright text
      VC++Files/test1/mysql_thr.c:
        Added GPL copyright text
      VC++Files/thr_test/thr_test.c:
        Added GPL copyright text
      include/help_end.h:
        Added GPL copyright text
      include/help_start.h:
        Added GPL copyright text
      mysql-test/install_test_db.sh:
        Added GPL copyright text
      mysql-test/my_create_tables.c:
        Added GPL copyright text
      mysql-test/ndb/ndbcluster.sh:
        Added GPL copyright text
      scripts/fill_func_tables.sh:
        Added GPL copyright text
      scripts/fill_help_tables.sh:
        Added GPL copyright text
      scripts/mysql_create_system_tables.sh:
        Added GPL copyright text
      scripts/mysql_install_db.sh:
        Added GPL copyright text
      scripts/mysql_upgrade_shell.sh:
        Added GPL copyright text
      server-tools/instance-manager/IMService.cpp:
        Added GPL copyright text
      server-tools/instance-manager/IMService.h:
        Added GPL copyright text
      server-tools/instance-manager/WindowsService.cpp:
        Added GPL copyright text
      server-tools/instance-manager/WindowsService.h:
        Added GPL copyright text
      server-tools/instance-manager/portability.h:
        Added GPL copyright text
      strings/ctype-extra.c:
        Added GPL copyright text
      strings/dump_map.c:
        Added GPL copyright text
      strings/uca-dump.c:
        Added GPL copyright text
      strings/utr11-dump.c:
        Added GPL copyright text
      win/build-vs71.bat:
        Added GPL copyright text
      win/build-vs8.bat:
        Added GPL copyright text
      win/build-vs8_x64.bat:
        Added GPL copyright text
      win/configure.js:
        Added GPL copyright text
      mysql-test/lib/mtr_cases.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_diff.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_gcov.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_gprof.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_im.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_io.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_match.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_misc.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_process.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_report.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_stress.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_timer.pl:
        Added GPL copyright text
      mysql-test/lib/mtr_unique.pl:
        Added GPL copyright text
      strings/my_strtoll10-x86.s:
        Corrected spelling in copyright text
      BUILD/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      Docs/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      SSL/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      bdb/Makefile.in:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      client/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      client/client_priv.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      client/completion_hash.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      client/mysqladmin.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      client/mysqlimport.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      client/mysqlshow.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      dbug/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      extra/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/_check.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/_rectest.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/heapdef.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_block.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_clear.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_close.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_create.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_delete.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_extra.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_hash.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_info.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_open.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_panic.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_rename.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_rfirst.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_rkey.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_rlast.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_rnext.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_rprev.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_rrnd.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_rsame.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_scan.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_static.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_test1.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_test2.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_update.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      heap/hp_write.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/my_aes.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/my_getopt.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/my_handler.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/my_time.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/mysql_time.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/rijndael.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/sha1.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      include/sql_common.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      libmysql/client_settings.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      libmysqld/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      libmysqld/emb_qcache.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      libmysqld/embedded_priv.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      man/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_boolean_search.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_eval.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_nlq_search.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_parser.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_static.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_stem.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_stopwords.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_test1.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_test1.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ft_update.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/ftdefs.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/fulltext.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_cache.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_changed.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_check.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_checksum.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_close.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_create.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_dbug.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_delete.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_delete_all.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_delete_table.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_dynrec.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_extra.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_info.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_key.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_locking.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_log.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_open.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_packrec.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_page.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_panic.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_preload.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_range.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rename.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rfirst.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rkey.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rlast.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rnext.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rnext_same.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rprev.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rrnd.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rsame.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_rsamepos.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_scan.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_search.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_static.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_statrec.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_test1.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_test2.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_test3.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_unique.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_update.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/mi_write.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/myisam_ftdump.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/myisamdef.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/myisamlog.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/myisampack.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/rt_index.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/rt_index.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/rt_key.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/rt_mbr.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/rt_mbr.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/rt_split.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/rt_test.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/sort.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/sp_defs.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisam/sp_test.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_close.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_create.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_def.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_delete.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_extra.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_info.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_locking.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_open.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_panic.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_queue.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_range.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_rfirst.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_rkey.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_rlast.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_rnext.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_rnext_same.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_rprev.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_rrnd.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_rsame.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_static.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_update.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      myisammrg/myrg_write.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysql-test/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/my_aes.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/my_gethostbyname.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/my_gethwaddr.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/my_getopt.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/my_getsystime.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/my_handler.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/my_port.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/my_semaphore.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/rijndael.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      mysys/sha1.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      os2/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      os2/ReadMe.txt:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      os2/include/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      os2/include/sys/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      pstack/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      regex/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      scripts/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      scripts/mysql_config.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/listener.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/listener.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/log.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/log.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/manager.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/manager.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/messages.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/messages.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/mysql_connection.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/mysql_connection.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/mysqlmanager.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/options.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/options.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/priv.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/priv.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/protocol.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/protocol.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/thread_registry.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/thread_registry.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/user_map.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      server-tools/instance-manager/user_map.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/as3ap.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/bench-count-distinct.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/bench-init.pl.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/compare-results.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/copy-db.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/crash-me.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/print-limit-table:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/run-all-tests.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/server-cfg.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-ATIS.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-alter-table.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-big-tables.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-connect.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-create.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-insert.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-select.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-transactions.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-bench/test-wisconsin.sh:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-common/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql-common/my_time.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/client_settings.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/custom_conf.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/derror.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/des_key_file.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/discover.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/field.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/field.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/filesort.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/frm_crypt.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/gen_lex_hash.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/gstream.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/ha_berkeley.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/ha_berkeley.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/ha_heap.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/ha_heap.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/ha_myisam.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/ha_myisam.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/ha_myisammrg.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/ha_myisammrg.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/handler.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/handler.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/hash_filo.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/hash_filo.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/hostname.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/init.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_buff.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_cmpfunc.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_create.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_func.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_geofunc.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_strfunc.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_sum.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_timefunc.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_uniq.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/item_uniq.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/key.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/lex_symbol.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/lock.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/log_event.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/matherr.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/mf_iocache.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/my_decimal.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/my_decimal.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/my_lock.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/opt_range.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/opt_range.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/password.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/procedure.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/procedure.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/protocol.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/records.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/repl_failsafe.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/repl_failsafe.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/set_var.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/spatial.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_acl.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_analyse.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_analyse.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_base.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_cache.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_class.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_class.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_client.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_crypt.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_crypt.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_cursor.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_cursor.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_do.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_insert.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_lex.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_lex.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_list.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_load.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_manager.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_manager.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_map.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_map.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_olap.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_rename.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_repl.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_repl.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_select.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_select.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_test.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_udf.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/sql_update.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/structs.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/table.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/table.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/thr_malloc.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/time.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/unireg.cc:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      sql/unireg.h:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/bmove_upp-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/macros.asm:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/ptr_cmp.asm:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strappend-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strend-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strings.asm:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strinstr-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strmake-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strmov-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strnmov-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strstr-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strxmov-sparc.s:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      strings/strxmov.asm:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      support-files/MacOSX/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      support-files/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      tests/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      tests/deadlock_test.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      tools/mysqlmanager.c:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      vio/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      win/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      innobase/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      innobase/ibuf/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      innobase/include/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      innobase/os/Makefile.am:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header
      ndb/include/Makefile.am:
        Added GPL copyright text
      ndb/src/common/debugger/Makefile.am:
        Added GPL copyright text
      ndb/src/common/debugger/signaldata/Makefile.am:
        Added GPL copyright text
      ndb/src/common/logger/Makefile.am:
        Added GPL copyright text
      ndb/src/common/mgmcommon/Makefile.am:
        Added GPL copyright text
      ndb/src/common/transporter/Makefile.am:
        Added GPL copyright text
      ndb/src/common/util/Makefile.am:
        Added GPL copyright text
      ndb/src/cw/cpcd/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/backup/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/cmvmi/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbacc/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbdict/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbdih/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/dblqh/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbtc/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbtup/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbtux/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbutil/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/ndbcntr/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/ndbfs/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/qmgr/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/suma/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/blocks/trix/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/error/Makefile.am:
        Added GPL copyright text
      ndb/src/kernel/vm/Makefile.am:
        Added GPL copyright text
      ndb/src/mgmapi/Makefile.am:
        Added GPL copyright text
      ndb/src/mgmclient/Makefile.am:
        Added GPL copyright text
      ndb/src/mgmsrv/Makefile.am:
        Added GPL copyright text
      ndb/src/ndbapi/Makefile.am:
        Added GPL copyright text
      ndb/test/ndbapi/Makefile.am:
        Added GPL copyright text
      ndb/test/ndbapi/bank/Makefile.am:
        Added GPL copyright text
      ndb/test/run-test/Makefile.am:
        Added GPL copyright text
      ndb/test/src/Makefile.am:
        Added GPL copyright text
      ndb/test/tools/Makefile.am:
        Added GPL copyright text
      ndb/tools/Makefile.am:
        Added GPL copyright text
      scripts/make_binary_distribution.sh:
        Added GPL copyright text
      scripts/make_sharedlib_distribution.sh:
        Added GPL copyright text
      scripts/make_win_bin_dist:
        Added GPL copyright text
      scripts/make_win_src_distribution.sh:
        Added GPL copyright text
      scripts/mysql_convert_table_format.sh:
        Added GPL copyright text
      scripts/mysql_explain_log.sh:
        Added GPL copyright text
      scripts/mysql_find_rows.sh:
        Added GPL copyright text
      scripts/mysql_fix_privilege_tables.sh:
        Added GPL copyright text
      scripts/mysql_zap.sh:
        Added GPL copyright text
      scripts/mysqlbug.sh:
        Added GPL copyright text
      BitKeeper/deleted/.del-colspec-fix.pl:
        Delete: Docs/Support/colspec-fix.pl
      BitKeeper/deleted/.del-docbook-fixup.pl:
        Delete: Docs/Support/docbook-fixup.pl
      BitKeeper/deleted/.del-docbook-prefix.pl:
        Delete: Docs/Support/docbook-prefix.pl
      BitKeeper/deleted/.del-docbook-split:
        Delete: Docs/Support/docbook-split
      BitKeeper/deleted/.del-make-docbook:
        Delete: Docs/Support/make-docbook
      BitKeeper/deleted/.del-make-makefile:
        Delete: Docs/Support/make-makefile
      BitKeeper/deleted/.del-test-make-manual-de:
        Delete: Docs/Support/test-make-manual-de
      BitKeeper/deleted/.del-test-make-manual:
        Delete: Docs/Support/test-make-manual
      BitKeeper/deleted/.del-xwf:
        Delete: Docs/Support/xwf
      Makefile.am:
        Don't update the files from BitKeeper
      extra/yassl/Makefile.am:
        Don't update the files from BitKeeper
      extra/yassl/taocrypt/Makefile.am:
        Don't update the files from BitKeeper
      extra/yassl/taocrypt/benchmark/Makefile.am:
        Don't update the files from BitKeeper
      extra/yassl/taocrypt/test/Makefile.am:
        Don't update the files from BitKeeper
      innobase/btr/Makefile.am:
        Don't update the files from BitKeeper
      innobase/buf/Makefile.am:
        Don't update the files from BitKeeper
      innobase/data/Makefile.am:
        Don't update the files from BitKeeper
      innobase/dict/Makefile.am:
        Don't update the files from BitKeeper
      innobase/dyn/Makefile.am:
        Don't update the files from BitKeeper
      innobase/eval/Makefile.am:
        Don't update the files from BitKeeper
      innobase/fil/Makefile.am:
        Don't update the files from BitKeeper
      innobase/fsp/Makefile.am:
        Don't update the files from BitKeeper
      innobase/fut/Makefile.am:
        Don't update the files from BitKeeper
      innobase/ha/Makefile.am:
        Don't update the files from BitKeeper
      innobase/lock/Makefile.am:
        Don't update the files from BitKeeper
      innobase/log/Makefile.am:
        Don't update the files from BitKeeper
      innobase/mach/Makefile.am:
        Don't update the files from BitKeeper
      innobase/mem/Makefile.am:
        Don't update the files from BitKeeper
      innobase/mtr/Makefile.am:
        Don't update the files from BitKeeper
      innobase/page/Makefile.am:
        Don't update the files from BitKeeper
      innobase/pars/Makefile.am:
        Don't update the files from BitKeeper
      innobase/que/Makefile.am:
        Don't update the files from BitKeeper
      innobase/read/Makefile.am:
        Don't update the files from BitKeeper
      innobase/rem/Makefile.am:
        Don't update the files from BitKeeper
      innobase/row/Makefile.am:
        Don't update the files from BitKeeper
      innobase/srv/Makefile.am:
        Don't update the files from BitKeeper
      innobase/sync/Makefile.am:
        Don't update the files from BitKeeper
      innobase/thr/Makefile.am:
        Don't update the files from BitKeeper
      innobase/trx/Makefile.am:
        Don't update the files from BitKeeper
      innobase/usr/Makefile.am:
        Don't update the files from BitKeeper
      innobase/ut/Makefile.am:
        Don't update the files from BitKeeper
      libmysql/Makefile.am:
        Don't update the files from BitKeeper
      libmysql_r/Makefile.am:
        Don't update the files from BitKeeper
      ndb/Makefile.am:
        Don't update the files from BitKeeper
      ndb/docs/Makefile.am:
        Don't update the files from BitKeeper
      ndb/src/Makefile.am:
        Don't update the files from BitKeeper
      ndb/src/common/Makefile.am:
        Don't update the files from BitKeeper
      ndb/src/common/portlib/Makefile.am:
        Don't update the files from BitKeeper
      ndb/src/cw/Makefile.am:
        Don't update the files from BitKeeper
      ndb/src/kernel/blocks/Makefile.am:
        Don't update the files from BitKeeper
      ndb/test/Makefile.am:
        Don't update the files from BitKeeper
      pstack/aout/Makefile.am:
        Don't update the files from BitKeeper
      server-tools/Makefile.am:
        Don't update the files from BitKeeper
      zlib/Makefile.am:
        Don't update the files from BitKeeper
      ndb/config/common.mk.am:
        Added GPL copyright text
      ndb/config/type_kernel.mk.am:
        Added GPL copyright text
      ndb/config/type_mgmapiclient.mk.am:
        Added GPL copyright text
      ndb/config/type_ndbapi.mk.am:
        Added GPL copyright text
      ndb/config/type_ndbapiclient.mk.am:
        Added GPL copyright text
      ndb/config/type_ndbapitest.mk.am:
        Added GPL copyright text
      ndb/config/type_ndbapitools.mk.am:
        Added GPL copyright text
      ndb/config/type_util.mk.am:
        Added GPL copyright text
      ndb/include/kernel/kernel_config_parameters.h:
        Added GPL copyright text
      ndb/include/kernel/signaldata/CntrStart.hpp:
        Added GPL copyright text
      ndb/include/kernel/signaldata/ReadConfig.hpp:
        Added GPL copyright text
      ndb/include/kernel/signaldata/UpgradeStartup.hpp:
        Added GPL copyright text
      ndb/include/mgmapi/mgmapi_config_parameters.h:
        Added GPL copyright text
      ndb/include/mgmapi/mgmapi_config_parameters_debug.h:
        Added GPL copyright text
      ndb/include/ndb_net.h:
        Added GPL copyright text
      ndb/include/util/ConfigValues.hpp:
        Added GPL copyright text
      ndb/src/common/debugger/signaldata/CntrStart.cpp:
        Added GPL copyright text
      ndb/src/common/debugger/signaldata/ReadNodesConf.cpp:
        Added GPL copyright text
      ndb/src/common/debugger/signaldata/print.awk:
        Added GPL copyright text
      ndb/src/common/util/Bitmask.cpp:
        Added GPL copyright text
      ndb/src/common/util/ConfigValues.cpp:
        Added GPL copyright text
      ndb/src/common/util/new.cpp:
        Added GPL copyright text
      ndb/src/common/util/testConfigValues/testConfigValues.cpp:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl:
        Added GPL copyright text
      ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl:
        Added GPL copyright text
      ndb/src/mgmapi/mgmapi_configuration.cpp:
        Added GPL copyright text
      e2765a84