An error occurred fetching the project authors.
  1. 02 Nov, 2009 1 commit
    • Martin Hansson's avatar
      Bug#47925: regression of range optimizer and date comparison in 5.1.39! · 4f79bd5d
      Martin Hansson authored
      When a query was using a DATE or DATETIME value formatted
      using any other separator characters beside hyphen '-', a
      query with a greater-or-equal '>=' condition matching only
      the greatest value in an indexed column, the result was
      empty if index range scan was employed.
      
      The range optimizer got a new feature between 5.1.38 and
      5.1.39 that changes a greater-or-equal condition to a
      greater-than if the value matching that in the query was not
      present in the table. But the value comparison function
      compared the dates as strings instead of dates.
      
      The bug was fixed by splitting the function
      get_date_from_str in two: One part that parses and does
      error checking. This function is now visible outside the
      module. The old get_date_from_str now calls the new
      function.
      
      
      mysql-test/r/range.result:
        Bug#47925: Test result
      mysql-test/t/range.test:
        Bug#47925: Test case
      sql/item.cc:
        Bug#47925: Fix + some edit on the comments
      sql/item.h:
        Bug#47925: Changed function signature
      sql/item_cmpfunc.cc:
        Bug#47925: Split function in two
      sql/item_cmpfunc.h:
        Bug#47925: Declaration of new function
      sql/opt_range.cc:
        Bug#47925: Added THD to function call
      sql/time.cc:
        Bug#47925: Added microsecond comparison
      4f79bd5d
  2. 23 Sep, 2009 1 commit
  3. 12 Dec, 2008 1 commit
  4. 11 Dec, 2008 1 commit
    • Gleb Shchepa's avatar
      Bug #40761: Assert on sum function on · 3aadda91
      Gleb Shchepa authored
                  IF(..., CAST(longtext AS UNSIGNED), signed_val)
                  (was: LEFT JOIN on inline view crashes server)
      
      Select from a LONGTEXT column wrapped with an expression
      like "IF(..., CAST(longtext_column AS UNSIGNED), smth_signed)"
      failed an assertion or crashed the server. IFNULL function was
      affected too.
      
      LONGTEXT column item has a maximum length of 32^2-1 bytes,
      at the same time this is a maximum possible length of any
      MySQL item. CAST(longtext_column AS UNSIGNED) returns some
      unsigned numeric result of length 32^2-1, so the result of
      IF/IFNULL function of this number and some other signed number
      will have text length of (32^2-1)+1=32^2 (one byte for the
      minus sign) - there is integer overflow, and the length is
      equal to zero. That caused assert/crash.
      
      The bug has been fixed by the same solution as in the CASE
      function implementation.
      
      
      mysql-test/r/func_if.result:
        Added test case for bug #40761.
      mysql-test/t/func_if.test:
        Added test case for bug #40761.
      sql/item_cmpfunc.cc:
        Bug #40761: Assert on sum function on
                    IF(..., CAST(longtext AS UNSIGNED), signed_val)
        
        1. Item_func_case::agg_str_lengths method has been moved
           to the Item_func superclass.
        2. Item_func_ifnull/Item_func_if::fix_length_and_dec methods
           have been updated to calculate max_length, decimals and
           unsigned flag like Item_func_case.
      sql/item_cmpfunc.h:
        Bug #40761: Assert on sum function on
                    IF(..., CAST(longtext AS UNSIGNED), signed_val)
        
        Item_func_case::agg_str_lengths method has been moved to
        the Item_func superclass.
      sql/item_func.cc:
        Bug #40761: Assert on sum function on
                    IF(..., CAST(longtext AS UNSIGNED), signed_val)
        
        Item_func_case::agg_str_lengths method has been moved to
        the Item_func superclass.
      sql/item_func.h:
        Bug #40761: Assert on sum function on
                    IF(..., CAST(longtext AS UNSIGNED), signed_val)
        
        Item_func_case::agg_str_lengths method has been moved to
        the Item_func superclass.
      3aadda91
  5. 26 Nov, 2008 1 commit
    • Tatiana A. Nurnberg's avatar
      Bug#37553: MySql Error Compare TimeDiff & Time · 9910b867
      Tatiana A. Nurnberg authored
      We pretended that TIMEDIFF() would always return positive results;
      this gave strange results in comparisons of the TIMEDIFF(low,hi)<TIME(0)
      type that rendered a negative result, but still gave false in comparison.
      We also inadvertantly dropped the sign when converting times to
      decimal.
      
      CAST(time AS DECIMAL) handles signs of the times correctly.
      TIMEDIFF() marked up as signed. Time/date comparison code switched to
      signed for clarity.
      
      mysql-test/r/func_sapdb.result:
        show that time-related comparisons work with negative
        time values now.
        show that converting time to DECIMAL no longer drops sign.
      mysql-test/t/func_sapdb.test:
        show that time-related comparisons work with negative
        time values now.
        show that converting time to DECIMAL no longer drops sign.
      sql/item_cmpfunc.cc:
        signed returns
      sql/item_cmpfunc.h:
        signed now (time/date < > =)
      sql/item_func.cc:
        signed now
      sql/item_timefunc.h:
        Functions such as TIMEDIFF() return signed results!
        The file-comments pretended we were doing that all along, anyway...
      sql/my_decimal.cc:
        heed sign when converting time to my_decimal;
        times may actually be negative!
        Needed for SELECT CAST(time('-73:42:12') AS DECIMAL);
      sql/mysql_priv.h:
        using signed for dates and times now
      9910b867
  6. 05 Sep, 2008 1 commit
    • Ramil Kalimullin's avatar
      Fix for bug #39021: SELECT REGEXP BINARY NULL never returns · f024a8b6
      Ramil Kalimullin authored
      Problem: SELECT ... REGEXP BINARY NULL may lead to server crash/hang.
      
      Fix: properly handle NULL regular expressions.
      
      
      mysql-test/r/func_regexp.result:
        Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
          - test result.
      mysql-test/t/func_regexp.test:
        Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
          - test case.
      sql/item_cmpfunc.cc:
        Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
          - checking regular expressions' null_value
        we tested it without a val_xxx() call before, which is wrong.
        Now Item_func_regex::regcomp() returns -1 in the case
        and allows to handle NULL expessions properly.
      sql/item_cmpfunc.h:
        Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
          - checking regular expressions' null_value
        we tested it without a val_xxx() call before, which is wrong.
        Now Item_func_regex::regcomp() returns -1 in the case
        and allows to handle NULL expessions properly.
      f024a8b6
  7. 22 Feb, 2008 1 commit
    • unknown's avatar
      Fix for Bug#30217: Views: changes in metadata behaviour · 367d37b2
      unknown authored
      between 5.0 and 5.1.
        
      The problem was that in the patch for Bug#11986 it was decided
      to store original query in UTF8 encoding for the INFORMATION_SCHEMA.
      This approach however turned out to be quite difficult to implement
      properly. The main problem is to preserve the same IS-output after
      dump/restore.
        
      So, the fix is to rollback to the previous functionality, but also
      to fix it to support multi-character-set-queries properly. The idea
      is to generate INFORMATION_SCHEMA-query from the item-tree after
      parsing view declaration. The IS-query should:
        - be completely in UTF8;
        - not contain character set introducers.
        
      For more information, see WL4052.
      
      
      mysql-test/include/ddl_i18n.check_views.inc:
        Add a test case for Bug#30217.
      mysql-test/r/ddl_i18n_koi8r.result:
        Update result file.
      mysql-test/r/ddl_i18n_utf8.result:
        Update result file.
      mysql-test/r/information_schema.result:
        Update result file.
      mysql-test/r/information_schema_db.result:
        Update result file.
      mysql-test/r/mysqldump.result:
        Update result file.
      mysql-test/r/show_check.result:
        Update result file.
      mysql-test/t/ddl_i18n_koi8r.test:
        Add a test case for Bug#30217.
      mysql-test/t/ddl_i18n_utf8.test:
        Add a test case for Bug#30217.
      mysql-test/t/mysqldump.test:
        Add a test case for Bug#30217.
      sql/ha_ndbcluster.cc:
        Add a parameter to print().
      sql/item.cc:
        1. Add a parameter to print().
        2. Item_string::print():
              - Do not append character set introducer to the text literal
                if we're building a query for INFORMATION_SCHEMA;
              - Convert text literal to UTF8 if we're building a query
                for INFORMATION_SCHEMA.
      sql/item.h:
        Add a parameter to print().
      sql/item_cmpfunc.cc:
        Add a parameter to print().
      sql/item_cmpfunc.h:
        Add a parameter to print().
      sql/item_func.cc:
        Add a parameter to print().
      sql/item_func.h:
        Add a parameter to print().
      sql/item_geofunc.h:
        Add a parameter to print().
      sql/item_row.cc:
        Add a parameter to print().
      sql/item_row.h:
        Add a parameter to print().
      sql/item_strfunc.cc:
        Add a parameter to print().
      sql/item_strfunc.h:
        Add a parameter to print().
      sql/item_subselect.cc:
        Add a parameter to print().
      sql/item_subselect.h:
        Add a parameter to print().
      sql/item_sum.cc:
        Add a parameter to print().
      sql/item_sum.h:
        Add a parameter to print().
      sql/item_timefunc.cc:
        Add a parameter to print().
      sql/item_timefunc.h:
        Add a parameter to print().
      sql/mysql_priv.h:
        Add a parameter to print().
      sql/sp_head.cc:
        Add a parameter to print().
      sql/sql_lex.cc:
        Add a parameter to print().
      sql/sql_lex.h:
        Add a parameter to print().
      sql/sql_parse.cc:
        Add a parameter to print().
      sql/sql_select.cc:
        Add a parameter to print().
      sql/sql_show.cc:
        Add a parameter to print().
      sql/sql_test.cc:
        Add a parameter to print().
      sql/sql_view.cc:
        Build INFORMATION_SCHEMA query from Item-tree.
      sql/sql_yacc.yy:
        Build INFORMATION_SCHEMA query from Item-tree.
      sql/table.h:
        Add a parameter to print().
      367d37b2
  8. 29 Oct, 2007 1 commit
    • unknown's avatar
      Fix for bug #30782: Truncated UNSIGNED BIGINT columns only in SELECT w/ CASE, · 90081aed
      unknown authored
      JOIN, and ORDER BY
      
      Problem: improper maximum length calculation of the CASE function leads to 
      decimal value truncation (storing/retrieving decimal field values).
      
      Fix: accurately calculate maximum length/unsigned flag/decimals parameters 
      of the CASE function.
      
      
      mysql-test/r/case.result:
        Fix for bug #30782: Truncated UNSIGNED BIGINT columns only in SELECT w/ CASE, 
        JOIN, and ORDER BY
          - test result.
      mysql-test/t/case.test:
        Fix for bug #30782: Truncated UNSIGNED BIGINT columns only in SELECT w/ CASE, 
        JOIN, and ORDER BY
          - test case.
      sql/item_cmpfunc.cc:
        Fix for bug #30782: Truncated UNSIGNED BIGINT columns only in SELECT w/ CASE, 
        JOIN, and ORDER BY
          - accurately calculate Item_func_case::max_length/unsigned_flag/decimals.
      sql/item_cmpfunc.h:
        Fix for bug #30782: Truncated UNSIGNED BIGINT columns only in SELECT w/ CASE, 
        JOIN, and ORDER BY
          - accurately calculate Item_func_case::max_length/unsigned_flag/decimals.
      90081aed
  9. 17 Oct, 2007 1 commit
    • unknown's avatar
      Fix for bug #31207: Test "join_nested" shows different strategy on IA64 · 56aad336
      unknown authored
      CPUs / Intel's ICC compile
      
      The bug is a combination of two problems:
      
      1. IA64/ICC MySQL binaries use glibc's qsort(), not the one in mysys.
      
      2. The order relation implemented by join_tab_cmp() is not transitive,
      i.e. it is possible to choose such a, b and c that (a < b) && (b < c)
      but (c < a). This implies that result of a sort using the relation
      implemented by join_tab_cmp() depends on the order in which
      elements are compared, i.e. the result is implementation-specific. Since
      choose_plan() uses qsort() to pre-sort the
      join tables using join_tab_cmp() as a compare function, the results of
      the sorting may vary depending on qsort() implementation.
      
      It is neither possible nor important to implement a better ordering
      algorithm in join_tab_cmp(). Therefore the only way to fix it is to
      force our own qsort() to be used by renaming it to my_qsort(), so we don't depend
      on linker to decide that.
      
      This patch also "fixes" bug #20530: qsort redefinition violates the
      standard.
      
      
      include/my_sys.h:
        Renamed qsort() and qsort2() to my_qsort() and my_qsort2(). Since
        previously we relied on stdlib.h to provide a declaration for qsort(), a
        separate declaration for my_qsort() is now required.
      libmysql/Makefile.shared:
        Added mf_qsort.c to libmysql, since my_lib.c now uses my_qsort() instead of qsort().
      myisam/ft_boolean_search.c:
        Replaced qsort2() with my_qsort2().
      myisam/ft_nlq_search.c:
        Replaced qsort2() with my_qsort2().
      myisam/myisampack.c:
        Replaced qsort() with my_qsort().
      myisam/sort.c:
        Replaced qsort2() with my_qsort2().
      mysys/mf_keycache.c:
        Replaced qsort() with my_qsort().
      mysys/mf_qsort.c:
        Renamed qsort() to my_qsort() and qsort2() to my_qsort2().
      mysys/mf_sort.c:
        Replaced qsort2() with my_qsort2().
      mysys/my_lib.c:
        Replaced qsort() with my_qsort().
      mysys/queues.c:
        Replaced qsort2() with my_qsort2().
      sql/item_cmpfunc.cc:
        Replaced qsort2() with my_qsort2().
      sql/item_cmpfunc.h:
        Replaced qsort2() with my_qsort2().
      sql/opt_range.cc:
        Replaced qsort() with my_qsort().
      sql/records.cc:
        Replaced qsort() with my_qsort().
      sql/sql_acl.cc:
        Replaced qsort() with my_qsort().
      sql/sql_array.h:
        Replaced qsort() with my_qsort().
      sql/sql_help.cc:
        Replaced qsort() with my_qsort().
      sql/sql_select.cc:
        Replaced qsort() with my_qsort().
      sql/examples/ha_tina.cc:
        Replaced qsort() with my_qsort().
      sql/sql_table.cc:
        Replaced qsort() with my_qsort().
      56aad336
  10. 05 Oct, 2007 1 commit
    • unknown's avatar
      Bug#31081 server crash in regexp function · 7ea99203
      unknown authored
      Problem: The "regex" library written by Henry Spencer
      does not support tricky character sets like UCS2.
      Fix: convert tricky character sets to UTF8 before calling
      regex functions.
      
      
      mysql-test/r/ctype_uca.result:
        Adding tests
      mysql-test/r/ctype_ucs.result:
        Adding tests
      mysql-test/r/ctype_utf8.result:
        Adding tests
      mysql-test/r/func_regexp.result:
        Adding tests
      mysql-test/t/ctype_uca.test:
        Adding tests
      mysql-test/t/ctype_ucs.test:
        Adding tests
      mysql-test/t/ctype_utf8.test:
        Adding tests
      mysql-test/t/func_regexp.test:
        Adding tests
      sql/item_cmpfunc.cc:
        - Adding new method Item_func_regex::regcomp()
        to share more code between fix_fields() and val_int()
        - Adding conversion from ASCII-incompatible charsets like UCS2
        to UTF8, because the "regexp" does not support these charsets
        - Additional optimization: calculate flags for regcomp only
          once in fix_fields, instead of every regcomp()
      sql/item_cmpfunc.h:
        Adding prototypes for new members and methods
      mysql-test/include/ctype_regex.inc:
        New BitKeeper file ``mysql-test/include/ctype_regex.inc''
        
        Moving common regular expression tests into a separate
        file and uncluding it into func_regexp and into many ctype_xxx tests.
      7ea99203
  11. 26 Sep, 2007 1 commit
    • unknown's avatar
      merge of the fix for bug 27802 & 27216 to 5.1-opt · 05d767db
      unknown authored
      mysql-test/r/view.result:
        merge of the fix for bug 27802 to 5.1
      sql/item_cmpfunc.h:
        merge of the fix for bug 27216 to 5.1
      sql/sql_insert.cc:
        merge of the fix for bug 27216 to 5.1
      sql/sql_lex.h:
        merge of the fix for bug 27802 to 5.1
      sql/sql_select.cc:
        merge of the fix for bug 27802 to 5.1
      sql/table.h:
        merge of the fix for bug 27802 to 5.1
      05d767db
  12. 22 Sep, 2007 1 commit
    • unknown's avatar
      Bug#27216: functions with parameters of different date types may return wrong · f8321b5a
      unknown authored
      type of the result.
      
      There are several functions that accept parameters of different types.
      The result field type of such functions was determined based on
      the aggregated result type of its arguments. As the DATE and the DATETIME
      types are represented by the STRING type, the result field type
      of the affected functions was always STRING for DATE/DATETIME arguments.
      The affected functions are COALESCE, IF, IFNULL, CASE, LEAST/GREATEST, CASE.
      
      Now the affected functions aggregate the field types of their arguments rather
      than their result types and return the result of aggregation as their result
      field type.
      The cached_field_type member variable is added to the number of classes to
      hold the aggregated result field type.
      The str_to_date() function's result field type now defaults to the
      MYSQL_TYPE_DATETIME.
      The agg_field_type() function is added. It aggregates field types with help
      of the Field::field_type_merge() function.
      The create_table_from_items() function now uses the 
      item->tmp_table_field_from_field_type() function to get the proper field
      when the item is a function with a STRING result type.
      
      
      libmysql/libmysql.c:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        The client library now accepts the NEWDATE type as a string.
      sql/item_cmpfunc.cc:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        Now the fix_length_and_dec functions of the
        Item_func_ifnull,Item_func_if, Item_func_case, Item_func_coalesce
        classes are use agg_field_type function to find out the type of their 
        result field.
      sql/item_cmpfunc.h:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        The cached_field type is added to the Item_func_case, Item_func_if and
        Item_func_coalesce classes.
        The field_type function is added to the Item_func_ifnull, Item_func_if,
        Item_func_coalesce, Item_func_case classes.
      sql/item_func.cc:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        The Item_func_min_max::fix_length_and_dec function now uses the agg_field_type
        function to find out the correct type of the result field.
      sql/item_func.h:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        The cached_field_type variable is added to the Item_func_min_max class.
      sql/item_timefunc.cc:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        The result of the str_to_date function now defaults to the
        DATETIME type.
      sql/mysql_priv.h:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        The prototype of the agg_field_type function is added.
      sql/protocol.cc:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        The Protocol_simple::store function is now used to store fields of NEWDATE type.
      sql/sql_insert.cc:
        Bug#27216: functions with parameters of different date types may return wrong
        type of the result.
        The create_table_from_items function now uses the
        tmp_table_field_from_field_type function to get field for items with the
        STRING result type.
      mysql-test/r/date_formats.result:
        A test case result corrected after fixing bug#27216.
      mysql-test/r/type_datetime.result:
        Added a test case for the bug#27216: functions with parameters of different
        date types may return wrong type of the result.
      mysql-test/t/type_datetime.test:
        Added a test case for the bug#27216: functions with parameters of different
        date types may return wrong type of the result.
      f8321b5a
  13. 23 Aug, 2007 1 commit
    • unknown's avatar
      Fixed bug #30396. · 64c17322
      unknown authored
      Recommit to 5.1.22.
      The bug caused memory corruption for some queries with top OR level
      in the WHERE condition if they contained equality predicates and 
      other sargable predicates in disjunctive parts of the condition.
      
      The corruption happened because the upper bound of the memory
      allocated for KEY_FIELD and SARGABLE_PARAM internal structures
      containing info about potential lookup keys was calculated incorrectly
      in some cases. In particular it was calculated incorrectly when the
      WHERE condition was an OR formula with disjuncts being AND formulas
      including equalities and other sargable predicates.
      
      
      mysql-test/r/select.result:
        Added a test case for bug #30396.
        Recommit to 5.1.22.
      mysql-test/t/select.test:
        Added a test case for bug #30396.
        Recommit to 5.1.22.
      sql/item_cmpfunc.h:
        Removed max_members from the COND_EQUAL class as not useful anymore. 
        Recommit to 5.1.22.
      sql/sql_base.cc:
        Added the max_equal_elems field to the st_select_lex structure.
        Recommit to 5.1.22.
      sql/sql_lex.cc:
        Added the max_equal_elems field to the st_select_lex structure.
        Recommit to 5.1.22.
      sql/sql_lex.h:
        Added the max_equal_elems field to the st_select_lex structure.
        The field contains the maximal number of elements in multiple equalities
        built for the query conditions.
        Recommit to 5.1.22.
      sql/sql_select.cc:
        Fixed bug #30396.
        Recommit to 5.1.22.
        The bug caused memory corruption for some queries with top OR level
        in the WHERE condition if they contained equality predicates and 
        other sargable predicates in disjunctive parts of the condition.
        
        The corruption happened because the upper bound of the memory
        allocated for KEY_FIELD and SARGABLE_PARAM internal structures
        containing info about potential lookup keys was calculated incorrectly
        in some cases. In particular it was calculated incorrectly when the
        WHERE condition was an OR formula with disjuncts being AND formulas
        including equalities and other sargable predicates.
         
        The max_equal_elems field to the st_select_lex structure is used now
        to calculate the above mentioned upper bound. The field contains the
        maximal number of elements in multiple equalities built for the query
        conditions.
      64c17322
  14. 22 Aug, 2007 1 commit
    • unknown's avatar
      Bug#30237 (Performance regression in boolean expressions) · ead3e1a5
      unknown authored
      This is a performance bug, related to the parsing or 'OR' and 'AND' boolean
      expressions.
      
      Let N be the number of expressions involved in a OR (respectively AND).
      
      When N=1
      
      For example, "select 1" involve only 1 term: there is no OR operator.
      
      In 4.0 and 4.1, parsing expressions not involving OR had no overhead.
      In 5.0, parsing adds some overhead, with Select->expr_list.
      
      With this patch, the overhead introduced in 5.0 has been removed,
      so that performances for N=1 should be identical to the 4.0 performances,
      which are optimal (there is no code executed at all)
      
      The overhead in 5.0 was in fact affecting significantly some operations.
      For example, loading 1 Million rows into a table with INSERTs,
      for a table that has 100 columns, leads to parsing 100 Millions of
      expressions, which means that the overhead related to Select->expr_list
      is executed 100 Million times ...
      
      Considering that N=1 is by far the most probable expression,
      this case should be optimal.
      
      When N=2
      
      For example, "select a OR b" involves 2 terms in the OR operator.
      
      In 4.0 and 4.1, parsing expressions involving 2 terms created 1 Item_cond_or
      node, which is the expected result.
      In 5.0, parsing these expression also produced 1 node, but with some extra
      overhead related to Select->expr_list : creating 1 list in Select->expr_list
      and another in Item_cond::list is inefficient.
      
      With this patch, the overhead introduced in 5.0 has been removed
      so that performances for N=2 should be identical to the 4.0 performances.
      Note that the memory allocation uses the new (thd->mem_root) syntax
      directly.
      The cost of "is_cond_or" is estimated to be neglectable: the real problem
      of the performance degradation comes from unneeded memory allocations.
      
      When N>=3
      
      For example, "select a OR b OR c ...", which involves 3 or more terms.
      
      In 4.0 and 4.1, the parser had no significant cost overhead, but produced
      an Item tree which is difficult to evaluate / optimize during runtime.
      In 5.0, the parser produces a better Item tree, using the Item_cond
      constructor that accepts a list of children directly, but at an extra cost
      related to Select->expr_list.
      
      With this patch, the code is implemented to take the best of the two
      implementations:
      - there is no overhead with Select->expr_list
      - the Item tree generated is optimized and flattened.
      
      This is achieved by adding children nodes into the Item tree directly,
      with Item_cond::add(), which avoids the need for temporary lists and memory
      allocation
      
      Note that this patch also provide an extra optimization, that the previous
      code in 5.0 did not provide: expressions are flattened in the Item tree,
      based on what the expression already parsed is, and not based on the order
      in which rules are reduced.
      
      For example : "(a OR b) OR c", "a OR (b OR c)" would both be represented
      with 2 Item_cond_or nodes before this patch, and with 1 node only with this
      patch. The logic used is based on the mathematical properties of the OR
      operator (it's associative), and produces a simpler tree.
      
      
      sql/item_cmpfunc.h:
        Improved performances for parsing boolean expressions
      sql/sql_yacc.yy:
        Improved performances for parsing boolean expressions
      mysql-test/r/parser_precedence.result:
        Added test cases to cover boolean operator precedence
      mysql-test/t/parser_precedence.test:
        Added test cases to cover boolean operator precedence
      ead3e1a5
  15. 15 Aug, 2007 1 commit
    • unknown's avatar
      Fixed bug #30396. · 42a6a150
      unknown authored
      The bug caused memory corruption for some queries with top OR level
      in the WHERE condition if they contained equality predicates and 
      other sargable predicates in disjunctive parts of the condition.
      
      The corruption happened because the upper bound of the memory
      allocated for KEY_FIELD and SARGABLE_PARAM internal structures
      containing info about potential lookup keys was calculated incorrectly
      in some cases. In particular it was calculated incorrectly when the
      WHERE condition was an OR formula with disjuncts being AND formulas
      including equalities and other sargable predicates.
      
      
      mysql-test/r/select.result:
        Added a test case for bug #30396.
      mysql-test/t/select.test:
        Added a test case for bug #30396.
      sql/item_cmpfunc.h:
        Removed max_members from the COND_EQUAL class as not useful anymore.
      sql/sql_base.cc:
        Added the max_equal_elems field to the st_select_lex structure.
      sql/sql_lex.cc:
        Added the max_equal_elems field to the st_select_lex structure.
      sql/sql_lex.h:
        Added the max_equal_elems field to the st_select_lex structure.
        The field contains the maximal number of elements in multiple equalities
        built for the query conditions.
      sql/sql_select.cc:
        Fixed bug #30396.
        The bug caused memory corruption for some queries with top OR level
        in the WHERE condition if they contained equality predicates and 
        other sargable predicates in disjunctive parts of the condition.
        
        The corruption happened because the upper bound of the memory
        allocated for KEY_FIELD and SARGABLE_PARAM internal structures
        containing info about potential lookup keys was calculated incorrectly
        in some cases. In particular it was calculated incorrectly when the
        WHERE condition was an OR formula with disjuncts being AND formulas
        including equalities and other sargable predicates.
         
        The max_equal_elems field to the st_select_lex structure is used now
        to calculate the above mentioned upper bound. The field contains the
        maximal number of elements in multiple equalities built for the query
        conditions.
      42a6a150
  16. 13 Aug, 2007 1 commit
    • unknown's avatar
      Fixed a lot of compiler warnings and errors detected by Forte C++ on Solaris · 09bc9d90
      unknown authored
      Faster thr_alarm()
      Added 'Opened_files' status variable to track calls to my_open()
      Don't give warnings when running mysql_install_db
      Added option --source-install to mysql_install_db
      
      I had to do the following renames() as used polymorphism didn't work with Forte compiler on 64 bit systems
      index_read()      -> index_read_map()
      index_read_idx()  -> index_read_idx_map()
      index_read_last() -> index_read_last_map()
      
      
      BUILD/compile-solaris-sparc-forte:
        Updated script to current Solaris installations
        Now we compile by default for 64 bits
      client/mysql.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      client/mysql_upgrade.c:
        Fixed compiler warning (on Forte)
      client/mysqladmin.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      client/mysqlcheck.c:
        Fixed compiler warning (on Forte)
      client/mysqldump.c:
        Fixed compiler warning (on Forte)
      client/mysqlslap.c:
        Fixed compiler warning (on Forte)
      client/mysqltest.c:
        Fixed compiler warning (on Forte)
      client/sql_string.cc:
        Avoid compiler warnings when using C function pointers in C++
      configure.in:
        Added detection of mtmalloc and ieeefp.h
      extra/replace.c:
        Fixed compiler warning (on Forte)
      include/m_ctype.h:
        Added some typedef's to make it easy to use C function pointers in C++
      include/my_sys.h:
        Added my_file_total_opened (counter for calls to my_open())
      include/myisam.h:
        Fixed compiler warning (on Forte)
      libmysql/libmysql.c:
        Fixed compiler warning (on Forte) by adding casts and change types
      libmysql/manager.c:
        Fixed compiler warning (on Forte) by adding casts and change types
      mysql-test/r/ctype_cp932_binlog_stm.result:
        Updated positions
        (Needed because we didn't before correctly restore collation_database after running stored procedure
      mysys/my_fopen.c:
        Count number of opened files
      mysys/my_open.c:
        Count number of opened files
      mysys/my_static.c:
        Count number of opened files
      mysys/thr_alarm.c:
        Optimization to do less alarm() and pthread_sigmask() calls.
        Idea is to remember time for next pending alarm and not reschedule a new alarm if it's after the current one.
        Before we only did this if there was other pending alarms.
        We don't have to use pthread_sigmask() in case of 'USE_ONE_SIGNAL_HAND' as the alarm()
        signal will be blocked for the calling thread anyway and no other thread will have the alarm() signal enabled to call process_alarm()
      regex/regcomp.c:
        Fixed compiler warning (on Forte) by adding casts and change types
      scripts/mysql_install_db.sh:
        Added option --source-install to allow one to create a mysql database from the source tree without installing MySQL
        Don't give (unnecessary) warnings
      server-tools/instance-manager/angel.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      server-tools/instance-manager/thread_registry.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/event_db_repository.cc:
        index_read() -> index_read_map()
      sql/event_queue.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/field.cc:
        Fixed compiler warnings about hidden fields
      sql/ha_partition.cc:
        Fixed compiler warnings about hidden fields
        index_read() -> index_read_map()
      sql/ha_partition.h:
        index_read() -> index_read_map()
      sql/handler.cc:
        Added PAGE option to row types (to prepare for future)
        index_read() -> index_read_map()
      sql/handler.h:
        Added ROW_TYPE_PAGE (for future)
        Added flag to signal if table was to be created transactionally
        I had to do the following renames() as used polymorphism didn't work with Forte compiler on 64 bit systems
        index_read()      -> index_read_map()
        index_read_idx()  -> index_read_idx_map()
        index_read_last() -> index_read_last_map()
      sql/item.cc:
        Fixed indentation
        Renamed local variable to avoid hiding class variable
      sql/item_cmpfunc.cc:
        Renamed local variable to avoid hiding class variable
      sql/item_cmpfunc.h:
        Removed not used variable
      sql/item_func.cc:
        Renamed local variable to avoid hiding class variable
      sql/item_strfunc.cc:
        Moved functions from Item_strfunc.cc
      sql/item_strfunc.h:
        Move functions to item_strfunc.cc
        Use C function pointer type to avoid compiler warnings (with Forte)
      sql/item_subselect.cc:
        index_read() -> index_read_map()
      sql/item_xmlfunc.cc:
        Renamed local variable to avoid hiding class variable
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/key.cc:
        Fixed indentation
      sql/log.cc:
        Renamed local variable to avoid hiding class variable
      sql/log_event.cc:
        Removed call to my_time() when creating class instance of Log_event() as this may have static instances.
        (One can't call my_time() before my_init())
        index_read() -> index_read_map()
        Renamed local variable to avoid hiding class variable
      sql/log_event_old.cc:
        Renamed local variable to avoid hiding class variable
      sql/mysql_priv.h:
        Made all create_backup_ctx() declarations identical.
        This lifted up a bug where wrong create_backup_ctx() was called in some cases.
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/mysqld.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
        Fixed indentation
        Don't call end_thr_alarm() when calling unireg_abort() as unireg_abort() already calls end_thr_alarm()
        Added variable 'Opened_files' (number of calls to my_open() or my_fopen())
        Don't print 'loose' warnings when using --bootstrap (to avoid warnings when running mysql_install_db)
        Fixed compiler warnings
      sql/opt_range.cc:
        index_read() -> index_read_map()
      sql/opt_sum.cc:
        index_read() -> index_read_map()
      sql/partition_info.cc:
        Renamed local variable to avoid hiding class variable
      sql/rpl_filter.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/set_var.cc:
        Renamed local variable to avoid hiding class variable
        Added 'process_key_cache_t' type to avoid compiler warning (on Forte)
      sql/set_var.h:
        Added 'process_key_cache_t' type to avoid compiler warning (on Forte)
      sql/sp.cc:
        More debugging
        index_read() -> index_read_map()
      sql/sp_cache.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/sp_head.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
        Moved 'saved_creation_ctx' higher up to be able to free objects allocated by create_backup_ctx()
      sql/sql_acl.cc:
        index_read() -> index_read_map()
      sql/sql_class.cc:
        Renamed local variable to avoid hiding class variable
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/sql_class.h:
        Renamed local variable to avoid hiding class variable
      sql/sql_db.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/sql_delete.cc:
        Renamed local variable to avoid hiding class variable
      sql/sql_handler.cc:
        index_read() -> index_read_map()
      sql/sql_help.cc:
        index_read() -> index_read_map()
      sql/sql_insert.cc:
        index_read() -> index_read_map()
        Renamed local variable to avoid hiding class variable
      sql/sql_lex.cc:
        Renamed local variable to avoid hiding class variable
      sql/sql_plugin.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
        index_read() -> index_read_map()
        Don't give warnings about not used plugins if we are using --warnings=0
      sql/sql_select.cc:
        index_read() -> index_read_map()
      sql-common/client.c:
        Fixed compiler warning (on Forte)
      sql-common/my_time.c:
        Removed never accessed code
        Fixed compiler warning (on Forte)
      sql/sql_servers.cc:
        index_read() -> index_read_map()
      sql/sql_show.cc:
        Added TRANSACTIONAL to SHOW CREATE
        Fixed ROW_TYPE_PAGE
      sql/sql_string.cc:
        Avoid compiler warnings when using C function pointers in C++
      sql/sql_table.cc:
        Set create_info->transactional if we used TRANSACTIONAL=1
      sql/sql_udf.cc:
        index_read() -> index_read_map()
      sql/sql_yacc.yy:
        Added TRANSACTIONAL=0|1 to CREATE (for future)
        Added row type PAGE (was only partionally handled before)
      sql/strfunc.cc:
        Avoid compiler warnings when using C function pointers in C++
      sql/table.cc:
        More DBUG statements
        Declare all create_backup_ctx() functions identically
        Remember if table was created with TRANSACTIONAL flag or not (future safe)
        Renamed local variable to avoid hiding class variable
      sql/table.h:
        Remember if table was created with TRANSACTIONAL=1
      sql/tztime.cc:
        index_read() -> index_read_map()
      sql-common/pack.c:
        Fixed compiler warning (on Forte)
      storage/archive/archive_reader.c:
        Fixed compiler warning (on Forte)
      storage/archive/azio.c:
        Fixed compiler warning (on Forte)
      storage/blackhole/ha_blackhole.cc:
        index_read() -> index_read_map()
      storage/blackhole/ha_blackhole.h:
        index_read() -> index_read_map()
      storage/csv/ha_tina.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      storage/example/ha_example.cc:
        index_read() -> index_read_map()
      storage/example/ha_example.h:
        index_read() -> index_read_map()
      storage/heap/ha_heap.cc:
        index_read() -> index_read_map()
      storage/heap/ha_heap.h:
        index_read() -> index_read_map()
      storage/heap/hp_test1.c:
        Fixed compiler warning (on Forte)
      storage/heap/hp_test2.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ft_boolean_search.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ft_nlq_search.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ft_parser.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ft_stopwords.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ha_myisam.cc:
        index_read() -> index_read_map()
      storage/myisam/ha_myisam.h:
        index_read() -> index_read_map()
      storage/myisam/mi_check.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_delete.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_dynrec.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_extra.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_key.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_keycache.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_locking.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_log.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_open.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_packrec.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_page.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_rkey.c:
        Added comment
      storage/myisam/mi_search.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_statrec.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_test1.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_test2.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_test3.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_update.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_write.c:
        Fixed compiler warning (on Forte)
      storage/myisam/myisamdef.h:
        Fixed that file_read/file_write returns type size_t
        Changed some functions to use uchar * as argument/return value instead of char*
        This fixed some compiler warnings on Forte
      storage/myisam/myisamlog.c:
        Fixed compiler warning (on Forte)
      storage/myisam/myisampack.c:
        Fixed compiler warning (on Forte)
      storage/myisam/rt_test.c:
        Fixed compiler warning (on Forte)
      storage/myisam/sort.c:
        Fixed compiler warning (on Forte) by adding casts or changing variables to uchar*
      storage/myisam/sp_test.c:
        Fixed compiler warning (on Forte) by adding casts or changing variables to uchar*
      storage/myisammrg/ha_myisammrg.cc:
        index_read() -> index_read_map()
      storage/myisammrg/ha_myisammrg.h:
        index_read() -> index_read_map()
      storage/myisammrg/myrg_create.c:
        Fixed compiler warning (on Forte) by adding casts or changing variable types
      storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
        Tdummy -> align  (as in other part of cluster code)
      storage/ndb/src/kernel/vm/DynArr256.cpp:
        Removed not used variable
      storage/ndb/src/ndbapi/Ndb.cpp:
        Removed not used variable
      strings/strtod.c:
        Include ieeefp.h to avoid compiler warning
      tests/bug25714.c:
        Fixed compiler warning
      tests/mysql_client_test.c:
        Remove not used variable
        Fixed indentation
        Removed never reached code
        Fixed compiler warning (on Forte) by adding casts or changing variable types
      vio/viosocket.c:
        Fixed compiler warning (on Forte) by adding casts or changing variable types
      09bc9d90
  17. 30 Jul, 2007 1 commit
    • unknown's avatar
      Slow query log to file now displays queries with microsecond precission · 21e25f8b
      unknown authored
      --long-query-time is now given in seconds with microseconds as decimals
      --min_examined_row_limit added for slow query log
      long_query_time user variable is now double with 6 decimals
      Added functions to get time in microseconds
      Added faster time() functions for system that has gethrtime()  (Solaris)
      We now do less time() calls.
      Added field->in_read_set() and field->in_write_set() for easier field manipulation by handlers
      set_var.cc and my_getopt() can now handle DOUBLE variables.
      All time() calls changed to my_time()
      my_time() now does retry's if time() call fails.
      Added debug function for stopping in mysql_admin_table() when tables are locked
      Some trivial function and struct variable renames to avoid merge errors.
      Fixed compiler warnings
      Initialization of some time variables on windows moved to my_init() 
      
      
      include/my_getopt.h:
        Added support for double arguments
      include/my_sys.h:
        Fixed wrong type to packfrm()
        Added new my_time functions
      include/mysql/plugin.h:
        Added support for DOUBLE
      libmysql/CMakeLists.txt:
        Added new time functions
      libmysql/Makefile.shared:
        Added new time functions
      mysql-test/r/variables.result:
        Testing of long_query_time
      mysql-test/t/variables.test:
        Testing of long_query_time
      mysys/charset.c:
        Fixed compiler warnings
      mysys/default_modify.c:
        Fixed compiler warnings
      mysys/hash.c:
        Fixed compiler warnings
      mysys/mf_getdate.c:
        Use my_time()
      mysys/mf_iocache2.c:
        Fixed compiler warnings
      mysys/mf_pack.c:
        Fixed compiler warnings
      mysys/mf_path.c:
        Fixed compiler warnings
      mysys/my_append.c:
        Fixed compiler warnings
      mysys/my_compress.c:
        Fixed compiler warnings
      mysys/my_copy.c:
        Fixed compiler warnings
      mysys/my_gethwaddr.c:
        Fixed compiler warnings
      mysys/my_getopt.c:
        Added support for double arguments
      mysys/my_getsystime.c:
        Added functions to get time in microseconds.
        Added faster time() functions for system that has gethrtime()  (Solaris)
        Moved windows initialization code to my_init()
      mysys/my_init.c:
        Added initializing of variables needed for windows time functions
      mysys/my_static.c:
        Added variables needed for windows time functions
      mysys/my_static.h:
        Added variables needed for windows time functions
      mysys/my_thr_init.c:
        Added THR_LOCK_time, used for faster my_time()
      mysys/mysys_priv.h:
        Added THR_LOCK_time, used for faster my_time()
      mysys/thr_alarm.c:
        time() -> my_time()
      sql/event_data_objects.cc:
        end_time() -> set_current_time()
      sql/event_queue.cc:
        end_time() -> set_current_time()
      sql/event_scheduler.cc:
        Fixed compiler warnings
      sql/field.h:
        Added field->in_read_set() and field->in_write_set() for easier field manipulation by handlers
      sql/item.h:
        Added decimal to Item_float(double)
      sql/item_cmpfunc.h:
        Added decimal to Item_float(double)
      sql/item_timefunc.cc:
        time() -> my_time()
      sql/item_xmlfunc.cc:
        Fixed compiler warning
      sql/lock.cc:
        lock_time() -> set_time_after_lock()
      sql/log.cc:
        Timing in slow query log to file is now done in microseconds
        Changed some while() loops to for() loops.
        Fixed indentation
        time() -> my_time()
      sql/log.h:
        Slow query logging is now done based on microseconds
      sql/log_event.cc:
        time() -> my_time()
        Fixed arguments to new Item_float()
      sql/mysql_priv.h:
        Fixed compiler warnings
        Added opt_log_slow_slave_statements
      sql/mysqld.cc:
        Added --log_slow_slave_statements and --min_examined_row_limit
        --long-query-time now takes a double argument with microsecond resolution
        Don't write shutdown message when using --help
        Removed not needed \n
        Thread create time and connect time is now done in microseconds
        time() -> my_time()
        Avoid some time() calls
      sql/net_serv.cc:
        Fixed compiler warnings
      sql/parse_file.cc:
        time() -> my_time()
      sql/set_var.cc:
        Added support for DOUBLE variables
        Added support for variables that are given in seconds with microsecond resolution
      sql/set_var.h:
        Added support for variables that are given in seconds with microsecond resolution
      sql/slave.cc:
        Allow logging of slave queries to slow query log if 'opt_log_slow_slave_statements' is given
        time() -> my_time()
      sql/sql_cache.h:
        Fixed compiler warning()
      sql/sql_class.cc:
        Initialize new THD variables
      sql/sql_class.h:
        long_query_time is now in microseconds
        Added min_examined_row_limit
        Reordered some THD elements for higher efficency
        Added timers in microseconds (connect_utime, thr_create_utime, start_utime and utime_after_lock)
        Start of query is now recorded both in seconds and in microseconds.
        Following renames was made for more clarity and avoid merge problems from earlier versions:
        connect_time -> connect_utime
        thr_create_time -> thr_create_utime
        end_time()  -> set_current_time()
        lock_time() -> set_time_after_lock()
        
        Added THD::start_utime, which is start of query in microseconds from some arbitary time
        Added function THD::current_utime()
        
        Removed safe_time() as retry's are handled in my_time()
      sql/sql_connect.cc:
        User resources are now using microsecond resolution
      sql/sql_insert.cc:
        end_time() -> set_current_time()
      sql-common/client.c:
        time() -> my_time()
      sql/sql_parse.cc:
        Testing if we should print to slow_query_log() is now done with microsecond precission.
        If min_examined_row_limit is given, only log queries to slow query log that has examined more rows than this.
      sql/sql_select.cc:
        Simplify code now that Item_float() takes decimals as argument
      sql/sql_show.cc:
        time() -> my_time()
        Added support for SYS_DOUBLE
      sql/sql_table.cc:
        Added debug function for stopping in mysql_admin_table() when tables are locked
      sql/structs.h:
        intime -> reset_utime
      21e25f8b
  18. 15 Jul, 2007 1 commit
    • unknown's avatar
      Extended fix for the bug#29555. · 376073e1
      unknown authored
      The get_time_value function is added. It is used to obtain TIME values both
      from items the can return time as an integer and from items that can return
      time only as a string.
      The Arg_comparator::compare_datetime function now uses pointer to a getter
      function to obtain values to compare. Now this function is also used for
      comparison of TIME values.
      The get_value_func variable is added to the Arg_comparator class.
      It points to a getter function for the DATE/DATETIME/TIME comparator.
      
      
      mysql-test/t/type_time.test:
        Extended test case for the bug#29555.
      mysql-test/r/type_time.result:
        Extended test case for the bug#29555.
      sql/item_cmpfunc.cc:
        Extended fix for the bug#29555.
        The get_time_value function is added. It is used to obtain TIME values both
        from items the can return time as an integer and from items that can return
        time only as a string.
        The Arg_comparator::compare_datetime function now uses pointer to a getter
        function to obtain values to compare. Now this function is also used for
        comparison of TIME values.
      sql/item_cmpfunc.h:
        Extended fix for the bug#29555.
        The get_value_func variable is added to the Arg_comparator class.
        It points to a getter function for the DATE/DATETIME/TIME comparator.
      376073e1
  19. 24 May, 2007 1 commit
  20. 10 May, 2007 1 commit
    • unknown's avatar
      WL#3817: Simplify string / memory area types and make things more consistent (first part) · 1629d809
      unknown authored
      The following type conversions was done:
      
      - Changed byte to uchar
      - Changed gptr to uchar*
      - Change my_string to char *
      - Change my_size_t to size_t
      - Change size_s to size_t
      
      Removed declaration of byte, gptr, my_string, my_size_t and size_s. 
      
      Following function parameter changes was done:
      - All string functions in mysys/strings was changed to use size_t
        instead of uint for string lengths.
      - All read()/write() functions changed to use size_t (including vio).
      - All protocoll functions changed to use size_t instead of uint
      - Functions that used a pointer to a string length was changed to use size_t*
      - Changed malloc(), free() and related functions from using gptr to use void *
        as this requires fewer casts in the code and is more in line with how the
        standard functions work.
      - Added extra length argument to dirname_part() to return the length of the
        created string.
      - Changed (at least) following functions to take uchar* as argument:
        - db_dump()
        - my_net_write()
        - net_write_command()
        - net_store_data()
        - DBUG_DUMP()
        - decimal2bin() & bin2decimal()
      - Changed my_compress() and my_uncompress() to use size_t. Changed one
        argument to my_uncompress() from a pointer to a value as we only return
        one value (makes function easier to use).
      - Changed type of 'pack_data' argument to packfrm() to avoid casts.
      - Changed in readfrm() and writefrom(), ha_discover and handler::discover()
        the type for argument 'frmdata' to uchar** to avoid casts.
      - Changed most Field functions to use uchar* instead of char* (reduced a lot of
        casts).
      - Changed field->val_xxx(xxx, new_ptr) to take const pointers.
      
      Other changes:
      - Removed a lot of not needed casts
      - Added a few new cast required by other changes
      - Added some cast to my_multi_malloc() arguments for safety (as string lengths
        needs to be uint, not size_t).
      - Fixed all calls to hash-get-key functions to use size_t*. (Needed to be done
        explicitely as this conflict was often hided by casting the function to
        hash_get_key).
      - Changed some buffers to memory regions to uchar* to avoid casts.
      - Changed some string lengths from uint to size_t.
      - Changed field->ptr to be uchar* instead of char*. This allowed us to
        get rid of a lot of casts.
      - Some changes from true -> TRUE, false -> FALSE, unsigned char -> uchar
      - Include zlib.h in some files as we needed declaration of crc32()
      - Changed MY_FILE_ERROR to be (size_t) -1.
      - Changed many variables to hold the result of my_read() / my_write() to be
        size_t. This was needed to properly detect errors (which are
        returned as (size_t) -1).
      - Removed some very old VMS code
      - Changed packfrm()/unpackfrm() to not be depending on uint size
        (portability fix)
      - Removed windows specific code to restore cursor position as this
        causes slowdown on windows and we should not mix read() and pread()
        calls anyway as this is not thread safe. Updated function comment to
        reflect this. Changed function that depended on original behavior of
        my_pwrite() to itself restore the cursor position (one such case).
      - Added some missing checking of return value of malloc().
      - Changed definition of MOD_PAD_CHAR_TO_FULL_LENGTH to avoid 'long' overflow.
      - Changed type of table_def::m_size from my_size_t to ulong to reflect that
        m_size is the number of elements in the array, not a string/memory
        length.
      - Moved THD::max_row_length() to table.cc (as it's not depending on THD).
        Inlined max_row_length_blob() into this function.
      - More function comments
      - Fixed some compiler warnings when compiled without partitions.
      - Removed setting of LEX_STRING() arguments in declaration (portability fix).
      - Some trivial indentation/variable name changes.
      - Some trivial code simplifications:
        - Replaced some calls to alloc_root + memcpy to use
          strmake_root()/strdup_root().
        - Changed some calls from memdup() to strmake() (Safety fix)
        - Simpler loops in client-simple.c
      
      
      BitKeeper/etc/ignore:
        added libmysqld/ha_ndbcluster_cond.cc
        ---
        added debian/defs.mk debian/control
      client/completion_hash.cc:
        Remove not needed casts
      client/my_readline.h:
        Remove some old types
      client/mysql.cc:
        Simplify types
      client/mysql_upgrade.c:
        Remove some old types
        Update call to dirname_part
      client/mysqladmin.cc:
        Remove some old types
      client/mysqlbinlog.cc:
        Remove some old types
        Change some buffers to be uchar to avoid casts
      client/mysqlcheck.c:
        Remove some old types
      client/mysqldump.c:
        Remove some old types
        Remove some not needed casts
        Change some string lengths to size_t
      client/mysqlimport.c:
        Remove some old types
      client/mysqlshow.c:
        Remove some old types
      client/mysqlslap.c:
        Remove some old types
        Remove some not needed casts
      client/mysqltest.c:
        Removed some old types
        Removed some not needed casts
        Updated hash-get-key function arguments
        Updated parameters to dirname_part()
      client/readline.cc:
        Removed some old types
        Removed some not needed casts
        Changed some string lengths to use size_t
      client/sql_string.cc:
        Removed some old types
      dbug/dbug.c:
        Removed some old types
        Changed some string lengths to use size_t
        Changed some prototypes to avoid casts
      extra/comp_err.c:
        Removed some old types
      extra/innochecksum.c:
        Removed some old types
      extra/my_print_defaults.c:
        Removed some old types
      extra/mysql_waitpid.c:
        Removed some old types
      extra/perror.c:
        Removed some old types
      extra/replace.c:
        Removed some old types
        Updated parameters to dirname_part()
      extra/resolve_stack_dump.c:
        Removed some old types
      extra/resolveip.c:
        Removed some old types
      include/config-win.h:
        Removed some old types
      include/decimal.h:
        Changed binary strings to be uchar* instead of char*
      include/ft_global.h:
        Removed some old types
      include/hash.h:
        Removed some old types
      include/heap.h:
        Removed some old types
        Changed records_under_level to be 'ulong' instead of 'uint' to clarify usage of variable
      include/keycache.h:
        Removed some old types
      include/m_ctype.h:
        Removed some old types
        Changed some string lengths to use size_t
        Changed character length functions to return uint
        unsigned char -> uchar
      include/m_string.h:
        Removed some old types
        Changed some string lengths to use size_t
      include/my_alloc.h:
        Changed some string lengths to use size_t
      include/my_base.h:
        Removed some old types
      include/my_dbug.h:
        Removed some old types
        Changed some string lengths to use size_t
        Changed db_dump() to take uchar * as argument for memory to reduce number of casts in usage
      include/my_getopt.h:
        Removed some old types
      include/my_global.h:
        Removed old types:
        my_size_t -> size_t
        byte -> uchar
        gptr -> uchar *
      include/my_list.h:
        Removed some old types
      include/my_nosys.h:
        Removed some old types
      include/my_pthread.h:
        Removed some old types
      include/my_sys.h:
        Removed some old types
        Changed MY_FILE_ERROR to be in line with new definitions of my_write()/my_read()
        Changed some string lengths to use size_t
        my_malloc() / my_free() now uses void *
        Updated parameters to dirname_part() & my_uncompress()
      include/my_tree.h:
        Removed some old types
      include/my_trie.h:
        Removed some old types
      include/my_user.h:
        Changed some string lengths to use size_t
      include/my_vle.h:
        Removed some old types
      include/my_xml.h:
        Removed some old types
        Changed some string lengths to use size_t
      include/myisam.h:
        Removed some old types
      include/myisammrg.h:
        Removed some old types
      include/mysql.h:
        Removed some old types
        Changed byte streams to use uchar* instead of char*
      include/mysql_com.h:
        Removed some old types
        Changed some string lengths to use size_t
        Changed some buffers to be uchar* to avoid casts
      include/queues.h:
        Removed some old types
      include/sql_common.h:
        Removed some old types
      include/sslopt-longopts.h:
        Removed some old types
      include/violite.h:
        Removed some old types
        Changed some string lengths to use size_t
      libmysql/client_settings.h:
        Removed some old types
      libmysql/libmysql.c:
        Removed some old types
      libmysql/manager.c:
        Removed some old types
      libmysqld/emb_qcache.cc:
        Removed some old types
      libmysqld/emb_qcache.h:
        Removed some old types
      libmysqld/lib_sql.cc:
        Removed some old types
        Removed some not needed casts
        Changed some buffers to be uchar* to avoid casts
        true -> TRUE, false -> FALSE
      mysys/array.c:
        Removed some old types
      mysys/charset.c:
        Changed some string lengths to use size_t
      mysys/checksum.c:
        Include zlib to get definition for crc32
        Removed some old types
      mysys/default.c:
        Removed some old types
        Changed some string lengths to use size_t
      mysys/default_modify.c:
        Changed some string lengths to use size_t
        Removed some not needed casts
      mysys/hash.c:
        Removed some old types
        Changed some string lengths to use size_t
        Note: Prototype of hash_key() has changed which may cause problems if client uses hash_init() with a cast for the hash-get-key function.
        hash_element now takes 'ulong' as the index type (cleanup)
      mysys/list.c:
        Removed some old types
      mysys/mf_cache.c:
        Changed some string lengths to use size_t
      mysys/mf_dirname.c:
        Removed some old types
        Changed some string lengths to use size_t
        Added argument to dirname_part() to avoid calculation of length for 'to'
      mysys/mf_fn_ext.c:
        Removed some old types
        Updated parameters to dirname_part()
      mysys/mf_format.c:
        Removed some old types
        Changed some string lengths to use size_t
      mysys/mf_getdate.c:
        Removed some old types
      mysys/mf_iocache.c:
        Removed some old types
        Changed some string lengths to use size_t
        Changed calculation of 'max_length' to be done the same way in all functions
      mysys/mf_iocache2.c:
        Removed some old types
        Changed some string lengths to use size_t
        Clean up comments
        Removed not needed indentation
      mysys/mf_keycache.c:
        Removed some old types
      mysys/mf_keycaches.c:
        Removed some old types
      mysys/mf_loadpath.c:
        Removed some old types
      mysys/mf_pack.c:
        Removed some old types
        Changed some string lengths to use size_t
        Removed some not needed casts
        Removed very old VMS code
        Updated parameters to dirname_part()
        Use result of dirnam_part() to remove call to strcat()
      mysys/mf_path.c:
        Removed some old types
      mysys/mf_radix.c:
        Removed some old types
      mysys/mf_same.c:
        Removed some old types
      mysys/mf_sort.c:
        Removed some old types
      mysys/mf_soundex.c:
        Removed some old types
      mysys/mf_strip.c:
        Removed some old types
      mysys/mf_tempdir.c:
        Removed some old types
      mysys/mf_unixpath.c:
        Removed some old types
      mysys/mf_wfile.c:
        Removed some old types
      mysys/mulalloc.c:
        Removed some old types
      mysys/my_alloc.c:
        Removed some old types
        Changed some string lengths to use size_t
        Use void* as type for allocated memory area
        Removed some not needed casts
        Changed argument 'Size' to 'length' according coding guidelines
      mysys/my_chsize.c:
        Changed some buffers to be uchar* to avoid casts
      mysys/my_compress.c:
        More comments
        Removed some old types
        Changed string lengths to use size_t
        Changed arguments to my_uncompress() to make them easier to understand
        Changed packfrm()/unpackfrm() to not be depending on uint size (portability fix)
        Changed type of 'pack_data' argument to packfrm() to avoid casts.
      mysys/my_conio.c:
        Changed some string lengths to use size_t
      mysys/my_create.c:
        Removed some old types
      mysys/my_div.c:
        Removed some old types
      mysys/my_error.c:
        Removed some old types
      mysys/my_fopen.c:
        Removed some old types
      mysys/my_fstream.c:
        Removed some old types
        Changed some string lengths to use size_t
        writen -> written
      mysys/my_getopt.c:
        Removed some old types
      mysys/my_getwd.c:
        Removed some old types
        More comments
      mysys/my_init.c:
        Removed some old types
      mysys/my_largepage.c:
        Removed some old types
        Changed some string lengths to use size_t
      mysys/my_lib.c:
        Removed some old types
      mysys/my_lockmem.c:
        Removed some old types
      mysys/my_malloc.c:
        Removed some old types
        Changed malloc(), free() and related functions to use void *
        Changed all functions to use size_t
      mysys/my_memmem.c:
        Indentation cleanup
      mysys/my_once.c:
        Removed some old types
        Changed malloc(), free() and related functions to use void *
      mysys/my_open.c:
        Removed some old types
      mysys/my_pread.c:
        Removed some old types
        Changed all functions to use size_t
        Added comment for how my_pread() / my_pwrite() are supposed to work.
        Removed windows specific code to restore cursor position as this causes slowdown on windows and we should not mix read() and pread() calls anyway as this is not thread safe.
        (If we ever would really need this, it should be enabled only with a flag argument)
      mysys/my_quick.c:
        Removed some old types
        Changed all functions to use size_t
      mysys/my_read.c:
        Removed some old types
        Changed all functions to use size_t
      mysys/my_realloc.c:
        Removed some old types
        Use void* as type for allocated memory area
        Changed all functions to use size_t
      mysys/my_static.c:
        Removed some old types
      mysys/my_static.h:
        Removed some old types
      mysys/my_vle.c:
        Removed some old types
      mysys/my_wincond.c:
        Removed some old types
      mysys/my_windac.c:
        Removed some old types
      mysys/my_write.c:
        Removed some old types
        Changed all functions to use size_t
      mysys/ptr_cmp.c:
        Removed some old types
        Changed all functions to use size_t
      mysys/queues.c:
        Removed some old types
      mysys/safemalloc.c:
        Removed some old types
        Changed malloc(), free() and related functions to use void *
        Changed all functions to use size_t
      mysys/string.c:
        Removed some old types
        Changed all functions to use size_t
      mysys/testhash.c:
        Removed some old types
      mysys/thr_alarm.c:
        Removed some old types
      mysys/thr_lock.c:
        Removed some old types
      mysys/tree.c:
        Removed some old types
      mysys/trie.c:
        Removed some old types
      mysys/typelib.c:
        Removed some old types
      plugin/daemon_example/daemon_example.cc:
        Removed some old types
      regex/reginit.c:
        Removed some old types
      server-tools/instance-manager/buffer.cc:
        Changed some string lengths to use size_t
        Changed buffer to be of type uchar*
      server-tools/instance-manager/buffer.h:
        Changed some string lengths to use size_t
        Changed buffer to be of type uchar*
      server-tools/instance-manager/commands.cc:
        Removed some old types
        Changed some string lengths to use size_t
        Changed buffer to be of type uchar*
      server-tools/instance-manager/instance_map.cc:
        Removed some old types
        Changed some string lengths to use size_t
        Changed buffer to be of type uchar*
      server-tools/instance-manager/instance_options.cc:
        Changed buffer to be of type uchar*
        Replaced alloc_root + strcpy() with strdup_root()
      server-tools/instance-manager/mysql_connection.cc:
        Changed buffer to be of type uchar*
      server-tools/instance-manager/options.cc:
        Removed some old types
      server-tools/instance-manager/parse.cc:
        Changed some string lengths to use size_t
      server-tools/instance-manager/parse.h:
        Removed some old types
        Changed some string lengths to use size_t
      server-tools/instance-manager/protocol.cc:
        Changed some buffers to be uchar* to avoid casts
        Changed some string lengths to use size_t
      server-tools/instance-manager/protocol.h:
        Changed some string lengths to use size_t
      server-tools/instance-manager/user_map.cc:
        Removed some old types
        Changed some string lengths to use size_t
      sql/derror.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Changed some string lengths to use size_t
      sql/discover.cc:
        Changed in readfrm() and writefrom() the type for argument 'frmdata' to uchar** to avoid casts
        Changed some string lengths to use size_t
        Changed some buffers to be uchar* to avoid casts
      sql/event_data_objects.cc:
        Removed some old types
        Added missing casts for alloc() and sprintf()
      sql/event_db_repository.cc:
        Changed some buffers to be uchar* to avoid casts
        Added missing casts for sprintf()
      sql/event_queue.cc:
        Removed some old types
      sql/field.cc:
        Removed some old types
        Changed memory buffers to be uchar*
        Changed some string lengths to use size_t
        Removed a lot of casts
        Safety fix in Field_blob::val_decimal() to not access zero pointer
      sql/field.h:
        Removed some old types
        Changed memory buffers to be uchar* (except of store() as this would have caused too many other changes). 
        Changed some string lengths to use size_t
        Removed some not needed casts
        Changed val_xxx(xxx, new_ptr) to take const pointers
      sql/field_conv.cc:
        Removed some old types
        Added casts required because memory area pointers are now uchar*
      sql/filesort.cc:
        Initalize variable that was used unitialized in error conditions
      sql/gen_lex_hash.cc:
        Removed some old types
        Changed memory buffers to be uchar*
        Changed some string lengths to use size_t
        Removed a lot of casts
        Safety fix in Field_blob::val_decimal() to not access zero pointer
      sql/gstream.h:
        Added required cast
      sql/ha_ndbcluster.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Changed some buffers to be uchar* to avoid casts
        Added required casts
        Removed some not needed casts
      sql/ha_ndbcluster.h:
        Removed some old types
      sql/ha_ndbcluster_binlog.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Replaced sql_alloc() + memcpy() + set end 0 with sql_strmake()
        Changed some string lengths to use size_t
        Added missing casts for alloc() and sprintf()
      sql/ha_ndbcluster_binlog.h:
        Removed some old types
      sql/ha_ndbcluster_cond.cc:
        Removed some old types
        Removed some not needed casts
      sql/ha_ndbcluster_cond.h:
        Removed some old types
      sql/ha_partition.cc:
        Removed some old types
        Changed prototype for change_partition() to avoid casts
      sql/ha_partition.h:
        Removed some old types
      sql/handler.cc:
        Removed some old types
        Changed some string lengths to use size_t
      sql/handler.h:
        Removed some old types
        Changed some string lengths to use size_t
        Changed type for 'frmblob' parameter for discover() and ha_discover() to get fewer casts
      sql/hash_filo.h:
        Removed some old types
        Changed all functions to use size_t
      sql/hostname.cc:
        Removed some old types
      sql/item.cc:
        Removed some old types
        Changed some string lengths to use size_t
        Use strmake() instead of memdup() to create a null terminated string.
        Updated calls to new Field()
      sql/item.h:
        Removed some old types
        Changed malloc(), free() and related functions to use void *
        Changed some buffers to be uchar* to avoid casts
      sql/item_cmpfunc.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      sql/item_cmpfunc.h:
        Removed some old types
      sql/item_create.cc:
        Removed some old types
      sql/item_func.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
        Added test for failing alloc() in init_result_field()
        Remove old confusing comment
        Fixed compiler warning
      sql/item_func.h:
        Removed some old types
      sql/item_row.cc:
        Removed some old types
      sql/item_row.h:
        Removed some old types
      sql/item_strfunc.cc:
        Include zlib (needed becasue we call crc32)
        Removed some old types
      sql/item_strfunc.h:
        Removed some old types
        Changed some types to match new function prototypes
      sql/item_subselect.cc:
        Removed some old types
      sql/item_subselect.h:
        Removed some old types
      sql/item_sum.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
      sql/item_sum.h:
        Removed some old types
      sql/item_timefunc.cc:
        Removed some old types
        Changed some string lengths to use size_t
      sql/item_timefunc.h:
        Removed some old types
      sql/item_xmlfunc.cc:
        Changed some string lengths to use size_t
      sql/item_xmlfunc.h:
        Removed some old types
      sql/key.cc:
        Removed some old types
        Removed some not needed casts
      sql/lock.cc:
        Removed some old types
        Added some cast to my_multi_malloc() arguments for safety
      sql/log.cc:
        Removed some old types
        Changed some string lengths to use size_t
        Changed some buffers to be uchar* to avoid casts
        Changed usage of pwrite() to not assume it holds the cursor position for the file
        Made usage of my_read() safer
      sql/log_event.cc:
        Removed some old types
        Added checking of return value of malloc() in pack_info()
        Changed some buffers to be uchar* to avoid casts
        Removed some 'const' to avoid casts
        Added missing casts for alloc() and sprintf()
        Added required casts
        Removed some not needed casts
        Added some cast to my_multi_malloc() arguments for safety
      sql/log_event.h:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      sql/log_event_old.cc:
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
      sql/log_event_old.h:
        Changed some buffers to be uchar* to avoid casts
      sql/mf_iocache.cc:
        Removed some old types
      sql/my_decimal.cc:
        Changed memory area to use uchar*
      sql/my_decimal.h:
        Changed memory area to use uchar*
      sql/mysql_priv.h:
        Removed some old types
        Changed malloc(), free() and related functions to use void *
        Changed some string lengths to use size_t
        Changed definition of MOD_PAD_CHAR_TO_FULL_LENGTH to avoid long overflow
        Changed some buffers to be uchar* to avoid casts
      sql/mysqld.cc:
        Removed some old types
      sql/net_serv.cc:
        Removed some old types
        Changed some string lengths to use size_t
        Changed some buffers to be uchar* to avoid casts
        Ensure that vio_read()/vio_write() return values are stored in a size_t variable
        Removed some not needed casts
      sql/opt_range.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
      sql/opt_range.h:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      sql/opt_sum.cc:
        Removed some old types
        Removed some not needed casts
      sql/parse_file.cc:
        Removed some old types
        Changed some string lengths to use size_t
        Changed alloc_root + memcpy + set end 0 -> strmake_root()
      sql/parse_file.h:
        Removed some old types
      sql/partition_info.cc:
        Removed some old types
        Added missing casts for alloc()
        Changed some buffers to be uchar* to avoid casts
      sql/partition_info.h:
        Changed some buffers to be uchar* to avoid casts
      sql/protocol.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
      sql/protocol.h:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Changed some string lengths to use size_t
      sql/records.cc:
        Removed some old types
      sql/repl_failsafe.cc:
        Removed some old types
        Changed some string lengths to use size_t
        Added required casts
      sql/rpl_filter.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Changed some string lengths to use size_t
      sql/rpl_filter.h:
        Changed some string lengths to use size_t
      sql/rpl_injector.h:
        Removed some old types
      sql/rpl_record.cc:
        Removed some old types
        Removed some not needed casts
        Changed some buffers to be uchar* to avoid casts
      sql/rpl_record.h:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      sql/rpl_record_old.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
      sql/rpl_record_old.h:
        Removed some old types
        Changed some buffers to be uchar* to avoid cast
      sql/rpl_rli.cc:
        Removed some old types
      sql/rpl_tblmap.cc:
        Removed some old types
      sql/rpl_tblmap.h:
        Removed some old types
      sql/rpl_utility.cc:
        Removed some old types
      sql/rpl_utility.h:
        Removed some old types
        Changed type of m_size from my_size_t to ulong to reflect that m_size is the number of elements in the array, not a string/memory length
      sql/set_var.cc:
        Removed some old types
        Updated parameters to dirname_part()
      sql/set_var.h:
        Removed some old types
      sql/slave.cc:
        Removed some old types
        Changed some string lengths to use size_t
      sql/slave.h:
        Removed some old types
      sql/sp.cc:
        Removed some old types
        Added missing casts for printf()
      sql/sp.h:
        Removed some old types
        Updated hash-get-key function arguments
      sql/sp_cache.cc:
        Removed some old types
        Added missing casts for printf()
        Updated hash-get-key function arguments
      sql/sp_head.cc:
        Removed some old types
        Added missing casts for alloc() and printf()
        Added required casts
        Updated hash-get-key function arguments
      sql/sp_head.h:
        Removed some old types
      sql/sp_pcontext.cc:
        Removed some old types
      sql/sp_pcontext.h:
        Removed some old types
      sql/sql_acl.cc:
        Removed some old types
        Changed some string lengths to use size_t
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
        Added required casts
      sql/sql_analyse.cc:
        Changed some buffers to be uchar* to avoid casts
      sql/sql_analyse.h:
        Changed some buffers to be uchar* to avoid casts
      sql/sql_array.h:
        Removed some old types
      sql/sql_base.cc:
        Removed some old types
        Updated hash-get-key function arguments
      sql/sql_binlog.cc:
        Removed some old types
        Added missing casts for printf()
      sql/sql_cache.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Removed some not needed casts
        Changed some string lengths to use size_t
      sql/sql_cache.h:
        Removed some old types
        Removed reference to not existing function cache_key()
        Updated hash-get-key function arguments
      sql/sql_class.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Added missing casts for alloc()
        Updated hash-get-key function arguments
        Moved THD::max_row_length() to table.cc (as it's not depending on THD)
        Removed some not needed casts
      sql/sql_class.h:
        Removed some old types
        Changed malloc(), free() and related functions to use void *
        Removed some not needed casts
        Changed some string lengths to use size_t
        Moved max_row_length and max_row_length_blob() to table.cc, as they are not depending on THD
      sql/sql_connect.cc:
        Removed some old types
        Added required casts
      sql/sql_db.cc:
        Removed some old types
        Removed some not needed casts
        Added some cast to my_multi_malloc() arguments for safety
        Added missing casts for alloc()
      sql/sql_delete.cc:
        Removed some old types
      sql/sql_handler.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Added some cast to my_multi_malloc() arguments for safety
      sql/sql_help.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
      sql/sql_insert.cc:
        Removed some old types
        Added missing casts for alloc() and printf()
      sql/sql_lex.cc:
        Removed some old types
      sql/sql_lex.h:
        Removed some old types
        Removed some not needed casts
      sql/sql_list.h:
        Removed some old types
        Removed some not needed casts
      sql/sql_load.cc:
        Removed some old types
        Removed compiler warning
      sql/sql_manager.cc:
        Removed some old types
      sql/sql_map.cc:
        Removed some old types
      sql/sql_map.h:
        Removed some old types
      sql/sql_olap.cc:
        Removed some old types
      sql/sql_parse.cc:
        Removed some old types
        Trivial move of code lines to make things more readable
        Changed some string lengths to use size_t
        Added missing casts for alloc()
      sql/sql_partition.cc:
        Removed some old types
        Removed compiler warnings about not used functions
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
      sql/sql_partition.h:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      sql/sql_plugin.cc:
        Removed some old types
        Added missing casts for alloc()
        Updated hash-get-key function arguments
      sql/sql_prepare.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Added missing casts for alloc() and printf()
      sql-common/client.c:
        Removed some old types
        Changed some memory areas to use uchar*
      sql-common/my_user.c:
        Changed some string lengths to use size_t
      sql-common/pack.c:
        Changed some buffers to be uchar* to avoid casts
      sql/sql_repl.cc:
        Added required casts
        Changed some buffers to be uchar* to avoid casts
        Changed some string lengths to use size_t
      sql/sql_select.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Removed some old types
      sql/sql_select.h:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      sql/sql_servers.cc:
        Removed some old types
        Updated hash-get-key function arguments
      sql/sql_show.cc:
        Removed some old types
        Added missing casts for alloc()
        Removed some not needed casts
      sql/sql_string.cc:
        Removed some old types
        Added required casts
      sql/sql_table.cc:
        Removed some old types
        Removed compiler warning about not used variable
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
      sql/sql_test.cc:
        Removed some old types
      sql/sql_trigger.cc:
        Removed some old types
        Added missing casts for alloc()
      sql/sql_udf.cc:
        Removed some old types
        Updated hash-get-key function arguments
      sql/sql_union.cc:
        Removed some old types
      sql/sql_update.cc:
        Removed some old types
        Removed some not needed casts
      sql/sql_view.cc:
        Removed some old types
      sql/sql_yacc.yy:
        Removed some old types
        Changed some string lengths to use size_t
        Added missing casts for alloc()
      sql/stacktrace.c:
        Removed some old types
      sql/stacktrace.h:
        Removed some old types
      sql/structs.h:
        Removed some old types
      sql/table.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Changed some buffers to be uchar* to avoid casts
        Removed setting of LEX_STRING() arguments in declaration
        Added required casts
        More function comments
        Moved max_row_length() here from sql_class.cc/sql_class.h
      sql/table.h:
        Removed some old types
        Changed some string lengths to use size_t
      sql/thr_malloc.cc:
        Use void* as type for allocated memory area
        Changed all functions to use size_t
      sql/tzfile.h:
        Changed some buffers to be uchar* to avoid casts
      sql/tztime.cc:
        Changed some buffers to be uchar* to avoid casts
        Updated hash-get-key function arguments
        Added missing casts for alloc()
        Removed some not needed casts
      sql/uniques.cc:
        Removed some old types
        Removed some not needed casts
      sql/unireg.cc:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
        Removed some not needed casts
        Added missing casts for alloc()
      storage/archive/archive_reader.c:
        Removed some old types
      storage/archive/azio.c:
        Removed some old types
        Removed some not needed casts
      storage/archive/ha_archive.cc:
        Removed some old types
        Changed type for 'frmblob' in archive_discover() to match handler
        Updated hash-get-key function arguments
        Removed some not needed casts
      storage/archive/ha_archive.h:
        Removed some old types
      storage/blackhole/ha_blackhole.cc:
        Removed some old types
      storage/blackhole/ha_blackhole.h:
        Removed some old types
      storage/csv/ha_tina.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Changed some buffers to be uchar* to avoid casts
      storage/csv/ha_tina.h:
        Removed some old types
        Removed some not needed casts
      storage/csv/transparent_file.cc:
        Removed some old types
        Changed type of 'bytes_read' to be able to detect read errors
        Fixed indentation
      storage/csv/transparent_file.h:
        Removed some old types
      storage/example/ha_example.cc:
        Removed some old types
        Updated hash-get-key function arguments
      storage/example/ha_example.h:
        Removed some old types
      storage/federated/ha_federated.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Removed some not needed casts
      storage/federated/ha_federated.h:
        Removed some old types
      storage/heap/_check.c:
        Changed some buffers to be uchar* to avoid casts
      storage/heap/_rectest.c:
        Removed some old types
      storage/heap/ha_heap.cc:
        Removed some old types
      storage/heap/ha_heap.h:
        Removed some old types
      storage/heap/heapdef.h:
        Removed some old types
      storage/heap/hp_block.c:
        Removed some old types
        Changed some string lengths to use size_t
      storage/heap/hp_clear.c:
        Removed some old types
      storage/heap/hp_close.c:
        Removed some old types
      storage/heap/hp_create.c:
        Removed some old types
      storage/heap/hp_delete.c:
        Removed some old types
      storage/heap/hp_hash.c:
        Removed some old types
      storage/heap/hp_info.c:
        Removed some old types
      storage/heap/hp_open.c:
        Removed some old types
      storage/heap/hp_rfirst.c:
        Removed some old types
      storage/heap/hp_rkey.c:
        Removed some old types
      storage/heap/hp_rlast.c:
        Removed some old types
      storage/heap/hp_rnext.c:
        Removed some old types
      storage/heap/hp_rprev.c:
        Removed some old types
      storage/heap/hp_rrnd.c:
        Removed some old types
      storage/heap/hp_rsame.c:
        Removed some old types
      storage/heap/hp_scan.c:
        Removed some old types
      storage/heap/hp_test1.c:
        Removed some old types
      storage/heap/hp_test2.c:
        Removed some old types
      storage/heap/hp_update.c:
        Removed some old types
      storage/heap/hp_write.c:
        Removed some old types
        Changed some string lengths to use size_t
      storage/innobase/handler/ha_innodb.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Added missing casts for alloc() and printf()
        Removed some not needed casts
      storage/innobase/handler/ha_innodb.h:
        Removed some old types
      storage/myisam/ft_boolean_search.c:
        Removed some old types
      storage/myisam/ft_nlq_search.c:
        Removed some old types
      storage/myisam/ft_parser.c:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      storage/myisam/ft_static.c:
        Removed some old types
      storage/myisam/ft_stopwords.c:
        Removed some old types
      storage/myisam/ft_update.c:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      storage/myisam/ftdefs.h:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      storage/myisam/fulltext.h:
        Removed some old types
      storage/myisam/ha_myisam.cc:
        Removed some old types
      storage/myisam/ha_myisam.h:
        Removed some old types
      storage/myisam/mi_cache.c:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      storage/myisam/mi_check.c:
        Removed some old types
      storage/myisam/mi_checksum.c:
        Removed some old types
      storage/myisam/mi_close.c:
        Removed some old types
      storage/myisam/mi_create.c:
        Removed some old types
      storage/myisam/mi_delete.c:
        Removed some old types
      storage/myisam/mi_delete_all.c:
        Removed some old types
      storage/myisam/mi_dynrec.c:
        Removed some old types
      storage/myisam/mi_extra.c:
        Removed some old types
      storage/myisam/mi_key.c:
        Removed some old types
      storage/myisam/mi_locking.c:
        Removed some old types
      storage/myisam/mi_log.c:
        Removed some old types
      storage/myisam/mi_open.c:
        Removed some old types
        Removed some not needed casts
        Check argument of my_write()/my_pwrite() in functions returning int
        Added casting of string lengths to size_t
      storage/myisam/mi_packrec.c:
        Removed some old types
        Changed some buffers to be uchar* to avoid casts
      storage/myisam/mi_page.c:
        Removed some old types
      storage/myisam/mi_preload.c:
        Removed some old types
      storage/myisam/mi_range.c:
        Removed some old types
      storage/myisam/mi_rfirst.c:
        Removed some old types
      storage/myisam/mi_rkey.c:
        Removed some old types
      storage/myisam/mi_rlast.c:
        Removed some old types
      storage/myisam/mi_rnext.c:
        Removed some old types
      storage/myisam/mi_rnext_same.c:
        Removed some old types
      storage/myisam/mi_rprev.c:
        Removed some old types
      storage/myisam/mi_rrnd.c:
        Removed some old types
      storage/myisam/mi_rsame.c:
        Removed some old types
      storage/myisam/mi_rsamepos.c:
        Removed some old types
      storage/myisam/mi_scan.c:
        Removed some old types
      storage/myisam/mi_search.c:
        Removed some old types
      storage/myisam/mi_static.c:
        Removed some old types
      storage/myisam/mi_statrec.c:
        Removed some old types
      storage/myisam/mi_test1.c:
        Removed some old types
      storage/myisam/mi_test2.c:
        Removed some old types
      storage/myisam/mi_test3.c:
        Removed some old types
      storage/myisam/mi_unique.c:
        Removed some old types
      storage/myisam/mi_update.c:
        Removed some old types
      storage/myisam/mi_write.c:
        Removed some old types
      storage/myisam/myisam_ftdump.c:
        Removed some old types
      storage/myisam/myisamchk.c:
        Removed some old types
      storage/myisam/myisamdef.h:
        Removed some old types
      storage/myisam/myisamlog.c:
        Removed some old types
        Indentation fix
      storage/myisam/myisampack.c:
        Removed some old types
      storage/myisam/rt_index.c:
        Removed some old types
      storage/myisam/rt_split.c:
        Removed some old types
      storage/myisam/sort.c:
        Removed some old types
      storage/myisam/sp_defs.h:
        Removed some old types
      storage/myisam/sp_key.c:
        Removed some old types
      storage/myisammrg/ha_myisammrg.cc:
        Removed some old types
      storage/myisammrg/ha_myisammrg.h:
        Removed some old types
      storage/myisammrg/myrg_close.c:
        Removed some old types
      storage/myisammrg/myrg_def.h:
        Removed some old types
      storage/myisammrg/myrg_delete.c:
        Removed some old types
      storage/myisammrg/myrg_open.c:
        Removed some old types
        Updated parameters to dirname_part()
      storage/myisammrg/myrg_queue.c:
        Removed some old types
      storage/myisammrg/myrg_rfirst.c:
        Removed some old types
      storage/myisammrg/myrg_rkey.c:
        Removed some old types
      storage/myisammrg/myrg_rlast.c:
        Removed some old types
      storage/myisammrg/myrg_rnext.c:
        Removed some old types
      storage/myisammrg/myrg_rnext_same.c:
        Removed some old types
      storage/myisammrg/myrg_rprev.c:
        Removed some old types
      storage/myisammrg/myrg_rrnd.c:
        Removed some old types
      storage/myisammrg/myrg_rsame.c:
        Removed some old types
      storage/myisammrg/myrg_update.c:
        Removed some old types
      storage/myisammrg/myrg_write.c:
        Removed some old types
      storage/ndb/include/util/ndb_opts.h:
        Removed some old types
      storage/ndb/src/cw/cpcd/main.cpp:
        Removed some old types
      storage/ndb/src/kernel/vm/Configuration.cpp:
        Removed some old types
      storage/ndb/src/mgmclient/main.cpp:
        Removed some old types
      storage/ndb/src/mgmsrv/InitConfigFileParser.cpp:
        Removed some old types
        Removed old disabled code
      storage/ndb/src/mgmsrv/main.cpp:
        Removed some old types
      storage/ndb/src/ndbapi/NdbBlob.cpp:
        Removed some old types
      storage/ndb/src/ndbapi/NdbOperationDefine.cpp:
        Removed not used variable
      storage/ndb/src/ndbapi/NdbOperationInt.cpp:
        Added required casts
      storage/ndb/src/ndbapi/NdbScanOperation.cpp:
        Added required casts
      storage/ndb/tools/delete_all.cpp:
        Removed some old types
      storage/ndb/tools/desc.cpp:
        Removed some old types
      storage/ndb/tools/drop_index.cpp:
        Removed some old types
      storage/ndb/tools/drop_tab.cpp:
        Removed some old types
      storage/ndb/tools/listTables.cpp:
        Removed some old types
      storage/ndb/tools/ndb_config.cpp:
        Removed some old types
      storage/ndb/tools/restore/consumer_restore.cpp:
        Changed some buffers to be uchar* to avoid casts with new defintion of packfrm()
      storage/ndb/tools/restore/restore_main.cpp:
        Removed some old types
      storage/ndb/tools/select_all.cpp:
        Removed some old types
      storage/ndb/tools/select_count.cpp:
        Removed some old types
      storage/ndb/tools/waiter.cpp:
        Removed some old types
      strings/bchange.c:
        Changed function to use uchar * and size_t
      strings/bcmp.c:
        Changed function to use uchar * and size_t
      strings/bmove512.c:
        Changed function to use uchar * and size_t
      strings/bmove_upp.c:
        Changed function to use uchar * and size_t
      strings/ctype-big5.c:
        Changed functions to use size_t
        Changed character length functions to return uint
      strings/ctype-bin.c:
        Changed functions to use size_t
      strings/ctype-cp932.c:
        Changed functions to use size_t
        Changed character length functions to return uint
      strings/ctype-czech.c:
        Fixed indentation
        Changed functions to use size_t
      strings/ctype-euc_kr.c:
        Changed functions to use size_t
        Changed character length functions to return uint
      strings/ctype-eucjpms.c:
        Changed functions to use size_t
        Changed character length functions to return uint
        unsigned char -> uchar
      strings/ctype-gb2312.c:
        Changed functions to use size_t
        Changed character length functions to return uint
      strings/ctype-gbk.c:
        Changed functions to use size_t
        Changed character length functions to return uint
      strings/ctype-latin1.c:
        Changed functions to use size_t
        Changed character length functions to return uint
        unsigned char -> uchar
      strings/ctype-mb.c:
        Changed functions to use size_t
        Changed character length functions to return uint
      strings/ctype-simple.c:
        Changed functions to use size_t
        Simpler loops for caseup/casedown
        unsigned int -> uint
        unsigned char -> uchar
      strings/ctype-sjis.c:
        Changed functions to use size_t
        Changed character length functions to return uint
      strings/ctype-tis620.c:
        Changed functions to use size_t
        Changed character length functions to return uint
        unsigned char -> uchar
      strings/ctype-uca.c:
        Changed functions to use size_t
        unsigned char -> uchar
      strings/ctype-ucs2.c:
        Moved inclusion of stdarg.h to other includes
        usigned char -> uchar
        Changed functions to use size_t
        Changed character length functions to return uint
      strings/ctype-ujis.c:
        Changed functions to use size_t
        Changed character length functions to return uint
        unsigned char -> uchar
      strings/ctype-utf8.c:
        Changed functions to use size_t
        unsigned char -> uchar
        Indentation fixes
      strings/ctype-win1250ch.c:
        Indentation fixes
        Changed functions to use size_t
      strings/ctype.c:
        Changed functions to use size_t
      strings/decimal.c:
        Changed type for memory argument to uchar *
      strings/do_ctype.c:
        Indentation fixes
      strings/my_strtoll10.c:
        unsigned char -> uchar
      strings/my_vsnprintf.c:
        Changed functions to use size_t
      strings/r_strinstr.c:
        Removed some old types
        Changed functions to use size_t
      strings/str_test.c:
        Removed some old types
      strings/strappend.c:
        Changed functions to use size_t
      strings/strcont.c:
        Removed some old types
      strings/strfill.c:
        Removed some old types
      strings/strinstr.c:
        Changed functions to use size_t
      strings/strlen.c:
        Changed functions to use size_t
      strings/strmake.c:
        Changed functions to use size_t
      strings/strnlen.c:
        Changed functions to use size_t
      strings/strnmov.c:
        Changed functions to use size_t
      strings/strto.c:
        unsigned char -> uchar
      strings/strtod.c:
        Changed functions to use size_t
      strings/strxnmov.c:
        Changed functions to use size_t
      strings/xml.c:
        Changed functions to use size_t
        Indentation fixes
      tests/mysql_client_test.c:
        Removed some old types
      tests/thread_test.c:
        Removed some old types
      vio/test-ssl.c:
        Removed some old types
      vio/test-sslclient.c:
        Removed some old types
      vio/test-sslserver.c:
        Removed some old types
      vio/vio.c:
        Removed some old types
      vio/vio_priv.h:
        Removed some old types
        Changed vio_read()/vio_write() to work with size_t
      vio/viosocket.c:
        Changed vio_read()/vio_write() to work with size_t
        Indentation fixes
      vio/viossl.c:
        Changed vio_read()/vio_write() to work with size_t
        Indentation fixes
      vio/viosslfactories.c:
        Removed some old types
      vio/viotest-ssl.c:
        Removed some old types
      win/README:
        More explanations
      1629d809
  21. 08 May, 2007 1 commit
  22. 07 May, 2007 1 commit
    • unknown's avatar
      Bug#28133: Wrong DATE/DATETIME comparison in IN() function. · 2d9c93ce
      unknown authored
      The IN function was comparing DATE/DATETIME values either as ints or as
      strings. Both methods have their disadvantages and may lead to a wrong
      result.
      
      Now IN function checks whether all of its arguments has the STRING result
      types and at least one of them is a DATE/DATETIME item. If so it uses either
      an object of the in_datetime class or an object of the cmp_item_datetime
      class to perform its work. If the IN() function arguments are rows then
      row columns are checked whether the DATE/DATETIME comparator should be used
      to compare them.
      The in_datetime class is used to find occurence of the item to be checked
      in the vector of the constant DATE/DATETIME values. The cmp_item_datetime
      class is used to compare items one by one in the DATE/DATETIME context.
      Both classes obtain values from items with help of the get_datetime_value()
      function and cache the left item if it is a constant one.
      
      
      
      mysql-test/t/type_datetime.test:
        Added a test case for the bug#28133: Wrong DATE/DATETIME comparison in IN() function.
      mysql-test/r/type_datetime.result:
        Added a test case for the bug#28133: Wrong DATE/DATETIME comparison in IN() function.
      mysql-test/r/func_in.result:
        A test case result is corrected after the fix for the bug#28133.
      sql/item_cmpfunc.h:
        Bug#28133: Wrong DATE/DATETIME comparison in IN() function.
        Two DATE/DATETIME comparison classes are added.
        The in_datetime class is used to find occurence of the item to be checked
        in the vector of the constant DATE/DATETIME values. The cmp_item_datetime
        class is used to compare items one by one in the DATE/DATETIME context.
        Both classes obtain values from items with help of the get_datetime_value()
        function and cache the left item if it is a constant one.
      sql/item_cmpfunc.cc:
        Bug#28133: Wrong DATE/DATETIME comparison in IN() function.
        Now IN function checks whether all of its arguments has the STRING result
        types and at least one of them is a DATE/DATETIME item. If so it uses either
        an object of the in_datetime class or an object of the cmp_item_datetime
        class to perform its work. If the IN() function arguments are rows then
        row columns are checked whether the DATE/DATETIME comparator should be used
        to compare them.
      2d9c93ce
  23. 26 Apr, 2007 2 commits
    • unknown's avatar
      Bug#16377: Wrong DATE/DATETIME comparison in BETWEEN function. · 6e61ad15
      unknown authored
      The BETWEEN function was comparing DATE/DATETIME values either as ints or as
      strings. Both methods have their disadvantages and may lead to a wrong
      result.
      
      Now BETWEEN function checks whether all of its arguments has the STRING result
      types and at least one of them is a DATE/DATETIME item. If so it sets up
      two Arg_comparator obects to compare with the compare_datetime() comparator
      and uses them to compare such items.
      
      Added two Arg_comparator object members and one flag to the
      Item_func_between class for the correct DATE/DATETIME comparison.
      The Item_func_between::fix_length_and_dec() function now detects whether
      it's used for DATE/DATETIME comparison and sets up newly added Arg_comparator
      objects to do this.
      The Item_func_between::val_int() now uses Arg_comparator objects to perform
      correct DATE/DATETIME comparison.
      The owner variable of the Arg_comparator class now can be set to NULL if the
      caller wants to handle NULL values by itself.
      Now the Item_date_add_interval::get_date() function ajusts cached_field type according to the detected type.
      
      
      mysql-test/t/type_datetime.test:
        Added a test case for the bug#16377: Wrong DATE/DATETIME comparison in BETWEEN function.
      mysql-test/r/type_datetime.result:
        Added a test case for the bug#16377: Wrong DATE/DATETIME comparison in BETWEEN function.
      mysql-test/r/query_cache.result:
        A test case result corrected after the fix for bug#16377.
      sql/item_timefunc.cc:
        Bug#16377: Wrong DATE/DATETIME comparison in BETWEEN function.
        Now the Item_date_add_interval::get_date() function ajusts cached_field type according to the detected type.
      sql/item_cmpfunc.cc:
        Bug#16377: Wrong DATE/DATETIME comparison in BETWEEN function.
        The Item_func_between::fix_length_and_dec() function now detects whether
        it's used for DATE/DATETIME comparison and sets up newly added Arg_comparator
        objects to do this.
        The Item_func_between::val_int() now uses Arg_comparators to perform correct
        DATE/DATETIME comparison.
        The owner variable of the Arg_comparator class now can be set to NULL if the
        caller wants to handle NULL values by itself.
      sql/item_cmpfunc.h:
        Bug#16377: Wrong DATE/DATETIME comparison in BETWEEN function.
        Added two Arg_comparator object members and one flag
        to the Item_func_between class for the correct DATE/DATETIME comparison.
      6e61ad15
    • unknown's avatar
      Bug#27590: Wrong DATE/DATETIME comparison. · 1484bd4f
      unknown authored
      DATE and DATETIME can be compared either as strings or as int. Both
      methods have their disadvantages. Strings can contain valid DATETIME value
      but have insignificant zeros omitted thus became non-comparable with
      other DATETIME strings. The comparison as int usually will require conversion
      from the string representation and the automatic conversion in most cases is
      carried out in a wrong way thus producing wrong comparison result. Another
      problem occurs when one tries to compare DATE field with a DATETIME constant.
      The constant is converted to DATE losing its precision i.e. losing time part.
      
      This fix addresses the problems described above by adding a special
      DATE/DATETIME comparator. The comparator correctly converts DATE/DATETIME
      string values to int when it's necessary, adds zero time part (00:00:00)
      to DATE values to compare them correctly to DATETIME values. Due to correct
      conversion malformed DATETIME string values are correctly compared to other
      DATE/DATETIME values.
      
      As of this patch a DATE value equals to DATETIME value with zero time part.
      For example '2001-01-01' equals to '2001-01-01 00:00:00'.
      
      The compare_datetime() function is added to the Arg_comparator class.
      It implements the correct comparator for DATE/DATETIME values.
      Two supplementary functions called get_date_from_str() and get_datetime_value()
      are added. The first one extracts DATE/DATETIME value from a string and the
      second one retrieves the correct DATE/DATETIME value from an item.
      The new Arg_comparator::can_compare_as_dates() function is added and used
      to check whether two given items can be compared by the compare_datetime()
      comparator.
      Two caching variables were added to the Arg_comparator class to speedup the
      DATE/DATETIME comparison.
      One more store() method was added to the Item_cache_int class to cache int
      values.
      The new is_datetime() function was added to the Item class. It indicates
      whether the item returns a DATE/DATETIME value.
      
      
      sql/item.cc:
        Bug#27590: Wrong DATE/DATETIME comparison.
        One more store() method was added to the Item_cache_int class to cache int
        values.
        The new is_datetime() function was added to the Item class. It indicates
        whether the item returns a DATE/DATETIME value.
      sql/item.h:
        Bug#27590: Wrong DATE/DATETIME comparison.
        One more store() method was added to the Item_cache_int class to cache int
        values.
        The new is_datetime() function was added to the Item class. It indicates
        whether the item returns a DATE/DATETIME value.
      sql/item_cmpfunc.cc:
        Bug#27590: Wrong DATE/DATETIME comparison.
        The compare_datetime() function is added to the Arg_comparator class.
        It implements the correct comparator for DATE/DATETIME values.
        Two supplementary functions called get_date_from_str() and get_datetime_value()
        are added. The first one extracts DATE/DATETIME value from a string and the
        second one retrieves the correct DATE/DATETIME value from an item.
        The new Arg_comparator::can_compare_as_dates() function is added and used
        to check whether two given items can be compared by the compare_datetime()
        comparator.
      sql/item_cmpfunc.h:
        Bug#27590: Wrong DATE/DATETIME comparison.
        The compare_datetime() function is added to the Arg_comparator class.
        It implements the correct comparator for DATE/DATETIME values.
        Two supplementary functions called get_date_from_str() and get_datetime_value()
        are added. The first one extracts DATE/DATETIME value from a string and the
        second one retrieves the correct DATE/DATETIME value from an item.
        The new Arg_comparator::can_compare_as_dates() function is added and used
        to check whether two given items can be compared by the compare_datetime()
        comparator.
        Two caching variables were added to the Arg_comparator class to speedup the
        DATE/DATETIME comparison.
      mysql-test/include/ps_conv.inc:
        Test case adjusted after fix for bug#27590.
      mysql-test/r/distinct.result:
        Test cases results are corrected after fix for bug#27590.
      sql/sql_select.cc:
        Bug#27590: Wrong DATE/DATETIME comparison.
        The test_if_equality_guarantees_uniqueness() function now uses
        Arg_comparator::can_compare_as_dates() to detect comparable DATE/DATETIME items.
      mysql-test/r/ps_2myisam.result:
        The result of the adjusted test case after fix for bug#27590.
      mysql-test/r/ps_3innodb.result:
        The result of the adjusted test case after fix for bug#27590.
      mysql-test/r/ps_4heap.result:
        The result of the adjusted test case after fix for bug#27590.
      mysql-test/r/ps_5merge.result:
        The result of the adjusted test case after fix for bug#27590.
      mysql-test/r/subselect.result:
        Test cases results are corrected after fix for bug#27590.
      mysql-test/r/type_datetime.result:
        Added a test case for the bug#27590: Wrong DATE/DATETIME comparison.
      mysql-test/t/type_datetime.test:
        Added a test case for the bug#27590: Wrong DATE/DATETIME comparison.
      tests/mysql_client_test.c:
        Test case adjusted after fix for bug#27590.
      1484bd4f
  24. 20 Apr, 2007 1 commit
    • unknown's avatar
      Bug#27704: incorrect comparison of rows with NULL components · 986508fc
      unknown authored
      Support for NULL components was incomplete for row comparison,
      fixed.  Added support for abort_on_null at compare_row() like
      in 5.x
      
      
      sql/item_cmpfunc.h:
        Bug#27704: incorrect comparison of rows with NULL components
        Added support for abort_on_null at Item_bool_func2
        like in 5.x
      sql/item_cmpfunc.cc:
        Bug#27704: incorrect comparison of rows with NULL components
        Support for NULL components was incomplete for row comparison,
        fixed. Added support for abort_on_null at compare_row() like
        in 5.x
      mysql-test/t/row.test:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      mysql-test/r/row.result:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      mysql-test/r/subselect.result:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      986508fc
  25. 04 Apr, 2007 1 commit
  26. 03 Apr, 2007 1 commit
    • unknown's avatar
      Fixed bug #27532: wrong results with ORDER/GROUP BY queries containing · c2a369b2
      unknown authored
      IN/BETWEEN predicates in sorting expressions.
      Wrong results may occur when the select list contains an expression
      with IN/BETWEEN predicate that differs from a sorting expression by
      an additional NOT only.
       
      Added the method Item_func_opt_neg::eq to compare correctly expressions
      containing [NOT] IN/BETWEEN.
      The eq method inherited from the Item_func returns TRUE when comparing
      'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.  
      
      
      mysql-test/r/order_by.result:
        Added a test case for bug #27532.
      mysql-test/t/order_by.test:
        Added a test case for bug #27532.
      sql/item_cmpfunc.cc:
        Fixed bug #27532.
        Added the method Item_func_opt_neg::eq to compare correctly expressions
        containing [NOT] IN/BETWEEN.
        The eq method inherited from the Item_func returns TRUE when comparing
        'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
      sql/item_cmpfunc.h:
        Added the method Item_func_opt_neg::eq to compare correctly expressions
        containing [NOT] IN/BETWEEN.
        The eq method inherited from the Item_func returns TRUE when comparing
        'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
      c2a369b2
  27. 27 Mar, 2007 1 commit
    • unknown's avatar
      Bug #27084 partitioning by list seems failing when using case · ba4da64c
      unknown authored
      creation of the partitioned table could fail as we created Item-s for
      it's list function in thd->mem_root, and then do Item->fix_fields
      in the context of other table->mem_root (so that memory alloced
      there was alloced in this table->mem_root). As we freed the
      table->mem_root before we do thd->free_items, our Item-s had
      pointers to the freed memory, that caused the crash
      
      
      mysql-test/r/partition.result:
        result
      mysql-test/t/partition.test:
        testcase
      sql/item_cmpfunc.cc:
        here is better place for the implementation
      sql/item_cmpfunc.h:
        implementation moved to .cc file
      sql/sql_partition.cc:
        work_part_info_used parameter added to mysql_unpack_partition
      sql/sql_partition.h:
        work_part_info_used parameter added to mysql_unpack_partition
      sql/table.cc:
        we do 'fix_partition_func' using the proper arena now.
        It's necessary as Item_*::fix_fields can alloc memory
        using thd->mem_root and this has to be same mem_root that
        we used to alloc these Item-s
      ba4da64c
  28. 02 Mar, 2007 3 commits
    • unknown's avatar
      fixed win32 warnings · 5fd380a2
      unknown authored
      5fd380a2
    • unknown's avatar
      fixed win32 warning · cb7b4185
      unknown authored
      cb7b4185
    • unknown's avatar
      Bug #19342: · 6e5d8236
      unknown authored
      Several problems here :
       1. The conversion to double of an hex string const item
       was not taking into account the unsigned flag.
       
       2. IN was not behaving in the same was way as comparisons
       when performed over an INT/DATE/DATETIME/TIMESTAMP column
       and a constant. The ordinary comparisons in that case 
       convert the constant to an INTEGER value and do int 
       comparisons. Fixed the IN to do the same.
       
       3. IN is not taking into account the unsigned flag when 
       calculating <expr> IN (<int_const1>, <int_const2>, ...).
       Extended the implementation of IN to store and process
       the unsigned flag for its arguments.
      
      
      mysql-test/r/func_in.result:
        Bug #19342: test case
      mysql-test/t/func_in.test:
        Bug #19342: test case
      sql/item.h:
        Bug #19342: correct handling of sign in conersion to real.
      sql/item_cmpfunc.cc:
        Bug #19342: exteneded the IN values list
         to support unsigned longlong values.
         Correct comparison of integers in IN with
         regard of signedness.
         Compare DATE/DATETIME/TIMESTAMP values as
         integers in IN.
      sql/item_cmpfunc.h:
        Bug #19342: exteneded the IN values list
         to support unsigned longlong values.
         Correct comparison of integers in IN with
         regard of signedness.
      6e5d8236
  29. 16 Feb, 2007 1 commit
    • unknown's avatar
      BUG#20420: optimizer reports wrong keys on left join with IN · 2d4c92ab
      unknown authored
       When checking if an IN predicate can be evaluated using a key
       the optimizer makes sure that all the arguments of IN are of
       the same result type. To assure that it check whether 
       Item_func_in::array is filled in. 
       However Item_func_in::array is set if the types are
       the same AND all the arguments are compile time constants.
       Fixed by introducing Item_func_in::arg_types_compatible
       flag to allow correct checking of the desired condition.
      
      
      mysql-test/r/func_in.result:
        BUG#20420: optimizer reports wrong keys on left join with IN
         - reenabled the test case
      mysql-test/t/func_in.test:
        BUG#20420: optimizer reports wrong keys on left join with IN
         - reenabled the test case
      sql/item_cmpfunc.cc:
        BUG#20420: optimizer reports wrong keys on left join with IN
         Check the IN argument types in a correct way
      sql/item_cmpfunc.h:
        BUG#20420: optimizer reports wrong keys on left join with IN
         Check the IN argument types in a correct way
      sql/opt_range.cc:
        BUG#20420: optimizer reports wrong keys on left join with IN
         Check the IN argument types in a correct way
      2d4c92ab
  30. 12 Feb, 2007 1 commit
    • unknown's avatar
      Bug#24532 (The return data type of IS TRUE is different from similar · ea7180f5
      unknown authored
        operations)
      
      Before this change, the boolean predicates:
      - X IS TRUE,
      - X IS NOT TRUE,
      - X IS FALSE,
      - X IS NOT FALSE
      were implemented by expanding the Item tree in the parser, by using a
      construct like:
      Item_func_if(Item_func_ifnull(X, <value>), <value>, <value>)
      
      Each <value> was a constant integer, either 0 or 1.
      
      A bug in the implementation of the function IF(a, b, c), in
      Item_func_if::fix_length_and_dec(), would cause the following :
      
      When the arguments b and c are both unsigned, the result type of the
      function was signed, instead of unsigned.
      
      When the result of the if function is signed, space for the sign could be
      counted twice (in the max() expression for a signed argument, and in the
      total), causing the member max_length to be too high.
      
      An effect of this is that the final type of IF(x, int(1), int(1)) would be
      int(2) instead of int(1).
      
      With this fix, the problems found in Item_func_if::fix_length_and_dec()
      have been fixed.
      
      While it's semantically correct to represent 'X IS TRUE' with
      Item_func_if(Item_func_ifnull(X, <value>), <value>, <value>),
      there are however more problems with this construct.
      
      a)
      Building the parse tree involves :
      - creating 5 Item instances (3 ints, 1 ifnull, 1 if),
      - creating each Item calls my_pthread_getspecific_ptr() once in the operator
        new(size), and a second time in the Item::Item() constructor, resulting
        in a total of 10 calls to get the current thread.
      Evaluating the expression involves evaluating up to 4 nodes at runtime.
      This representation could be greatly simplified and improved.
      
      b)
      Transforming the parse tree internally with if(ifnull(...)) is fine as long
      as this transformation is internal to the server implementation.
      With views however, the result of the parse tree is later exposed by the
      ::print() functions, and stored as part of the view definition.
      Doing this has long term consequences:
      
      1)
      The original semantic 'X IS TRUE' is lost, and replaced by the
      if(ifnull(...)) expression. As a result, SHOW CREATE VIEW does not restore
      the original code.
      
      2)
      Should a future version of MySQL implement the SQL BOOLEAN data type for
      example, views created today using 'X IS NULL' can be exported using
      mysqldump, and imported again. Such views would be converted correctly and
      automatically to use a BOOLEAN column in the future version.
      With 'X IS TRUE' and the current implementations, views using these
      "boolean" predicates would not be converted during the export/import, and
      would use integer columns instead.
      The difference traces back to how SHOW CREATE VIEW preserves 'X IS NULL' but
      does not preserve the 'X IS TRUE' semantic.
      
      With this fix, internal representation of 'X IS TRUE' booleans predicates
      has changed, so that:
      - dedicated Item classes are created for each predicate,
      - only 1 Item is created to represent 1 predicate
      - my_pthread_getspecific_ptr() is invoked 1 time instead of 10
      - SHOW CREATE VIEW preserves the original semantic, and prints 'X IS TRUE'.
      
      Note that, because of the fix in Item_func_if, views created before this fix
      will:
      - correctly use a int(1) type instead of int(2) for boolean predicates,
      - incorrectly print the if(ifnull(...), ...) expression in SHOW CREATE VIEW,
      since the original semantic (X IS TRUE) has been lost.
      - except for the syntax used in SHOW CREATE VIEW, these views will operate
      properly, no action is needed.
      
      Views created after this fix will operate correctly, and will preserve the
      original code semantic in SHOW CREATE VIEW.
      
      
      mysql-test/r/func_if.result:
        IF(x, unsigned, unsigned) should be unsigned.
      mysql-test/r/view.result:
        Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
      mysql-test/t/func_if.test:
        IF(x, unsigned, unsigned) should be unsigned.
      mysql-test/t/view.test:
        Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
      sql/item_cmpfunc.cc:
        Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
        IF(x, unsigned, unsigned) should be unsigned.
      sql/item_cmpfunc.h:
        Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
      sql/sql_yacc.yy:
        Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
      ea7180f5
  31. 09 Feb, 2007 1 commit
    • unknown's avatar
      Fixed bug #26017. · 1ba8ec70
      unknown authored
      Objects of the class Item_equal contain an auxiliary member
      eval_item of the type cmp_item that is used only for direct 
      evaluation of multiple equalities. Currently a multiple equality
      is evaluated directly only in the cases when the equality holds
      at most for one row in the result set.
      The compare collation of eval_item was determined incorectly.
      It could lead to returning incorrect results for some queries.
      
      
      mysql-test/r/join_outer.result:
        Added a test case for bug #26017.
      mysql-test/t/join_outer.test:
        Added a test case for bug #26017.
      sql/item_cmpfunc.cc:
        Fixed bug #26017.
        Objects of the class Item_equal contain an auxiliary member
        eval_item of the type cmp_item that is used only for direct 
        evaluation of multiple equalities. Currently a multiple equality
        is evaluated directly only in the cases when the equality holds
        at most for one row in the result set.
        The compare collation of eval_item was determined incorrectly.
        It could lead to returning incorrect results for some queries.
      sql/item_cmpfunc.h:
        Fixed bug #26017.
        Removed the cmp_collation member from the Item_equal class as useless
        for the current implementation of the class.
      1ba8ec70
  32. 31 Jan, 2007 1 commit
    • unknown's avatar
      fix for bug #19690: ORDER BY eliminates rows from the result · 03f5218e
      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.
      03f5218e
  33. 26 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #24653. · 78c3a85d
      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.
      78c3a85d
  34. 18 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #25580: incorrect stored representations of views in cases · 192eb05b
      unknown authored
      when they contain the '!' operator.
      Added an implementation for the method Item_func_not::print. 
      The method encloses any NOT expression into extra parentheses to avoid
      incorrect stored representations of views that use the '!' operators.
      Without this change when a view was created that contained
      the expression !0*5  its stored representation contained not this
      expression but rather the expression not(0)*5 . 
      The operator '!' is of a higher precedence than '*', while NOT is 
      of a lower precedence than '*'. That's why the expression !0*5 
      is interpreted as not(0)*5, while the expression not(0)*5 is interpreted
      as not((0)*5) unless sql_mode is set to HIGH_NOT_PRECEDENCE.
      Now we translate !0*5 into (not(0))*5. 
      
      
      mysql-test/r/sp-code.result:
        Adjusted results after the fix of bug 25580.
      mysql-test/r/subselect.result:
        Adjusted results after the fix of bug 25580.
      mysql-test/r/view.result:
        Added a test case for bug #25580.
      mysql-test/t/view.test:
        Added a test case for bug #25580.
      sql/item_cmpfunc.cc:
        Fixed bug #25580: incorrect stored representations of views in cases
        when they contain the '!' operator.
        Added an implementation for the method Item_func_not::print. 
        The method encloses the NOT expression into extra parenthesis to avoid
        incorrect stored representations of views that use the '!' operators.
      sql/item_cmpfunc.h:
        Fixed bug #25580: incorrect stored representations of views in cases
        when they contain the '!' operator.
        Added an implementation for the method Item_func_not::print. 
        The method encloses the NOT expression into extra parenthesis to avoid
        incorrect stored representations of views that use the '!' operators.
      192eb05b
  35. 15 Jan, 2007 1 commit
    • unknown's avatar
      BUG#20420: optimizer reports wrong keys on left join with IN · c3ba0dc6
      unknown authored
       The optimizer needs to evaluate whether predicates are better
       evaluated using an index. IN is one such predicate.
       To qualify an IN predicate must involve a field of the index
       on the left and constant arguments on the right.
       However whether an expression is a constant can be determined only
       by knowing the preceding tables in the join order. 
       Assuming that only IN predicates with expressions on the right that
       are constant for the whole query qualify limits the scope of 
       possible optimizations of the IN predicate (more specifically it
       doesn't allow the "Range checked for each record" optimization for
       such an IN predicate.
       Fixed by not pre-determining the optimizability of the IN predicate
       in the case when all right IN operands are not SQL constant expressions
      
      
      mysql-test/r/func_in.result:
        BUG#20420: optimizer reports wrong keys on left join with IN
         - test case
      mysql-test/t/func_in.test:
        BUG#20420: optimizer reports wrong keys on left join with IN
         - test case
      sql/item_cmpfunc.h:
        BUG#20420: optimizer reports wrong keys on left join with IN
         - cannot decide on the optimizability of a function without
           knowing the tables before it in the join order
      c3ba0dc6
  36. 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: · acee1edb
      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)
      acee1edb
  37. 23 Dec, 2006 1 commit
    • unknown's avatar
      Many files: · 2d27fea5
      unknown authored
        Changed header to GPL version 2 only
      
      
      BUILD/Makefile.am:
        Changed header to GPL version 2 only
      Docs/Makefile.am:
        Changed header to GPL version 2 only
      Makefile.am:
        Changed header to GPL version 2 only
      SSL/Makefile.am:
        Changed header to GPL version 2 only
      bdb/Makefile.in:
        Changed header to GPL version 2 only
      client/Makefile.am:
        Changed header to GPL version 2 only
      client/client_priv.h:
        Changed header to GPL version 2 only
      client/completion_hash.cc:
        Changed header to GPL version 2 only
      client/completion_hash.h:
        Changed header to GPL version 2 only
      client/get_password.c:
        Changed header to GPL version 2 only
      client/my_readline.h:
        Changed header to GPL version 2 only
      client/mysql.cc:
        Changed header to GPL version 2 only
      client/mysql_upgrade.c:
        Changed header to GPL version 2 only
      client/mysqladmin.cc:
        Changed header to GPL version 2 only
      client/mysqlbinlog.cc:
        Changed header to GPL version 2 only
      client/mysqlcheck.c:
        Changed header to GPL version 2 only
      client/mysqldump.c:
        Changed header to GPL version 2 only
      client/mysqlimport.c:
        Changed header to GPL version 2 only
      client/mysqlmanager-pwgen.c:
        Changed header to GPL version 2 only
      client/mysqlmanagerc.c:
        Changed header to GPL version 2 only
      client/mysqlshow.c:
        Changed header to GPL version 2 only
      client/mysqltest.c:
        Changed header to GPL version 2 only
      client/readline.cc:
        Changed header to GPL version 2 only
      client/sql_string.cc:
        Changed header to GPL version 2 only
      client/sql_string.h:
        Changed header to GPL version 2 only
      cmd-line-utils/Makefile.am:
        Changed header to GPL version 2 only
      dbug/Makefile.am:
        Changed header to GPL version 2 only
      extra/Makefile.am:
        Changed header to GPL version 2 only
      extra/charset2html.c:
        Changed header to GPL version 2 only
      extra/comp_err.c:
        Changed header to GPL version 2 only
      extra/innochecksum.c:
        Changed header to GPL version 2 only
      extra/my_print_defaults.c:
        Changed header to GPL version 2 only
      extra/mysql_waitpid.c:
        Changed header to GPL version 2 only
      extra/perror.c:
        Changed header to GPL version 2 only
      extra/replace.c:
        Changed header to GPL version 2 only
      extra/resolve_stack_dump.c:
        Changed header to GPL version 2 only
      extra/resolveip.c:
        Changed header to GPL version 2 only
      heap/Makefile.am:
        Changed header to GPL version 2 only
      heap/_check.c:
        Changed header to GPL version 2 only
      heap/_rectest.c:
        Changed header to GPL version 2 only
      heap/heapdef.h:
        Changed header to GPL version 2 only
      heap/hp_block.c:
        Changed header to GPL version 2 only
      heap/hp_clear.c:
        Changed header to GPL version 2 only
      heap/hp_close.c:
        Changed header to GPL version 2 only
      heap/hp_create.c:
        Changed header to GPL version 2 only
      heap/hp_delete.c:
        Changed header to GPL version 2 only
      heap/hp_extra.c:
        Changed header to GPL version 2 only
      heap/hp_hash.c:
        Changed header to GPL version 2 only
      heap/hp_info.c:
        Changed header to GPL version 2 only
      heap/hp_open.c:
        Changed header to GPL version 2 only
      heap/hp_panic.c:
        Changed header to GPL version 2 only
      heap/hp_rename.c:
        Changed header to GPL version 2 only
      heap/hp_rfirst.c:
        Changed header to GPL version 2 only
      heap/hp_rkey.c:
        Changed header to GPL version 2 only
      heap/hp_rlast.c:
        Changed header to GPL version 2 only
      heap/hp_rnext.c:
        Changed header to GPL version 2 only
      heap/hp_rprev.c:
        Changed header to GPL version 2 only
      heap/hp_rrnd.c:
        Changed header to GPL version 2 only
      heap/hp_rsame.c:
        Changed header to GPL version 2 only
      heap/hp_scan.c:
        Changed header to GPL version 2 only
      heap/hp_static.c:
        Changed header to GPL version 2 only
      heap/hp_test1.c:
        Changed header to GPL version 2 only
      heap/hp_test2.c:
        Changed header to GPL version 2 only
      heap/hp_update.c:
        Changed header to GPL version 2 only
      heap/hp_write.c:
        Changed header to GPL version 2 only
      include/Makefile.am:
        Changed header to GPL version 2 only
      include/base64.h:
        Changed header to GPL version 2 only
      include/config-netware.h:
        Changed header to GPL version 2 only
      include/config-os2.h:
        Changed header to GPL version 2 only
      include/config-win.h:
        Changed header to GPL version 2 only
      include/decimal.h:
        Changed header to GPL version 2 only
      include/errmsg.h:
        Changed header to GPL version 2 only
      include/ft_global.h:
        Changed header to GPL version 2 only
      include/hash.h:
        Changed header to GPL version 2 only
      include/heap.h:
        Changed header to GPL version 2 only
      include/keycache.h:
        Changed header to GPL version 2 only
      include/m_ctype.h:
        Changed header to GPL version 2 only
      include/m_string.h:
        Changed header to GPL version 2 only
      include/md5.h:
        Changed header to GPL version 2 only
      include/my_aes.h:
        Changed header to GPL version 2 only
      include/my_alarm.h:
        Changed header to GPL version 2 only
      include/my_alloc.h:
        Changed header to GPL version 2 only
      include/my_base.h:
        Changed header to GPL version 2 only
      include/my_bitmap.h:
        Changed header to GPL version 2 only
      include/my_dbug.h:
        Changed header to GPL version 2 only
      include/my_dir.h:
        Changed header to GPL version 2 only
      include/my_getopt.h:
        Changed header to GPL version 2 only
      include/my_global.h:
        Changed header to GPL version 2 only
      include/my_handler.h:
        Changed header to GPL version 2 only
      include/my_libwrap.h:
        Changed header to GPL version 2 only
      include/my_list.h:
        Changed header to GPL version 2 only
      include/my_net.h:
        Changed header to GPL version 2 only
      include/my_no_pthread.h:
        Changed header to GPL version 2 only
      include/my_nosys.h:
        Changed header to GPL version 2 only
      include/my_pthread.h:
        Changed header to GPL version 2 only
      include/my_sys.h:
        Changed header to GPL version 2 only
      include/my_time.h:
        Changed header to GPL version 2 only
      include/my_tree.h:
        Changed header to GPL version 2 only
      include/my_user.h:
        Changed header to GPL version 2 only
      include/my_xml.h:
        Changed header to GPL version 2 only
      include/myisam.h:
        Changed header to GPL version 2 only
      include/myisammrg.h:
        Changed header to GPL version 2 only
      include/myisampack.h:
        Changed header to GPL version 2 only
      include/mysql.h:
        Changed header to GPL version 2 only
      include/mysql_com.h:
        Changed header to GPL version 2 only
      include/mysql_embed.h:
        Changed header to GPL version 2 only
      include/mysql_time.h:
        Changed header to GPL version 2 only
      include/mysys_err.h:
        Changed header to GPL version 2 only
      include/queues.h:
        Changed header to GPL version 2 only
      include/raid.h:
        Changed header to GPL version 2 only
      include/rijndael.h:
        Changed header to GPL version 2 only
      include/sha1.h:
        Changed header to GPL version 2 only
      include/sql_common.h:
        Changed header to GPL version 2 only
      include/sslopt-case.h:
        Changed header to GPL version 2 only
      include/sslopt-longopts.h:
        Changed header to GPL version 2 only
      include/sslopt-vars.h:
        Changed header to GPL version 2 only
      include/t_ctype.h:
        Changed header to GPL version 2 only
      include/thr_alarm.h:
        Changed header to GPL version 2 only
      include/thr_lock.h:
        Changed header to GPL version 2 only
      include/typelib.h:
        Changed header to GPL version 2 only
      include/violite.h:
        Changed header to GPL version 2 only
      innobase/Makefile.am:
        Changed header to GPL version 2 only
      innobase/btr/Makefile.am:
        Changed header to GPL version 2 only
      innobase/buf/Makefile.am:
        Changed header to GPL version 2 only
      innobase/data/Makefile.am:
        Changed header to GPL version 2 only
      innobase/dict/Makefile.am:
        Changed header to GPL version 2 only
      innobase/dyn/Makefile.am:
        Changed header to GPL version 2 only
      innobase/eval/Makefile.am:
        Changed header to GPL version 2 only
      innobase/fil/Makefile.am:
        Changed header to GPL version 2 only
      innobase/fsp/Makefile.am:
        Changed header to GPL version 2 only
      innobase/fut/Makefile.am:
        Changed header to GPL version 2 only
      innobase/ha/Makefile.am:
        Changed header to GPL version 2 only
      innobase/ibuf/Makefile.am:
        Changed header to GPL version 2 only
      innobase/include/Makefile.am:
        Changed header to GPL version 2 only
      innobase/lock/Makefile.am:
        Changed header to GPL version 2 only
      innobase/log/Makefile.am:
        Changed header to GPL version 2 only
      innobase/mach/Makefile.am:
        Changed header to GPL version 2 only
      innobase/mem/Makefile.am:
        Changed header to GPL version 2 only
      innobase/mtr/Makefile.am:
        Changed header to GPL version 2 only
      innobase/os/Makefile.am:
        Changed header to GPL version 2 only
      innobase/page/Makefile.am:
        Changed header to GPL version 2 only
      innobase/pars/Makefile.am:
        Changed header to GPL version 2 only
      innobase/que/Makefile.am:
        Changed header to GPL version 2 only
      innobase/read/Makefile.am:
        Changed header to GPL version 2 only
      innobase/rem/Makefile.am:
        Changed header to GPL version 2 only
      innobase/row/Makefile.am:
        Changed header to GPL version 2 only
      innobase/srv/Makefile.am:
        Changed header to GPL version 2 only
      innobase/sync/Makefile.am:
        Changed header to GPL version 2 only
      innobase/thr/Makefile.am:
        Changed header to GPL version 2 only
      innobase/trx/Makefile.am:
        Changed header to GPL version 2 only
      innobase/usr/Makefile.am:
        Changed header to GPL version 2 only
      innobase/ut/Makefile.am:
        Changed header to GPL version 2 only
      libmysql/client_settings.h:
        Changed header to GPL version 2 only
      libmysqld/Makefile.am:
        Changed header to GPL version 2 only
      libmysqld/emb_qcache.cc:
        Changed header to GPL version 2 only
      libmysqld/emb_qcache.h:
        Changed header to GPL version 2 only
      libmysqld/embedded_priv.h:
        Changed header to GPL version 2 only
      libmysqld/examples/Makefile.am:
        Changed header to GPL version 2 only
      libmysqld/libmysqld.c:
        Changed header to GPL version 2 only
      man/Makefile.am:
        Changed header to GPL version 2 only
      myisam/Makefile.am:
        Changed header to GPL version 2 only
      myisam/ft_boolean_search.c:
        Changed header to GPL version 2 only
      myisam/ft_eval.c:
        Changed header to GPL version 2 only
      myisam/ft_eval.h:
        Changed header to GPL version 2 only
      myisam/ft_nlq_search.c:
        Changed header to GPL version 2 only
      myisam/ft_parser.c:
        Changed header to GPL version 2 only
      myisam/ft_static.c:
        Changed header to GPL version 2 only
      myisam/ft_stem.c:
        Changed header to GPL version 2 only
      myisam/ft_stopwords.c:
        Changed header to GPL version 2 only
      myisam/ft_test1.c:
        Changed header to GPL version 2 only
      myisam/ft_test1.h:
        Changed header to GPL version 2 only
      myisam/ft_update.c:
        Changed header to GPL version 2 only
      myisam/ftdefs.h:
        Changed header to GPL version 2 only
      myisam/fulltext.h:
        Changed header to GPL version 2 only
      myisam/mi_cache.c:
        Changed header to GPL version 2 only
      myisam/mi_changed.c:
        Changed header to GPL version 2 only
      myisam/mi_check.c:
        Changed header to GPL version 2 only
      myisam/mi_checksum.c:
        Changed header to GPL version 2 only
      myisam/mi_close.c:
        Changed header to GPL version 2 only
      myisam/mi_create.c:
        Changed header to GPL version 2 only
      myisam/mi_dbug.c:
        Changed header to GPL version 2 only
      myisam/mi_delete.c:
        Changed header to GPL version 2 only
      myisam/mi_delete_all.c:
        Changed header to GPL version 2 only
      myisam/mi_delete_table.c:
        Changed header to GPL version 2 only
      myisam/mi_dynrec.c:
        Changed header to GPL version 2 only
      myisam/mi_extra.c:
        Changed header to GPL version 2 only
      myisam/mi_info.c:
        Changed header to GPL version 2 only
      myisam/mi_key.c:
        Changed header to GPL version 2 only
      myisam/mi_keycache.c:
        Changed header to GPL version 2 only
      myisam/mi_locking.c:
        Changed header to GPL version 2 only
      myisam/mi_log.c:
        Changed header to GPL version 2 only
      myisam/mi_open.c:
        Changed header to GPL version 2 only
      myisam/mi_packrec.c:
        Changed header to GPL version 2 only
      myisam/mi_page.c:
        Changed header to GPL version 2 only
      myisam/mi_panic.c:
        Changed header to GPL version 2 only
      myisam/mi_preload.c:
        Changed header to GPL version 2 only
      myisam/mi_range.c:
        Changed header to GPL version 2 only
      myisam/mi_rename.c:
        Changed header to GPL version 2 only
      myisam/mi_rfirst.c:
        Changed header to GPL version 2 only
      myisam/mi_rkey.c:
        Changed header to GPL version 2 only
      myisam/mi_rlast.c:
        Changed header to GPL version 2 only
      myisam/mi_rnext.c:
        Changed header to GPL version 2 only
      myisam/mi_rnext_same.c:
        Changed header to GPL version 2 only
      myisam/mi_rprev.c:
        Changed header to GPL version 2 only
      myisam/mi_rrnd.c:
        Changed header to GPL version 2 only
      myisam/mi_rsame.c:
        Changed header to GPL version 2 only
      myisam/mi_rsamepos.c:
        Changed header to GPL version 2 only
      myisam/mi_scan.c:
        Changed header to GPL version 2 only
      myisam/mi_search.c:
        Changed header to GPL version 2 only
      myisam/mi_static.c:
        Changed header to GPL version 2 only
      myisam/mi_statrec.c:
        Changed header to GPL version 2 only
      myisam/mi_test1.c:
        Changed header to GPL version 2 only
      myisam/mi_test2.c:
        Changed header to GPL version 2 only
      myisam/mi_test3.c:
        Changed header to GPL version 2 only
      myisam/mi_unique.c:
        Changed header to GPL version 2 only
      myisam/mi_update.c:
        Changed header to GPL version 2 only
      myisam/mi_write.c:
        Changed header to GPL version 2 only
      myisam/myisam_ftdump.c:
        Changed header to GPL version 2 only
      myisam/myisamchk.c:
        Changed header to GPL version 2 only
      myisam/myisamdef.h:
        Changed header to GPL version 2 only
      myisam/myisamlog.c:
        Changed header to GPL version 2 only
      myisam/myisampack.c:
        Changed header to GPL version 2 only
      myisam/rt_index.c:
        Changed header to GPL version 2 only
      myisam/rt_index.h:
        Changed header to GPL version 2 only
      myisam/rt_key.c:
        Changed header to GPL version 2 only
      myisam/rt_key.h:
        Changed header to GPL version 2 only
      myisam/rt_mbr.c:
        Changed header to GPL version 2 only
      myisam/rt_mbr.h:
        Changed header to GPL version 2 only
      myisam/rt_split.c:
        Changed header to GPL version 2 only
      myisam/rt_test.c:
        Changed header to GPL version 2 only
      myisam/sort.c:
        Changed header to GPL version 2 only
      myisam/sp_defs.h:
        Changed header to GPL version 2 only
      myisam/sp_key.c:
        Changed header to GPL version 2 only
      myisam/sp_test.c:
        Changed header to GPL version 2 only
      myisammrg/Makefile.am:
        Changed header to GPL version 2 only
      myisammrg/myrg_close.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_create.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_def.h:
        Changed header to GPL version 2 only
      myisammrg/myrg_delete.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_extra.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_info.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_locking.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_open.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_panic.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_queue.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_range.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_rfirst.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_rkey.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_rlast.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_rnext.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_rnext_same.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_rprev.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_rrnd.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_rsame.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_static.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_update.c:
        Changed header to GPL version 2 only
      myisammrg/myrg_write.c:
        Changed header to GPL version 2 only
      mysql-test/Makefile.am:
        Changed header to GPL version 2 only
      mysys/Makefile.am:
        Changed header to GPL version 2 only
      mysys/array.c:
        Changed header to GPL version 2 only
      mysys/base64.c:
        Changed header to GPL version 2 only
      mysys/charset-def.c:
        Changed header to GPL version 2 only
      mysys/charset.c:
        Changed header to GPL version 2 only
      mysys/checksum.c:
        Changed header to GPL version 2 only
      mysys/default.c:
        Changed header to GPL version 2 only
      mysys/default_modify.c:
        Changed header to GPL version 2 only
      mysys/errors.c:
        Changed header to GPL version 2 only
      mysys/hash.c:
        Changed header to GPL version 2 only
      mysys/list.c:
        Changed header to GPL version 2 only
      mysys/make-conf.c:
        Changed header to GPL version 2 only
      mysys/md5.c:
        Changed header to GPL version 2 only
      mysys/mf_brkhant.c:
        Changed header to GPL version 2 only
      mysys/mf_cache.c:
        Changed header to GPL version 2 only
      mysys/mf_dirname.c:
        Changed header to GPL version 2 only
      mysys/mf_fn_ext.c:
        Changed header to GPL version 2 only
      mysys/mf_format.c:
        Changed header to GPL version 2 only
      mysys/mf_getdate.c:
        Changed header to GPL version 2 only
      mysys/mf_iocache.c:
        Changed header to GPL version 2 only
      mysys/mf_iocache2.c:
        Changed header to GPL version 2 only
      mysys/mf_keycache.c:
        Changed header to GPL version 2 only
      mysys/mf_keycaches.c:
        Changed header to GPL version 2 only
      mysys/mf_loadpath.c:
        Changed header to GPL version 2 only
      mysys/mf_pack.c:
        Changed header to GPL version 2 only
      mysys/mf_path.c:
        Changed header to GPL version 2 only
      mysys/mf_qsort.c:
        Changed header to GPL version 2 only
      mysys/mf_qsort2.c:
        Changed header to GPL version 2 only
      mysys/mf_radix.c:
        Changed header to GPL version 2 only
      mysys/mf_same.c:
        Changed header to GPL version 2 only
      mysys/mf_sort.c:
        Changed header to GPL version 2 only
      mysys/mf_soundex.c:
        Changed header to GPL version 2 only
      mysys/mf_strip.c:
        Changed header to GPL version 2 only
      mysys/mf_tempdir.c:
        Changed header to GPL version 2 only
      mysys/mf_tempfile.c:
        Changed header to GPL version 2 only
      mysys/mf_unixpath.c:
        Changed header to GPL version 2 only
      mysys/mf_util.c:
        Changed header to GPL version 2 only
      mysys/mf_wcomp.c:
        Changed header to GPL version 2 only
      mysys/mf_wfile.c:
        Changed header to GPL version 2 only
      mysys/mulalloc.c:
        Changed header to GPL version 2 only
      mysys/my_access.c:
        Changed header to GPL version 2 only
      mysys/my_aes.c:
        Changed header to GPL version 2 only
      mysys/my_alarm.c:
        Changed header to GPL version 2 only
      mysys/my_alloc.c:
        Changed header to GPL version 2 only
      mysys/my_append.c:
        Changed header to GPL version 2 only
      mysys/my_bit.c:
        Changed header to GPL version 2 only
      mysys/my_bitmap.c:
        Changed header to GPL version 2 only
      mysys/my_chsize.c:
        Changed header to GPL version 2 only
      mysys/my_clock.c:
        Changed header to GPL version 2 only
      mysys/my_compress.c:
        Changed header to GPL version 2 only
      mysys/my_conio.c:
        Changed header to GPL version 2 only
      mysys/my_copy.c:
        Changed header to GPL version 2 only
      mysys/my_crc32.c:
        Changed header to GPL version 2 only
      mysys/my_create.c:
        Changed header to GPL version 2 only
      mysys/my_delete.c:
        Changed header to GPL version 2 only
      mysys/my_div.c:
        Changed header to GPL version 2 only
      mysys/my_dup.c:
        Changed header to GPL version 2 only
      mysys/my_error.c:
        Changed header to GPL version 2 only
      mysys/my_file.c:
        Changed header to GPL version 2 only
      mysys/my_fopen.c:
        Changed header to GPL version 2 only
      mysys/my_fstream.c:
        Changed header to GPL version 2 only
      mysys/my_gethostbyname.c:
        Changed header to GPL version 2 only
      mysys/my_gethwaddr.c:
        Changed header to GPL version 2 only
      mysys/my_getopt.c:
        Changed header to GPL version 2 only
      mysys/my_getpagesize.c:
        Changed header to GPL version 2 only
      mysys/my_getsystime.c:
        Changed header to GPL version 2 only
      mysys/my_getwd.c:
        Changed header to GPL version 2 only
      mysys/my_handler.c:
        Changed header to GPL version 2 only
      mysys/my_init.c:
        Changed header to GPL version 2 only
      mysys/my_largepage.c:
        Changed header to GPL version 2 only
      mysys/my_lib.c:
        Changed header to GPL version 2 only
      mysys/my_libwrap.c:
        Changed header to GPL version 2 only
      mysys/my_lock.c:
        Changed header to GPL version 2 only
      mysys/my_lockmem.c:
        Changed header to GPL version 2 only
      mysys/my_lread.c:
        Changed header to GPL version 2 only
      mysys/my_lwrite.c:
        Changed header to GPL version 2 only
      mysys/my_malloc.c:
        Changed header to GPL version 2 only
      mysys/my_messnc.c:
        Changed header to GPL version 2 only
      mysys/my_mkdir.c:
        Changed header to GPL version 2 only
      mysys/my_mmap.c:
        Changed header to GPL version 2 only
      mysys/my_net.c:
        Changed header to GPL version 2 only
      mysys/my_netware.c:
        Changed header to GPL version 2 only
      mysys/my_new.cc:
        Changed header to GPL version 2 only
      mysys/my_once.c:
        Changed header to GPL version 2 only
      mysys/my_open.c:
        Changed header to GPL version 2 only
      mysys/my_os2cond.c:
        Changed header to GPL version 2 only
      mysys/my_os2dirsrch.c:
        Changed header to GPL version 2 only
      mysys/my_os2dirsrch.h:
        Changed header to GPL version 2 only
      mysys/my_os2dlfcn.c:
        Changed header to GPL version 2 only
      mysys/my_os2dlfcn.h0:
        Changed header to GPL version 2 only
      mysys/my_os2file64.c:
        Changed header to GPL version 2 only
      mysys/my_os2thread.c:
        Changed header to GPL version 2 only
      mysys/my_os2tls.c:
        Changed header to GPL version 2 only
      mysys/my_port.c:
        Changed header to GPL version 2 only
      mysys/my_pread.c:
        Changed header to GPL version 2 only
      mysys/my_pthread.c:
        Changed header to GPL version 2 only
      mysys/my_quick.c:
        Changed header to GPL version 2 only
      mysys/my_read.c:
        Changed header to GPL version 2 only
      mysys/my_realloc.c:
        Changed header to GPL version 2 only
      mysys/my_redel.c:
        Changed header to GPL version 2 only
      mysys/my_rename.c:
        Changed header to GPL version 2 only
      mysys/my_seek.c:
        Changed header to GPL version 2 only
      mysys/my_semaphore.c:
        Changed header to GPL version 2 only
      mysys/my_sleep.c:
        Changed header to GPL version 2 only
      mysys/my_static.c:
        Changed header to GPL version 2 only
      mysys/my_static.h:
        Changed header to GPL version 2 only
      mysys/my_symlink.c:
        Changed header to GPL version 2 only
      mysys/my_symlink2.c:
        Changed header to GPL version 2 only
      mysys/my_sync.c:
        Changed header to GPL version 2 only
      mysys/my_thr_init.c:
        Changed header to GPL version 2 only
      mysys/my_wincond.c:
        Changed header to GPL version 2 only
      mysys/my_windac.c:
        Changed header to GPL version 2 only
      mysys/my_winthread.c:
        Changed header to GPL version 2 only
      mysys/my_write.c:
        Changed header to GPL version 2 only
      mysys/mysys_priv.h:
        Changed header to GPL version 2 only
      mysys/ptr_cmp.c:
        Changed header to GPL version 2 only
      mysys/queues.c:
        Changed header to GPL version 2 only
      mysys/raid.cc:
        Changed header to GPL version 2 only
      mysys/raid2.c:
        Changed header to GPL version 2 only
      mysys/rijndael.c:
        Changed header to GPL version 2 only
      mysys/safemalloc.c:
        Changed header to GPL version 2 only
      mysys/sha1.c:
        Changed header to GPL version 2 only
      mysys/string.c:
        Changed header to GPL version 2 only
      mysys/test_charset.c:
        Changed header to GPL version 2 only
      mysys/test_dir.c:
        Changed header to GPL version 2 only
      mysys/test_fn.c:
        Changed header to GPL version 2 only
      mysys/test_xml.c:
        Changed header to GPL version 2 only
      mysys/testhash.c:
        Changed header to GPL version 2 only
      mysys/thr_alarm.c:
        Changed header to GPL version 2 only
      mysys/thr_lock.c:
        Changed header to GPL version 2 only
      mysys/thr_mutex.c:
        Changed header to GPL version 2 only
      mysys/thr_rwlock.c:
        Changed header to GPL version 2 only
      mysys/tree.c:
        Changed header to GPL version 2 only
      mysys/typelib.c:
        Changed header to GPL version 2 only
      ndb/include/debugger/DebuggerNames.hpp:
        Changed header to GPL version 2 only
      ndb/include/debugger/EventLogger.hpp:
        Changed header to GPL version 2 only
      ndb/include/debugger/GrepError.hpp:
        Changed header to GPL version 2 only
      ndb/include/debugger/SignalLoggerManager.hpp:
        Changed header to GPL version 2 only
      ndb/include/editline/editline.h:
        Changed header to GPL version 2 only
      ndb/include/kernel/AttributeDescriptor.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/AttributeHeader.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/AttributeList.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/BlockNumbers.h:
        Changed header to GPL version 2 only
      ndb/include/kernel/GlobalSignalNumbers.h:
        Changed header to GPL version 2 only
      ndb/include/kernel/GrepEvent.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/Interpreter.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/LogLevel.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/NodeBitmask.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/NodeInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/NodeState.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/RefConvert.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/kernel_types.h:
        Changed header to GPL version 2 only
      ndb/include/kernel/ndb_limits.h:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AbortAll.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AccFrag.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AccLock.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AccScan.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AccSizeAltReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AlterIndx.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AlterTab.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AlterTable.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AlterTrig.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ApiBroadcast.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ApiRegSignalData.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ApiVersion.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ArbitSignalData.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/trigger_definitions.h:
        Changed header to GPL version 2 only
      ndb/include/ndb_constants.h:
        Changed header to GPL version 2 only
      ndb/include/ndb_global.h.in:
        Changed header to GPL version 2 only
      ndb/include/ndb_init.h:
        Changed header to GPL version 2 only
      ndb/include/ndb_types.h.in:
        Changed header to GPL version 2 only
      ndb/include/ndb_version.h.in:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/AttrInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/BackupContinueB.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/BackupImpl.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/BackupSignalData.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/BlockCommitOrd.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/BuildIndx.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CheckNodeGroups.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CloseComReqConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CmInit.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CmRegSignalData.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CmvmiCfgConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CntrMasterConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CntrMasterReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ConfigParamId.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ContinueFragmented.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CopyActive.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CopyFrag.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CopyGCIReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CreateEvnt.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CreateFrag.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CreateFragmentation.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CreateIndx.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CreateTab.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CreateTable.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/CreateTrig.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DiAddTab.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DiGetNodes.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DictLock.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DictSchemaInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DictSizeAltReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DictStart.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DictTabInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DihAddFrag.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DihContinueB.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DihSizeAltReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DihStartTab.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DihSwitchReplica.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DisconnectRep.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DropIndx.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DropTab.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DropTabFile.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DropTable.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DropTrig.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/DumpStateOrd.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/EmptyLcp.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/EndTo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/EventReport.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/EventSubscribeReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ExecFragReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FailRep.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FireTrigOrd.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FsAppendReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FsCloseReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FsConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FsOpenReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FsReadWriteReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FsRef.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/FsRemoveReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/GCPSave.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/GetTabInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/GetTableId.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/GrepImpl.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/HotSpareRep.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/IndxAttrInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/IndxKeyInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/KeyInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/LCP.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ListTables.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/LqhFrag.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/LqhKey.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/LqhSizeAltReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/LqhTransConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ManagementServer.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/MasterGCP.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/MasterLCP.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/NFCompleteRep.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/NdbSttor.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/NdbfsContinueB.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/NextScan.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/NodeFailRep.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/NodeStateSignalData.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/PackedSignal.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/PrepDropTab.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/PrepFailReqRef.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ReadNodesConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/RelTabMem.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/RepImpl.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ResumeReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ScanFrag.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/ScanTab.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/SetLogLevelOrd.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/SetVarReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/SignalData.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/SignalDataPrint.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/SignalDroppedRep.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/SrFragidConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StartFragReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StartInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StartMe.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StartOrd.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StartPerm.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StartRec.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StartTo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StopMe.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StopPerm.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/StopReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/SumaImpl.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/SystemError.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TamperOrd.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcCommit.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcContinueB.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcHbRep.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcIndx.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcKeyConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcKeyFailConf.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcKeyRef.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcKeyReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcRollbackRep.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TcSizeAltReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TestOrd.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TransIdAI.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TrigAttrInfo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TupCommit.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TupFrag.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TupKey.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TupSizeAltReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TuxBound.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TuxContinueB.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TuxMaint.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/TuxSizeAltReq.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/UpdateTo.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/UtilDelete.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/UtilExecute.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/UtilLock.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/UtilPrepare.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/UtilRelease.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/UtilSequence.hpp:
        Changed header to GPL version 2 only
      ndb/include/kernel/signaldata/WaitGCP.hpp:
        Changed header to GPL version 2 only
      ndb/include/logger/ConsoleLogHandler.hpp:
        Changed header to GPL version 2 only
      ndb/include/logger/FileLogHandler.hpp:
        Changed header to GPL version 2 only
      ndb/include/logger/LogHandler.hpp:
        Changed header to GPL version 2 only
      ndb/include/logger/Logger.hpp:
        Changed header to GPL version 2 only
      ndb/include/logger/SysLogHandler.hpp:
        Changed header to GPL version 2 only
      ndb/include/mgmapi/mgmapi.h:
        Changed header to GPL version 2 only
      ndb/include/mgmapi/mgmapi_debug.h:
        Changed header to GPL version 2 only
      ndb/include/mgmapi/ndb_logevent.h:
        Changed header to GPL version 2 only
      ndb/include/mgmapi/ndbd_exit_codes.h:
        Changed header to GPL version 2 only
      ndb/include/mgmcommon/ConfigRetriever.hpp:
        Changed header to GPL version 2 only
      ndb/include/mgmcommon/IPCConfig.hpp:
        Changed header to GPL version 2 only
      ndb/include/mgmcommon/MgmtErrorReporter.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/Ndb.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbApi.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbBlob.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbDictionary.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbError.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbEventOperation.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbIndexOperation.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbIndexScanOperation.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbOperation.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbPool.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbRecAttr.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbReceiver.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbScanFilter.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbScanOperation.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/NdbTransaction.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/ndb_cluster_connection.hpp:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/ndb_opt_defaults.h:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/ndbapi_limits.h:
        Changed header to GPL version 2 only
      ndb/include/ndbapi/ndberror.h:
        Changed header to GPL version 2 only
      ndb/include/newtonapi/dba.h:
        Changed header to GPL version 2 only
      ndb/include/newtonapi/defs/pcn_types.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbCondition.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbConfig.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbDaemon.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbEnv.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbHost.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbMain.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbMem.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbMutex.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbSleep.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbTCP.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbThread.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/NdbTick.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/PortDefs.h:
        Changed header to GPL version 2 only
      ndb/include/portlib/prefetch.h:
        Changed header to GPL version 2 only
      ndb/include/transporter/TransporterCallback.hpp:
        Changed header to GPL version 2 only
      ndb/include/transporter/TransporterDefinitions.hpp:
        Changed header to GPL version 2 only
      ndb/include/transporter/TransporterRegistry.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/BaseString.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/Bitmask.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/File.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/InputStream.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/NdbAutoPtr.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/NdbOut.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/NdbSqlUtil.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/OutputStream.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/Parser.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/Properties.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/SimpleProperties.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/SocketAuthenticator.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/SocketClient.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/SocketServer.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/UtilBuffer.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/Vector.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/basestring_vsnprintf.h:
        Changed header to GPL version 2 only
      ndb/include/util/md5_hash.hpp:
        Changed header to GPL version 2 only
      ndb/include/util/ndb_opts.h:
        Changed header to GPL version 2 only
      ndb/include/util/random.h:
        Changed header to GPL version 2 only
      ndb/include/util/socket_io.h:
        Changed header to GPL version 2 only
      ndb/include/util/uucode.h:
        Changed header to GPL version 2 only
      ndb/include/util/version.h:
        Changed header to GPL version 2 only
      ndb/ndbapi-examples/mgmapi_logevent_example/mgmapi_logevent.cpp:
        Changed header to GPL version 2 only
      ndb/ndbapi-examples/ndbapi_async_example/ndbapi_async.cpp:
        Changed header to GPL version 2 only
      ndb/ndbapi-examples/ndbapi_async_example1/ndbapi_async1.cpp:
        Changed header to GPL version 2 only
      ndb/ndbapi-examples/ndbapi_event_example/ndbapi_event.cpp:
        Changed header to GPL version 2 only
      ndb/ndbapi-examples/ndbapi_retries_example/ndbapi_retries.cpp:
        Changed header to GPL version 2 only
      ndb/ndbapi-examples/ndbapi_scan_example/ndbapi_scan.cpp:
        Changed header to GPL version 2 only
      ndb/ndbapi-examples/ndbapi_simple_example/ndbapi_simple.cpp:
        Changed header to GPL version 2 only
      ndb/ndbapi-examples/ndbapi_simple_index_example/ndbapi_simple_index.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/BlockNames.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/DebuggerNames.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/EventLogger.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/GrepError.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/SignalLoggerManager.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/AccLock.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/AlterIndx.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/AlterTab.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/AlterTable.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/AlterTrig.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/BackupImpl.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/BackupSignalData.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/CloseComReqConf.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/ContinueB.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/CopyGCI.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/CreateEvnt.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/CreateFragmentation.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/CreateIndx.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/CreateTrig.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/DictTabInfo.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/DihContinueB.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/DisconnectRep.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/DropIndx.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/DropTab.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/DropTrig.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/FailRep.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/FireTrigOrd.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/FsAppendReq.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/FsCloseReq.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/FsConf.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/FsOpenReq.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/FsRef.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/GCPSave.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/LCP.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/LqhFrag.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/LqhKey.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/LqhTrans.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/MasterLCP.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/NFCompleteRep.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/NdbSttor.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/PackedSignal.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/PrepDropTab.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/ScanFrag.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/ScanTab.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/SignalDataPrint.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/SignalNames.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/StartRec.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/SumaImpl.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/SystemError.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TcIndx.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TcKeyConf.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TcKeyRef.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TcKeyReq.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TcRollbackRep.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TupCommit.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TupKey.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/TuxMaint.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/UtilDelete.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/UtilExecute.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/UtilLock.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/UtilPrepare.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/debugger/signaldata/UtilSequence.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/ConsoleLogHandler.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/FileLogHandler.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/LogHandler.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/LogHandlerList.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/LogHandlerList.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/Logger.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/SysLogHandler.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/loggertest/LoggerUnitTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/logger/loggertest/LoggerUnitTest.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/mgmcommon/ConfigRetriever.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/mgmcommon/IPCConfig.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/mgmcommon/printConfig/printConfig.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbCondition.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbConfig.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbDaemon.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbEnv.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbHost.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbMem.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbMutex.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbPortLibTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbSleep.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbTCP.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbThread.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/NdbTick.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/memtest.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/mmslist.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/mmstest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/munmaptest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbCondition.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbConditionOSE.h:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbEnv.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbHost.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbMem.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbMem_SoftOse.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbMutex.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbOut.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbSleep.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbTCP.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbThread.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/ose/NdbTick.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbCondition.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbDaemon.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbEnv.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbHost.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbMem.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbMutex.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbSleep.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbTCP.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbThread.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/old_dirs/win32/NdbTick.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbCondition.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbDaemon.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbEnv.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbHost.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbMem.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbMutex.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbSleep.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbTCP.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbThread.c:
        Changed header to GPL version 2 only
      ndb/src/common/portlib/win32/NdbTick.c:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/OSE_Receiver.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/OSE_Receiver.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/OSE_Signals.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/OSE_Transporter.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/OSE_Transporter.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/Packer.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/Packer.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SCI_Transporter.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SCI_Transporter.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SHM_Buffer.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SHM_Transporter.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SHM_Transporter.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SHM_Transporter.unix.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SHM_Transporter.win32.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SendBuffer.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/SendBuffer.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/TCP_Transporter.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/TCP_Transporter.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/Transporter.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/Transporter.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/TransporterInternalDefinitions.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/TransporterRegistry.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/basictest/basicTransporterTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/buddy.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/buddy.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/failoverSCI/failoverSCI.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/perftest/perfTransporterTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/priotest/prioTransporterTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/transporter/priotest/prioTransporterTest.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/BaseString.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/File.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/InputStream.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/NdbErrHnd.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/NdbOut.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/NdbSqlUtil.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/OutputStream.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/Parser.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/Properties.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/SimpleProperties.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/SocketAuthenticator.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/SocketClient.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/SocketServer.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/basestring_vsnprintf.c:
        Changed header to GPL version 2 only
      ndb/src/common/util/filetest/FileUnitTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/filetest/FileUnitTest.hpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/md5_hash.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/ndb_init.c:
        Changed header to GPL version 2 only
      ndb/src/common/util/random.c:
        Changed header to GPL version 2 only
      ndb/src/common/util/socket_io.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/strdup.c:
        Changed header to GPL version 2 only
      ndb/src/common/util/testProperties/testProperties.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/testSimpleProperties/sp_test.cpp:
        Changed header to GPL version 2 only
      ndb/src/common/util/uucode.c:
        Changed header to GPL version 2 only
      ndb/src/common/util/version.c:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcc-win32/C++/CPC_GUI.h:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcc-win32/C++/NdbControls.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcc-win32/C++/StdAfx.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcc-win32/C++/StdAfx.h:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcc-win32/C++/TreeView.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcc-win32/C++/TreeView.h:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcc-win32/C++/resource.h:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/APIService.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/APIService.hpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/CPCD.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/CPCD.hpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/Monitor.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/Process.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/common.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/common.hpp:
        Changed header to GPL version 2 only
      ndb/src/cw/cpcd/main.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/test/socketclient/socketClientTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/util/ClientInterface.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/util/ClientInterface.hpp:
        Changed header to GPL version 2 only
      ndb/src/cw/util/SocketRegistry.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/util/SocketRegistry.hpp:
        Changed header to GPL version 2 only
      ndb/src/cw/util/SocketService.cpp:
        Changed header to GPL version 2 only
      ndb/src/cw/util/SocketService.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/SimBlockList.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/backup/Backup.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/backup/Backup.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/backup/BackupFormat.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/backup/BackupInit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/backup/FsBuffer.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/backup/read.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/mutexes.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/main.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdict/SchemaFile.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdih/DbdihInit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdih/Sysfile.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dblqh/redoLogReader/redoLogFileReader.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtc/DbtcInit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupLCP.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupSystemRestart.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtup/DbtupUndoLog.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/Dbtux.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbutil/DbUtil.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/dbutil/DbUtil.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/Filename.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/Filename.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/MemoryChannelOSE.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/Pool.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/ndbfs/VoidFs.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/qmgr/timer.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/suma/Suma.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/suma/Suma.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/suma/SumaInit.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/trix/Trix.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/blocks/trix/Trix.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/error/ErrorHandlingMacros.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/error/ErrorReporter.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/error/ErrorReporter.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/error/TimeModule.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/error/TimeModule.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/error/ndbd_exit_codes.c:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Array.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ArrayFifoList.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ArrayList.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ArrayPool.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/CArray.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Callback.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ClusterConfiguration.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ClusterConfiguration.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Configuration.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Configuration.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/DLFifoList.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/DLHashTable.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/DLHashTable2.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/DLList.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/DataBuffer.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Emulator.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Emulator.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/FastScheduler.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/FastScheduler.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/GlobalData.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/KeyDescriptor.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/KeyTable.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/KeyTable2.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/LongSignal.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/MetaData.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/MetaData.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Mutex.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Mutex.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/Prio.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/RequestTracker.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SLList.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SafeCounter.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SafeCounter.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SectionReader.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SectionReader.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SignalCounter.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SimBlockList.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SimplePropertiesSection.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SimulatedBlock.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SimulatedBlock.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SuperPool.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/SuperPool.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ThreadConfig.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ThreadConfig.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/TimeQueue.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/TimeQueue.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/TransporterCallback.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/VMSignal.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/VMSignal.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/WaitQueue.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/WatchDog.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/WatchDog.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/al_test/arrayListTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/al_test/arrayPoolTest.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/al_test/main.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ndbd_malloc.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/ndbd_malloc.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/pc.hpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/testCopy/rr.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/testCopy/testCopy.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/testLongSig/testLongSig.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp:
        Changed header to GPL version 2 only
      ndb/src/kernel/vm/testSuperPool.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/LocalConfig.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/LocalConfig.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/mgmapi.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/mgmapi_configuration.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/mgmapi_internal.h:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/ndb_logevent.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/ndb_logevent.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/test/keso.c:
        Changed header to GPL version 2 only
      ndb/src/mgmapi/test/mgmSrvApi.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmclient/CommandInterpreter.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmclient/main.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmclient/ndb_mgmclient.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmclient/ndb_mgmclient.h:
        Changed header to GPL version 2 only
      ndb/src/mgmclient/test_cpcd/test_cpcd.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/Config.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/Config.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/ConfigInfo.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/ConfigInfo.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/InitConfigFileParser.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/InitConfigFileParser.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/MgmtSrvr.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/MgmtSrvr.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/MgmtSrvrConfig.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/Services.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/Services.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/SignalQueue.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/SignalQueue.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/convertStrToInt.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/convertStrToInt.hpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/main.cpp:
        Changed header to GPL version 2 only
      ndb/src/mgmsrv/mkconfig/mkconfig.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/API.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/ClusterMgr.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/ClusterMgr.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/DictCache.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/DictCache.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/Ndb.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbApiSignal.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbApiSignal.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbBlob.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbBlobImpl.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbDictionary.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbDictionaryImpl.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbErrorOut.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbEventOperation.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbEventOperationImpl.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbEventOperationImpl.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbImpl.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbIndexOperation.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbLinHash.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbOperation.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbOperationDefine.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbOperationExec.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbOperationInt.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbOperationScan.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbOperationSearch.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbPool.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbPoolImpl.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbPoolImpl.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbRecAttr.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbReceiver.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbScanFilter.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbScanOperation.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbTransaction.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbTransactionScan.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbUtil.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbUtil.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/NdbWaiter.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/Ndberr.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/Ndbif.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/Ndbinit.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/Ndblist.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/ObjectMap.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/SignalSender.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/SignalSender.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/TransporterFacade.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/TransporterFacade.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/ndb_cluster_connection.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/ndb_cluster_connection_impl.hpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/ndberror.c:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/signal-sender/SignalSender.cpp:
        Changed header to GPL version 2 only
      ndb/src/ndbapi/signal-sender/SignalSender.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/CpcClient.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/HugoAsynchTransactions.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/HugoCalculator.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/HugoOperations.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/HugoTransactions.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_DataSet.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_DataSetTransaction.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_Error.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_Output.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_ResultRow.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_ReturnCodes.h:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_Stats.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_Table.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_Tables.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NDBT_Test.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbBackup.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbConfig.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbGrep.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbRestarter.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbRestarts.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbSchemaCon.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbSchemaOp.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbTest.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/NdbTimer.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/TestNdbEventOperation.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/UtilTransactions.hpp:
        Changed header to GPL version 2 only
      ndb/test/include/getarg.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/InsertRecs.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ScanFilter.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ScanFunctions.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ScanInterpretTest.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/TraceNdbApi.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/VerifyNdbApi.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/acid.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/acid2.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/adoInsertRecs.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/asyncGenerator.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/benchronja.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bulk_copy.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/cdrserver.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/celloDb.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/create_all_tabs.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/create_tab.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/drop_all_tabs.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/flexAsynch.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/flexBench.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/flexHammer.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/flexScan.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/flexTT.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/flexTimedAsynch.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/flex_bench_mysql.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/index.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/index2.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/initronja.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/interpreterInTup.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/mainAsyncGenerator.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/msa.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_async1.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_async2.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_user_populate.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_user_transaction.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_user_transaction2.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_user_transaction3.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_user_transaction4.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_user_transaction5.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/ndb_user_transaction6.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/restarter.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/restarter2.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/restarts.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/size.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testBackup.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testBasic.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testBasicAsynch.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testBlobs.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testDataBuffers.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testDeadlock.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testDict.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testGrepVerify.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testIndex.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testInterpreter.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testMgm.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testNdbApi.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testNodeRestart.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testOIBasic.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testOperations.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testOrderedIndex.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testPartitioning.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testReadPerf.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testRestartGci.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testSRBank.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testScan.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testScanInterpreter.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testScanPerf.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testSystemRestart.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/Bank.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/Bank.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/BankLoad.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/bankCreator.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/bankMakeGL.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/bankSumAccounts.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/bankTimer.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/bankTransactionMaker.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/bankValidateAllGLs.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bank/testBank.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/asyncGenerator.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/dbGenerator.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/dbPopulate.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/dbPopulate.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/macros.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/mainAsyncGenerator.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/mainPopulate.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_async1.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_async2.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_error.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_schema.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_user_transaction.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_user_transaction2.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_user_transaction3.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_user_transaction4.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_user_transaction5.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/ndb_user_transaction6.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/testData.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/testDefinitions.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/userInterface.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/bench/userInterface.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/acid2/TraceNdbApi.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/acid2/VerifyNdbApi.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/dbGenerator.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/testData.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/userInterface.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/macros.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/ndb_error.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/include/ndb_schema.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/include/testDefinitions.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/dbGenerator.c:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/dbGenerator.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/mainGenerator.c:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/include/testData.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/include/userInterface.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/dbPopulate.c:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/dbPopulate.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/mainPopulate.c:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/localDbPrepare.c:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/macros.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/ndb_error.hpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userHandle.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userInterface.c:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userHandle.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userInterface.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userTransaction.c:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testTimeout.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/testTransactions.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/test_event.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/test_event_merge.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/test_event_multi_table.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/userInterface.cpp:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userTransaction.c:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/vw_test/bcd.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/vw_test/utv.h:
        Changed header to GPL version 2 only
      ndb/test/ndbapi/old_dirs/vw_test/vcdrfunc.h:
        Changed header to GPL version 2 only
      ndb/test/newtonapi/basic_test/basic/basic.cpp:
        Changed header to GPL version 2 only
      ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp:
        Changed header to GPL version 2 only
      ndb/test/newtonapi/basic_test/common.cpp:
        Changed header to GPL version 2 only
      ndb/test/newtonapi/basic_test/common.hpp:
        Changed header to GPL version 2 only
      ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp:
        Changed header to GPL version 2 only
      ndb/test/newtonapi/basic_test/too_basic.cpp:
        Changed header to GPL version 2 only
      ndb/test/newtonapi/perf_test/perf.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/SQL99_test/SQL99_test.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/SQL99_test/SQL99_test.h:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/NDBT_SQLConnect.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/NDBT_SQLPrepare.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLAllocEnvTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLAllocHandleTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLBindColTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLBindParameterTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLCancelTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLCloseCursorTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLColAttributeTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLColAttributeTest1.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLColAttributeTest2.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLColAttributeTest3.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLConnectTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLCopyDescTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLDescribeColTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLDisconnectTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLDriverConnectTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLEndTranTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLErrorTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLExecDirectTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLExecuteTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLFetchScrollTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLFetchTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLFreeHandleTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLFreeStmtTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetConnectAttrTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetCursorNameTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetDataTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetDescFieldTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetDescRecTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetDiagFieldTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetDiagRecTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetEnvAttrTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetFunctionsTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetInfoTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetStmtAttrTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLGetTypeInfoTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLMoreResultsTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLNumResultColsTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLParamDataTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLPrepareTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLPutDataTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLRowCountTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLSetConnectAttrTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLSetCursorNameTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLSetDescFieldTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLSetDescRecTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLSetEnvAttrTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLSetStmtAttrTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLTablesTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/SQLTransactTest.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/common.hpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/client/main.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/driver/testOdbcDriver.cpp:
        Changed header to GPL version 2 only
      ndb/test/odbc/test_compiler/test_compiler.cpp:
        Changed header to GPL version 2 only
      ndb/test/run-test/main.cpp:
        Changed header to GPL version 2 only
      ndb/test/run-test/run-test.hpp:
        Changed header to GPL version 2 only
      ndb/test/src/CpcClient.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/HugoAsynchTransactions.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/HugoCalculator.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/HugoOperations.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/HugoTransactions.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NDBT_Error.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NDBT_Output.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NDBT_ResultRow.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NDBT_ReturnCodes.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NDBT_Table.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NDBT_Tables.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NDBT_Test.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NdbBackup.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NdbConfig.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NdbGrep.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NdbRestarter.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NdbRestarts.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NdbSchemaCon.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/NdbSchemaOp.cpp:
        Changed header to GPL version 2 only
      ndb/test/src/UtilTransactions.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/copy_tab.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/cpcc.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/create_index.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoCalculator.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoFill.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoLoad.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoLockRecords.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoPkDelete.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoPkRead.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoPkReadRecord.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoPkUpdate.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoScanRead.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/hugoScanUpdate.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/old_dirs/waiter/waiter.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/restart.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/transproxy.cpp:
        Changed header to GPL version 2 only
      ndb/test/tools/verify_index.cpp:
        Changed header to GPL version 2 only
      ndb/tools/delete_all.cpp:
        Changed header to GPL version 2 only
      ndb/tools/desc.cpp:
        Changed header to GPL version 2 only
      ndb/tools/drop_index.cpp:
        Changed header to GPL version 2 only
      ndb/tools/drop_tab.cpp:
        Changed header to GPL version 2 only
      ndb/tools/listTables.cpp:
        Changed header to GPL version 2 only
      ndb/tools/ndb_config.cpp:
        Changed header to GPL version 2 only
      ndb/tools/ndb_test_platform.cpp:
        Changed header to GPL version 2 only
      ndb/tools/ndbsql.cpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/Restore.cpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/Restore.hpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/consumer.cpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/consumer.hpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/consumer_printer.cpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/consumer_printer.hpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/consumer_restore.cpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/consumer_restore.hpp:
        Changed header to GPL version 2 only
      ndb/tools/select_all.cpp:
        Changed header to GPL version 2 only
      ndb/tools/select_count.cpp:
        Changed header to GPL version 2 only
      ndb/tools/waiter.cpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/consumer_restorem.cpp:
        Changed header to GPL version 2 only
      ndb/tools/restore/restore_main.cpp:
        Changed header to GPL version 2 only
      netware/mysql_fix_privilege_tables.pl:
        Changed header to GPL version 2 only
      netware/mysql_secure_installation.pl:
        Changed header to GPL version 2 only
      os2/Makefile.am:
        Changed header to GPL version 2 only
      os2/include/Makefile.am:
        Changed header to GPL version 2 only
      os2/include/sys/Makefile.am:
        Changed header to GPL version 2 only
      pstack/Makefile.am:
        Changed header to GPL version 2 only
      regex/Makefile.am:
        Changed header to GPL version 2 only
      scripts/Makefile.am:
        Changed header to GPL version 2 only
      scripts/fill_help_tables.sh:
        Changed header to GPL version 2 only
      scripts/mysql_config.sh:
        Changed header to GPL version 2 only
      scripts/mysql_secure_installation.sh:
        Changed header to GPL version 2 only
      server-tools/instance-manager/Makefile.am:
        Changed header to GPL version 2 only
      server-tools/instance-manager/buffer.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/buffer.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/command.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/command.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/commands.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/commands.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/guardian.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/guardian.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/instance.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/instance.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/instance_map.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/instance_map.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/instance_options.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/instance_options.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/listener.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/listener.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/log.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/log.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/manager.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/manager.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/messages.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/messages.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/mysql_connection.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/mysql_connection.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/mysql_manager_error.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/mysqlmanager.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/options.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/options.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/parse.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/parse.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/parse_output.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/parse_output.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/priv.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/priv.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/protocol.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/protocol.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/thread_registry.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/thread_registry.h:
        Changed header to GPL version 2 only
      server-tools/instance-manager/user_map.cc:
        Changed header to GPL version 2 only
      server-tools/instance-manager/user_map.h:
        Changed header to GPL version 2 only
      sql/Makefile.am:
        Changed header to GPL version 2 only
      sql/client_settings.h:
        Changed header to GPL version 2 only
      sql/custom_conf.h:
        Changed header to GPL version 2 only
      sql/derror.cc:
        Changed header to GPL version 2 only
      sql/des_key_file.cc:
        Changed header to GPL version 2 only
      sql/discover.cc:
        Changed header to GPL version 2 only
      sql/field.cc:
        Changed header to GPL version 2 only
      sql/field.h:
        Changed header to GPL version 2 only
      sql/field_conv.cc:
        Changed header to GPL version 2 only
      sql/filesort.cc:
        Changed header to GPL version 2 only
      sql/frm_crypt.cc:
        Changed header to GPL version 2 only
      sql/gen_lex_hash.cc:
        Changed header to GPL version 2 only
      sql/gstream.cc:
        Changed header to GPL version 2 only
      sql/gstream.h:
        Changed header to GPL version 2 only
      sql/ha_archive.cc:
        Changed header to GPL version 2 only
      sql/ha_archive.h:
        Changed header to GPL version 2 only
      sql/ha_berkeley.cc:
        Changed header to GPL version 2 only
      sql/ha_berkeley.h:
        Changed header to GPL version 2 only
      sql/ha_blackhole.cc:
        Changed header to GPL version 2 only
      sql/ha_blackhole.h:
        Changed header to GPL version 2 only
      sql/ha_federated.cc:
        Changed header to GPL version 2 only
      sql/ha_federated.h:
        Changed header to GPL version 2 only
      sql/ha_heap.cc:
        Changed header to GPL version 2 only
      sql/ha_heap.h:
        Changed header to GPL version 2 only
      sql/ha_innodb.cc:
        Changed header to GPL version 2 only
      sql/ha_innodb.h:
        Changed header to GPL version 2 only
      sql/ha_myisam.cc:
        Changed header to GPL version 2 only
      sql/ha_myisam.h:
        Changed header to GPL version 2 only
      sql/ha_myisammrg.cc:
        Changed header to GPL version 2 only
      sql/ha_myisammrg.h:
        Changed header to GPL version 2 only
      sql/ha_ndbcluster.cc:
        Changed header to GPL version 2 only
      sql/ha_ndbcluster.h:
        Changed header to GPL version 2 only
      sql/handler.cc:
        Changed header to GPL version 2 only
      sql/handler.h:
        Changed header to GPL version 2 only
      sql/hash_filo.cc:
        Changed header to GPL version 2 only
      sql/hash_filo.h:
        Changed header to GPL version 2 only
      sql/hostname.cc:
        Changed header to GPL version 2 only
      sql/init.cc:
        Changed header to GPL version 2 only
      sql/item.cc:
        Changed header to GPL version 2 only
      sql/item.h:
        Changed header to GPL version 2 only
      sql/item_buff.cc:
        Changed header to GPL version 2 only
      sql/item_cmpfunc.cc:
        Changed header to GPL version 2 only
      sql/item_cmpfunc.h:
        Changed header to GPL version 2 only
      sql/item_create.cc:
        Changed header to GPL version 2 only
      sql/item_create.h:
        Changed header to GPL version 2 only
      sql/item_func.cc:
        Changed header to GPL version 2 only
      sql/item_func.h:
        Changed header to GPL version 2 only
      sql/item_geofunc.cc:
        Changed header to GPL version 2 only
      sql/item_geofunc.h:
        Changed header to GPL version 2 only
      sql/item_row.cc:
        Changed header to GPL version 2 only
      sql/item_row.h:
        Changed header to GPL version 2 only
      sql/item_strfunc.cc:
        Changed header to GPL version 2 only
      sql/item_strfunc.h:
        Changed header to GPL version 2 only
      sql/item_subselect.cc:
        Changed header to GPL version 2 only
      sql/item_subselect.h:
        Changed header to GPL version 2 only
      sql/item_sum.cc:
        Changed header to GPL version 2 only
      sql/item_sum.h:
        Changed header to GPL version 2 only
      sql/item_timefunc.cc:
        Changed header to GPL version 2 only
      sql/item_timefunc.h:
        Changed header to GPL version 2 only
      sql/item_uniq.cc:
        Changed header to GPL version 2 only
      sql/item_uniq.h:
        Changed header to GPL version 2 only
      sql/key.cc:
        Changed header to GPL version 2 only
      sql/lex.h:
        Changed header to GPL version 2 only
      sql/lex_symbol.h:
        Changed header to GPL version 2 only
      sql/lock.cc:
        Changed header to GPL version 2 only
      sql/log.cc:
        Changed header to GPL version 2 only
      sql/log_event.cc:
        Changed header to GPL version 2 only
      sql/log_event.h:
        Changed header to GPL version 2 only
      sql/matherr.c:
        Changed header to GPL version 2 only
      sql/mf_iocache.cc:
        Changed header to GPL version 2 only
      sql/my_decimal.cc:
        Changed header to GPL version 2 only
      sql/my_decimal.h:
        Changed header to GPL version 2 only
      sql/my_lock.c:
        Changed header to GPL version 2 only
      sql/mysql_priv.h:
        Changed header to GPL version 2 only
      sql/mysqld.cc:
        Changed header to GPL version 2 only
      sql/mysqld_suffix.h:
        Changed header to GPL version 2 only
      sql/net_serv.cc:
        Changed header to GPL version 2 only
      sql/opt_range.cc:
        Changed header to GPL version 2 only
      sql/opt_range.h:
        Changed header to GPL version 2 only
      sql/opt_sum.cc:
        Changed header to GPL version 2 only
      sql/parse_file.cc:
        Changed header to GPL version 2 only
      sql/parse_file.h:
        Changed header to GPL version 2 only
      sql/password.c:
        Changed header to GPL version 2 only
      sql/procedure.cc:
        Changed header to GPL version 2 only
      sql/procedure.h:
        Changed header to GPL version 2 only
      sql/protocol.cc:
        Changed header to GPL version 2 only
      sql/protocol.h:
        Changed header to GPL version 2 only
      sql/records.cc:
        Changed header to GPL version 2 only
      sql/repl_failsafe.cc:
        Changed header to GPL version 2 only
      sql/repl_failsafe.h:
        Changed header to GPL version 2 only
      sql/set_var.cc:
        Changed header to GPL version 2 only
      sql/set_var.h:
        Changed header to GPL version 2 only
      sql/slave.cc:
        Changed header to GPL version 2 only
      sql/slave.h:
        Changed header to GPL version 2 only
      sql/sp.cc:
        Changed header to GPL version 2 only
      sql/sp.h:
        Changed header to GPL version 2 only
      sql/sp_cache.cc:
        Changed header to GPL version 2 only
      sql/sp_cache.h:
        Changed header to GPL version 2 only
      sql/sp_head.cc:
        Changed header to GPL version 2 only
      sql/sp_head.h:
        Changed header to GPL version 2 only
      sql/sp_pcontext.cc:
        Changed header to GPL version 2 only
      sql/sp_pcontext.h:
        Changed header to GPL version 2 only
      sql/sp_rcontext.cc:
        Changed header to GPL version 2 only
      sql/sp_rcontext.h:
        Changed header to GPL version 2 only
      sql/spatial.cc:
        Changed header to GPL version 2 only
      sql/spatial.h:
        Changed header to GPL version 2 only
      sql/sql_acl.cc:
        Changed header to GPL version 2 only
      sql/sql_acl.h:
        Changed header to GPL version 2 only
      sql/sql_analyse.cc:
        Changed header to GPL version 2 only
      sql/sql_analyse.h:
        Changed header to GPL version 2 only
      sql/sql_array.h:
        Changed header to GPL version 2 only
      sql/sql_base.cc:
        Changed header to GPL version 2 only
      sql/sql_bitmap.h:
        Changed header to GPL version 2 only
      sql/sql_cache.cc:
        Changed header to GPL version 2 only
      sql/sql_cache.h:
        Changed header to GPL version 2 only
      sql/sql_class.cc:
        Changed header to GPL version 2 only
      sql/sql_class.h:
        Changed header to GPL version 2 only
      sql/sql_client.cc:
        Changed header to GPL version 2 only
      sql/sql_crypt.cc:
        Changed header to GPL version 2 only
      sql/sql_crypt.h:
        Changed header to GPL version 2 only
      sql/sql_cursor.cc:
        Changed header to GPL version 2 only
      sql/sql_cursor.h:
        Changed header to GPL version 2 only
      sql/sql_db.cc:
        Changed header to GPL version 2 only
      sql/sql_delete.cc:
        Changed header to GPL version 2 only
      sql/sql_derived.cc:
        Changed header to GPL version 2 only
      sql/sql_do.cc:
        Changed header to GPL version 2 only
      sql/sql_error.cc:
        Changed header to GPL version 2 only
      sql/sql_error.h:
        Changed header to GPL version 2 only
      sql/sql_handler.cc:
        Changed header to GPL version 2 only
      sql/sql_help.cc:
        Changed header to GPL version 2 only
      sql/sql_insert.cc:
        Changed header to GPL version 2 only
      sql/sql_lex.cc:
        Changed header to GPL version 2 only
      sql/sql_lex.h:
        Changed header to GPL version 2 only
      sql/sql_list.cc:
        Changed header to GPL version 2 only
      sql/sql_list.h:
        Changed header to GPL version 2 only
      sql/sql_load.cc:
        Changed header to GPL version 2 only
      sql/sql_locale.cc:
        Changed header to GPL version 2 only
      sql/sql_manager.cc:
        Changed header to GPL version 2 only
      sql/sql_manager.h:
        Changed header to GPL version 2 only
      sql/sql_map.cc:
        Changed header to GPL version 2 only
      sql/sql_map.h:
        Changed header to GPL version 2 only
      sql/sql_olap.cc:
        Changed header to GPL version 2 only
      sql/sql_parse.cc:
        Changed header to GPL version 2 only
      sql/sql_prepare.cc:
        Changed header to GPL version 2 only
      sql/sql_rename.cc:
        Changed header to GPL version 2 only
      sql/sql_repl.cc:
        Changed header to GPL version 2 only
      sql/sql_repl.h:
        Changed header to GPL version 2 only
      sql/sql_select.cc:
        Changed header to GPL version 2 only
      sql/sql_select.h:
        Changed header to GPL version 2 only
      sql/sql_show.cc:
        Changed header to GPL version 2 only
      sql/sql_sort.h:
        Changed header to GPL version 2 only
      sql/sql_state.c:
        Changed header to GPL version 2 only
      sql/sql_string.cc:
        Changed header to GPL version 2 only
      sql/sql_string.h:
        Changed header to GPL version 2 only
      sql/sql_table.cc:
        Changed header to GPL version 2 only
      sql/sql_test.cc:
        Changed header to GPL version 2 only
      sql/sql_trigger.cc:
        Changed header to GPL version 2 only
      sql/sql_trigger.h:
        Changed header to GPL version 2 only
      sql/sql_udf.cc:
        Changed header to GPL version 2 only
      sql/sql_udf.h:
        Changed header to GPL version 2 only
      sql/sql_union.cc:
        Changed header to GPL version 2 only
      sql/sql_update.cc:
        Changed header to GPL version 2 only
      sql-bench/Makefile.am:
        Changed header to GPL version 2 only
      sql-bench/as3ap.sh:
        Changed header to GPL version 2 only
      sql-bench/bench-count-distinct.sh:
        Changed header to GPL version 2 only
      sql-bench/bench-init.pl.sh:
        Changed header to GPL version 2 only
      sql-bench/compare-results.sh:
        Changed header to GPL version 2 only
      sql-bench/copy-db.sh:
        Changed header to GPL version 2 only
      sql-bench/crash-me.sh:
        Changed header to GPL version 2 only
      sql-bench/print-limit-table:
        Changed header to GPL version 2 only
      sql-bench/run-all-tests.sh:
        Changed header to GPL version 2 only
      sql/examples/ha_example.cc:
        Changed header to GPL version 2 only
      sql/examples/ha_example.h:
        Changed header to GPL version 2 only
      sql/examples/ha_tina.cc:
        Changed header to GPL version 2 only
      sql/examples/ha_tina.h:
        Changed header to GPL version 2 only
      sql/share/Makefile.am:
        Changed header to GPL version 2 only
      sql/share/charsets/Index.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/armscii8.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/ascii.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/cp1250.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/cp1251.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/cp1256.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/cp1257.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/cp850.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/cp852.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/cp866.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/dec8.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/geostd8.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/greek.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/hebrew.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/hp8.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/keybcs2.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/koi8r.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/koi8u.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/latin1.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/latin2.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/latin5.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/latin7.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/macce.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/macroman.xml:
        Changed header to GPL version 2 only
      sql/share/charsets/swe7.xml:
        Changed header to GPL version 2 only
      sql/sql_view.cc:
        Changed header to GPL version 2 only
      sql/sql_view.h:
        Changed header to GPL version 2 only
      sql/sql_yacc.yy:
        Changed header to GPL version 2 only
      sql/stacktrace.c:
        Changed header to GPL version 2 only
      sql/stacktrace.h:
        Changed header to GPL version 2 only
      sql/strfunc.cc:
        Changed header to GPL version 2 only
      sql/structs.h:
        Changed header to GPL version 2 only
      sql/table.cc:
        Changed header to GPL version 2 only
      sql/table.h:
        Changed header to GPL version 2 only
      sql/thr_malloc.cc:
        Changed header to GPL version 2 only
      sql/time.cc:
        Changed header to GPL version 2 only
      sql/tzfile.h:
        Changed header to GPL version 2 only
      sql/tztime.cc:
        Changed header to GPL version 2 only
      sql/tztime.h:
        Changed header to GPL version 2 only
      sql/udf_example.c:
        Changed header to GPL version 2 only
      sql/uniques.cc:
        Changed header to GPL version 2 only
      sql/unireg.cc:
        Changed header to GPL version 2 only
      sql/unireg.h:
        Changed header to GPL version 2 only
      sql-bench/server-cfg.sh:
        Changed header to GPL version 2 only
      sql-bench/test-ATIS.sh:
        Changed header to GPL version 2 only
      sql-bench/test-alter-table.sh:
        Changed header to GPL version 2 only
      sql-bench/test-big-tables.sh:
        Changed header to GPL version 2 only
      sql-bench/test-connect.sh:
        Changed header to GPL version 2 only
      sql-bench/test-create.sh:
        Changed header to GPL version 2 only
      sql-bench/test-insert.sh:
        Changed header to GPL version 2 only
      sql-bench/test-select.sh:
        Changed header to GPL version 2 only
      sql-bench/test-transactions.sh:
        Changed header to GPL version 2 only
      sql-bench/test-wisconsin.sh:
        Changed header to GPL version 2 only
      sql-common/Makefile.am:
        Changed header to GPL version 2 only
      sql-common/client.c:
        Changed header to GPL version 2 only
      sql-common/my_time.c:
        Changed header to GPL version 2 only
      sql-common/my_user.c:
        Changed header to GPL version 2 only
      sql-common/pack.c:
        Changed header to GPL version 2 only
      strings/Makefile.am:
        Changed header to GPL version 2 only
      strings/bchange.c:
        Changed header to GPL version 2 only
      strings/bcmp.c:
        Changed header to GPL version 2 only
      strings/bcopy-duff.c:
        Changed header to GPL version 2 only
      strings/bfill.c:
        Changed header to GPL version 2 only
      strings/bmove.c:
        Changed header to GPL version 2 only
      strings/bmove512.c:
        Changed header to GPL version 2 only
      strings/bmove_upp-sparc.s:
        Changed header to GPL version 2 only
      strings/bmove_upp.c:
        Changed header to GPL version 2 only
      strings/bzero.c:
        Changed header to GPL version 2 only
      strings/conf_to_src.c:
        Changed header to GPL version 2 only
      strings/ctype-big5.c:
        Changed header to GPL version 2 only
      strings/ctype-bin.c:
        Changed header to GPL version 2 only
      strings/ctype-cp932.c:
        Changed header to GPL version 2 only
      strings/ctype-czech.c:
        Changed header to GPL version 2 only
      strings/ctype-euc_kr.c:
        Changed header to GPL version 2 only
      strings/ctype-eucjpms.c:
        Changed header to GPL version 2 only
      strings/ctype-gb2312.c:
        Changed header to GPL version 2 only
      strings/ctype-gbk.c:
        Changed header to GPL version 2 only
      strings/ctype-latin1.c:
        Changed header to GPL version 2 only
      strings/ctype-mb.c:
        Changed header to GPL version 2 only
      strings/ctype-simple.c:
        Changed header to GPL version 2 only
      strings/ctype-sjis.c:
        Changed header to GPL version 2 only
      strings/ctype-tis620.c:
        Changed header to GPL version 2 only
      strings/ctype-uca.c:
        Changed header to GPL version 2 only
      strings/ctype-ucs2.c:
        Changed header to GPL version 2 only
      strings/ctype-ujis.c:
        Changed header to GPL version 2 only
      strings/ctype-utf8.c:
        Changed header to GPL version 2 only
      strings/ctype-win1250ch.c:
        Changed header to GPL version 2 only
      strings/ctype.c:
        Changed header to GPL version 2 only
      strings/decimal.c:
        Changed header to GPL version 2 only
      strings/do_ctype.c:
        Changed header to GPL version 2 only
      strings/int2str.c:
        Changed header to GPL version 2 only
      strings/is_prefix.c:
        Changed header to GPL version 2 only
      strings/llstr.c:
        Changed header to GPL version 2 only
      strings/longlong2str-x86.s:
        Changed header to GPL version 2 only
      strings/longlong2str.c:
        Changed header to GPL version 2 only
      strings/longlong2str_asm.c:
        Changed header to GPL version 2 only
      strings/macros.asm:
        Changed header to GPL version 2 only
      strings/memcmp.c:
        Changed header to GPL version 2 only
      strings/memcpy.c:
        Changed header to GPL version 2 only
      strings/memset.c:
        Changed header to GPL version 2 only
      strings/my_strtoll10-x86.s:
        Changed header to GPL version 2 only
      strings/my_strtoll10.c:
        Changed header to GPL version 2 only
      strings/my_vsnprintf.c:
        Changed header to GPL version 2 only
      strings/ptr_cmp.asm:
        Changed header to GPL version 2 only
      strings/r_strinstr.c:
        Changed header to GPL version 2 only
      strings/str2int.c:
        Changed header to GPL version 2 only
      strings/str_alloc.c:
        Changed header to GPL version 2 only
      strings/str_test.c:
        Changed header to GPL version 2 only
      strings/strappend-sparc.s:
        Changed header to GPL version 2 only
      strings/strappend.c:
        Changed header to GPL version 2 only
      strings/strcat.c:
        Changed header to GPL version 2 only
      strings/strcend.c:
        Changed header to GPL version 2 only
      strings/strchr.c:
        Changed header to GPL version 2 only
      strings/strcmp.c:
        Changed header to GPL version 2 only
      strings/strcont.c:
        Changed header to GPL version 2 only
      strings/strend-sparc.s:
        Changed header to GPL version 2 only
      strings/strend.c:
        Changed header to GPL version 2 only
      strings/strfill.c:
        Changed header to GPL version 2 only
      strings/strings-not-used.h:
        Changed header to GPL version 2 only
      strings/strings-x86.s:
        Changed header to GPL version 2 only
      strings/strings.asm:
        Changed header to GPL version 2 only
      strings/strinstr-sparc.s:
        Changed header to GPL version 2 only
      strings/strinstr.c:
        Changed header to GPL version 2 only
      strings/strlen.c:
        Changed header to GPL version 2 only
      strings/strmake-sparc.s:
        Changed header to GPL version 2 only
      strings/strmake.c:
        Changed header to GPL version 2 only
      strings/strmov-sparc.s:
        Changed header to GPL version 2 only
      strings/strmov.c:
        Changed header to GPL version 2 only
      strings/strnlen.c:
        Changed header to GPL version 2 only
      strings/strnmov-sparc.s:
        Changed header to GPL version 2 only
      strings/strnmov.c:
        Changed header to GPL version 2 only
      strings/strrchr.c:
        Changed header to GPL version 2 only
      strings/strstr-sparc.s:
        Changed header to GPL version 2 only
      strings/strstr.c:
        Changed header to GPL version 2 only
      strings/strto.c:
        Changed header to GPL version 2 only
      strings/strtol.c:
        Changed header to GPL version 2 only
      strings/strtoll.c:
        Changed header to GPL version 2 only
      strings/strtoul.c:
        Changed header to GPL version 2 only
      strings/strtoull.c:
        Changed header to GPL version 2 only
      strings/strxmov-sparc.s:
        Changed header to GPL version 2 only
      strings/strxmov.asm:
        Changed header to GPL version 2 only
      strings/strxmov.c:
        Changed header to GPL version 2 only
      strings/strxnmov.c:
        Changed header to GPL version 2 only
      strings/t_ctype.h:
        Changed header to GPL version 2 only
      strings/udiv.c:
        Changed header to GPL version 2 only
      strings/xml.c:
        Changed header to GPL version 2 only
      support-files/MacOSX/Makefile.am:
        Changed header to GPL version 2 only
      support-files/Makefile.am:
        Changed header to GPL version 2 only
      support-files/MySQL-shared-compat.spec.sh:
        Changed header to GPL version 2 only
      tests/Makefile.am:
        Changed header to GPL version 2 only
      tests/connect_test.c:
        Changed header to GPL version 2 only
      tests/deadlock_test.c:
        Changed header to GPL version 2 only
      tests/insert_test.c:
        Changed header to GPL version 2 only
      tests/list_test.c:
        Changed header to GPL version 2 only
      tests/mysql_client_test.c:
        Changed header to GPL version 2 only
      tests/select_test.c:
        Changed header to GPL version 2 only
      tests/showdb_test.c:
        Changed header to GPL version 2 only
      tests/ssl_test.c:
        Changed header to GPL version 2 only
      tests/thread_test.c:
        Changed header to GPL version 2 only
      tools/Makefile.am:
        Changed header to GPL version 2 only
      tools/mysqlmanager.c:
        Changed header to GPL version 2 only
      vio/Makefile.am:
        Changed header to GPL version 2 only
      vio/test-ssl.c:
        Changed header to GPL version 2 only
      vio/test-sslclient.c:
        Changed header to GPL version 2 only
      vio/test-sslserver.c:
        Changed header to GPL version 2 only
      vio/vio.c:
        Changed header to GPL version 2 only
      vio/vio_priv.h:
        Changed header to GPL version 2 only
      vio/viosocket.c:
        Changed header to GPL version 2 only
      vio/viossl.c:
        Changed header to GPL version 2 only
      vio/viosslfactories.c:
        Changed header to GPL version 2 only
      vio/viotest-ssl.c:
        Changed header to GPL version 2 only
      win/Makefile.am:
        Changed header to GPL version 2 only
      zlib/Makefile.am:
        Changed header to GPL version 2 only
      2d27fea5