1. 14 Jun, 2007 2 commits
    • unknown's avatar
      This the 4-th patch in scope of CS patch (BUG#11986). · 83de46bc
      unknown authored
      The patch contains the following changes:
        - Introduce auxilary functions to convenient work with character sets:
          - resolve_charset();
          - resolve_collation();
          - get_default_db_collation();
        - Introduce lex_string_set();
        - Refactor Table_trigger_list::process_triggers() &
          sp_head::execute_trigger() to be consistent with other code;
        - Move reusable code from add_table_for_trigger() into
          build_trn_path(), check_trn_exists() and load_table_name_for_trigger()
          to be used in the following patch.
        - Rename triggers_file_ext and trigname_file_ext into TRN_EXT and
          TRG_EXT respectively.
      
      
      include/my_sys.h:
        Introduced auxilary functions (to be used in the following patch).
      mysys/charset.c:
        Introduced auxilary functions (to be used in the following patch).
      sql/handler.cc:
        Rename triggers_file_ext -> TRG_EXT;
        Rename trigname_file_ext -> TRN_EXT.
      sql/mysql_priv.h:
        1. Fix typo;
        2. Introduce auxilary functions (set_lex_string() will  be used
           in the following patch);
        3. Rename triggers_file_ext -> TRG_EXT;
           Rename trigname_file_ext -> TRN_EXT.
      sql/sp_head.cc:
        Make sp_head::execute_trigger() consistent with
        sp_head::execute_function() and sp_head::execute_procedure().
      sql/sp_head.h:
        Make sp_head::execute_trigger() consistent with
        sp_head::execute_function() and sp_head::execute_procedure().
      sql/sql_db.cc:
        1. Introduce auxilary function.
        2. Polishing.
      sql/sql_trigger.cc:
        1. Move common code from add_table_for_trigger() into
           - build_trn_path();
           - check_trn_exists();
           - load_table_name_for_trigger();
        2. Polishing.
      sql/sql_trigger.h:
        1. Move common code from add_table_for_trigger() into
           - build_trn_path();
           - check_trn_exists();
           - load_table_name_for_trigger();
        2. Polishing.
      83de46bc
    • unknown's avatar
      The second cleanup patch in scope of BUG#11986. · efaaeeca
      unknown authored
      1. Introduce parse_sql() as a high-level replacement for MYSQLparse().
      parse_sql() is responsible to switch and restore "parser context"
      (THD::m_lip for now).
      
      2. Fix typo in sp.cc: THD::spcont should be reset *before* calling
      the parser.
      
      
      sql/event_data_objects.cc:
        Use parse_sql() instead of MYSQLparse().
      sql/mysql_priv.h:
        Introduce parse_sql() instead of auto-generated MYSQLparse.
      sql/sp.cc:
        1. Use parse_sql() instead of MYSQLparse().
        2. THD::spcont should be reset before calling the parser.
      sql/sql_class.cc:
        Reset THD::m_lip.
      sql/sql_parse.cc:
        1. Introduce parse_sql() instead of auto-generated MYSQLparse().
        2. Backup, switch and restore THD::m_lip inside parse_sql().
        3. Use parse_sql() instead of MYSQLparse().
      sql/sql_partition.cc:
        Use parse_sql() instead of MYSQLparse().
      sql/sql_prepare.cc:
        Use parse_sql() instead of MYSQLparse().
      sql/sql_trigger.cc:
        Use parse_sql() instead of MYSQLparse().
      sql/sql_view.cc:
        Use parse_sql() instead of MYSQLparse().
      efaaeeca
  2. 12 Jun, 2007 1 commit
    • unknown's avatar
      Bug#25411 (trigger code truncated), PART II · f09496c8
      unknown authored
      Bug 28127 (Some valid identifiers names are not parsed correctly)
      Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
      
      This patch is the second part of a major cleanup, required to fix
      Bug 25411 (trigger code truncated).
      
      The root cause of the issue stems from the function skip_rear_comments,
      which was a work around to remove "extra" "*/" characters from the query
      text, when parsing a query and reusing the text fragments to represent a
      view, trigger, function or stored procedure.
      The reason for this work around is that "special comments",
      like /*!50002 XXX */, were not parsed properly, so that a query like:
        AAA /*!50002 BBB */ CCC
      would be seen by the parser as "AAA BBB */ CCC" when the current version
      is greater or equal to 5.0.2
      
      The root cause of this stems from how special comments are parsed.
      Special comments are really out-of-bound text that appear inside a query,
      that affects how the parser behave.
      In nature, /*!50002 XXX */ in MySQL is similar to the C concept
      of preprocessing :
        #if VERSION >= 50002
        XXX
        #endif
      
      Depending on the current VERSION of the server, either the special comment
      should be expanded or it should be ignored, but in all cases the "text" of
      the query should be re-written to strip the "/*!50002" and "*/" markers,
      which does not belong to the SQL language itself.
      
      Prior to this fix, these markers would leak into :
      - the storage format for VIEW,
      - the storage format for FUNCTION,
      - the storage format for FUNCTION parameters, in mysql.proc (param_list),
      - the storage format for PROCEDURE,
      - the storage format for PROCEDURE parameters, in mysql.proc (param_list),
      - the storage format for TRIGGER,
      - the binary log used for replication.
      
      In all cases, not only this cause format corruption, but also provide a vector
      for dormant security issues, by allowing to tunnel code that will be activated
      after an upgrade.
      
      The proper solution is to deal with special comments strictly during parsing,
      when accepting a query from the outside world.
      Once a query is parsed and an object is created with a persistant
      representation, this object should not arbitrarily mutate after an upgrade.
      In short, special comments are a useful but limited feature for MYSQLdump,
      when used at an *interface* level to facilitate import/export,
      but bloating the server *internal* storage format is *not* the proper way
      to deal with configuration management of the user logic.
      
      With this fix:
      - the Lex_input_stream class now acts as a comment pre-processor,
      and either expands or ignore special comments on the fly.
      - MYSQLlex and sql_yacc.yy have been cleaned up to strictly use the
      public interface of Lex_input_stream. In particular, how the input stream
      accepts or rejects a character is private to Lex_input_stream, and the
      internal buffer pointers of that class are strictly private, and should not
      be tempered with during parsing.
      
      This caused many changes mostly in sql_lex.cc.
      
      During the code cleanup in case MY_LEX_NUMBER_IDENT,
      Bug 28127 (Some valid identifiers names are not parsed correctly)
      was found and fixed.
      
      By parsing special comments properly, and removing the function
      'skip_rear_comments' [sic],
      Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
      has been fixed as well.
      
      
      sql/event_data_objects.cc:
        Cleanup of the code that extracts the query text
      sql/sp.cc:
        Cleanup of the code that extracts the query text
      sql/sp_head.cc:
        Cleanup of the code that extracts the query text
      sql/sql_trigger.cc:
        Cleanup of the code that extracts the query text
      sql/sql_view.cc:
        Cleanup of the code that extracts the query text
      mysql-test/r/comments.result:
        Bug#25411 (trigger code truncated)
      mysql-test/r/sp.result:
        Bug#25411 (trigger code truncated)
        Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
      mysql-test/r/trigger.result:
        Bug#25411 (trigger code truncated)
      mysql-test/r/varbinary.result:
        Bug 28127 (Some valid identifiers names are not parsed correctly)
      mysql-test/t/comments.test:
        Bug#25411 (trigger code truncated)
      mysql-test/t/sp.test:
        Bug#25411 (trigger code truncated)
        Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
      mysql-test/t/trigger.test:
        Bug#25411 (trigger code truncated)
      mysql-test/t/varbinary.test:
        Bug 28127 (Some valid identifiers names are not parsed correctly)
      sql/sql_lex.cc:
        Implemented comment pre-processing in Lex_input_stream,
        major cleanup of the lex/yacc code to not use Lex_input_stream private members.
      sql/sql_lex.h:
        Implemented comment pre-processing in Lex_input_stream,
        major cleanup of the lex/yacc code to not use Lex_input_stream private members.
      sql/sql_yacc.yy:
        post merge fix : view_check_options must be parsed before signaling the end of the query
      f09496c8
  3. 11 May, 2007 2 commits
    • unknown's avatar
      Fix for: · d46c8ce6
      unknown authored
        Bug #20662 "Infinite loop in CREATE TABLE IF NOT EXISTS ... SELECT
                    with locked tables"
        Bug #20903 "Crash when using CREATE TABLE .. SELECT and triggers"
        Bug #24738 "CREATE TABLE ... SELECT is not isolated properly"
        Bug #24508 "Inconsistent results of CREATE TABLE ... SELECT when
                    temporary table exists"
      
      Deadlock occured when one tried to execute CREATE TABLE IF NOT
      EXISTS ... SELECT statement under LOCK TABLES which held
      read lock on target table.
      Attempt to execute the same statement for already existing
      target table with triggers caused server crashes.
      Also concurrent execution of CREATE TABLE ... SELECT statement
      and other statements involving target table suffered from
      various races (some of which might've led to deadlocks).
      Finally, attempt to execute CREATE TABLE ... SELECT in case
      when a temporary table with same name was already present
      led to the insertion of data into this temporary table and
      creation of empty non-temporary table.
       
      All above problems stemmed from the old implementation of CREATE
      TABLE ... SELECT in which we created, opened and locked target
      table without any special protection in a separate step and not
      with the rest of tables used by this statement.
      This underminded deadlock-avoidance approach used in server
      and created window for races. It also excluded target table
      from prelocking causing problems with trigger execution.
      
      The patch solves these problems by implementing new approach to
      handling of CREATE TABLE ... SELECT for base tables.
      We try to open and lock table to be created at the same time as
      the rest of tables used by this statement. If such table does not
      exist at this moment we create and place in the table cache special
      placeholder for it which prevents its creation or any other usage
      by other threads.
      We still use old approach for creation of temporary tables.
      
      Note that we have separate fix for 5.0 since there we use slightly
      different less intrusive approach.
      
      
      mysql-test/r/create.result:
        Extended test coverage for CREATE TABLE ... SELECT. In particular added
        tests for bug #24508 "Inconsistent results of CREATE TABLE ... SELECT
        when temporary table exists" and bug #20662 "Infinite loop in CREATE
        TABLE IF NOT EXISTS ... SELECT with locked tables".
      mysql-test/r/trigger.result:
        Added test case for bug #20903 "Crash when using CREATE TABLE .. SELECT
        and triggers"
      mysql-test/t/create.test:
        Extended test coverage for CREATE TABLE ... SELECT. In particular added
        tests for bug #24508 "Inconsistent results of CREATE TABLE ... SELECT
        when temporary table exists" and bug #20662 "Infinite loop in CREATE
        TABLE IF NOT EXISTS ... SELECT with locked tables".
      mysql-test/t/trigger.test:
        Added test case for bug #20903 "Crash when using CREATE TABLE .. SELECT
        and triggers"
      sql/lock.cc:
        Now for creation of name-lock placeholder lock_table_name() uses
        auxiliary function table_cache_insert_placeholder().
      sql/mysql_priv.h:
        Removed declaration of non-existing build_table_path() routine.
        The former mysql_create_table_internal() was renamed to
        mysql_create_table_no_lock() and now exposed to other modules to
        give them opportunity of creation of tables in cases when name-lock
        is already obtained.
        reopen_name_locked_table() now has 3rd argument which controls linking
        in of table being opened into THD::open_tables (this is useful in
        cases when placeholder used for name-locking is already linked into
        this list).
        Added declaration of auxiliary function table_cache_insert_placeholder()
        which is used for creation of table placeholders for name-locking.
        Added declaration of lock_table_name_if_not_cached() which can be
        used to take an exclusive name-lock on table if there are no records
        for it in table cache.
        Changed signature of unlink_open_table() function to simplify its use
        and make it useful for table placeholders and tables that are only open.
        Added auxiliary drop_open_table() routine.
        Moved declaration of refresh_version to table.h header to make it
        accessible from inline methods of TABLE class.
        MYSQL_OPEN_IGNORE_LOCKED_TABLES flag is no longer used. Instead
        MYSQL_OPEN_TEMPORARY_ONLY option was added.
      sql/sql_base.cc:
        Added support for the new approach to the handling of CREATE TABLE
        ... SELECT for base tables.
        
        Now we try to open and lock table to be created at the same time as
        the rest of tables used by this statement. If such table does not
        exist at this moment we create and place in the table cache special
        placeholder for it which prevents its creation or any other usage
        by other threads.
        
        Note significant distinctions of this placeholder from the placeholder
        used for normal name-lock: 1) It is treated like open table by other
        name-locks so it does not allow name-lock taking operations like DROP
        TABLE or RENAME TABLE to proceed. 2) it is linked into THD::open_tables
        list and automatically removed during close_thread_tables() call
          
        open_tables():
          Implemented logic described above. To do this added
          auxiliary check_if_table_exists() function.
          Removed support for MYSQL_OPEN_IGNORE_LOCKED_TABLES option
          which is no longer used.
          Added MYSQL_OPEN_TEMPORARY_ONLY which is used to restrict
          search for temporary tables only.
        close_cached_tables()/close_thread_table()/reopen_tables()/
        close_old_data_files()/table_is_used()/remove_table_from_cache():
          Added support for open placeholders (note that we also use them
          when we need to re-open tables during flush).
        unlink_open_table():
          Changed function signature to simplify its use and to make
          useful for open placeholders and tables which are only
          open and not locked.
        Added auxiliary drop_open_table() routine.
        reopen_name_locked_table():
          Now has 3rd argument which controls linking in of table being
          opened into THD::open_tables (this is useful in cases when
          placeholder used for name-locking is already linked into
          this list).
        Added auxiliary table_cache_insert_placeholder() routine which
        simplifies creation of placeholders used for name-locking.
        Added lock_table_name_if_not_cached() which can be used to take
        an exclusive name-lock on table if there are no records for it
        in table cache.
      sql/sql_handler.cc:
        Adjusted mysql_ha_mark_tables_for_reopen() routine to properly
        handle placeholders which now can be linked into open tables
        list.
      sql/sql_insert.cc:
        Introduced new approach to handling of base tables in CREATE TABLE
        ... SELECT statement.
        
        Now we try to open and lock table to be created at the same time as
        the rest of tables used by this statement. If such table does not
        exist at this moment we create and place in the table cache special
        placeholder for it which prevents its creation or any other usage
        by other threads. By doing this we avoid races which existed with
        previous approach in which we created, opened and locked target in
        separate step without any special protection.
        This also allows properly calculate prelocking set in cases when
        target table already exists and has some on insert triggers.
        
        Note that we don't employ the same approach for temporary tables
        (this is okay as such tables are unaffected by other threads).
        
        Changed create_table_from_items() and methods of select_create
        class to implement this approach.
      sql/sql_parse.cc:
        The new approach to handling of CREATE TABLE ... SELECT for
        base tables assumes that all tables (including table to be
        created) are opened and (or) locked at the same time.
        So in cases when we create base table we have to pass to
        open_and_lock_tables() table list which includes target table.
      sql/sql_prepare.cc:
        The new approach to handling of CREATE TABLE ... SELECT for
        base tables assumes that all tables (including table to be
        created) are opened and (or) locked at the same time.
        So in cases when we create base table we have to pass to
        open_and_lock_tables() table list which includes target table.
      sql/sql_table.cc:
        Changed mysql_create_table(), mysql_create_like_table() and
        mysql_alter_table() (in rename case) to obtain exclusive name-lock
        on the non-temporary table which is going to be created (to which
        we going to rename). This ensures that not only destination table
        doesn't exist on disk but also that there are no placeholder in 
        table cache for it (i.e. there is no CREATE TABLE ... SELECT operation
        in progress for it). Note that to avoid deadlocks while taking these
        name-locks this code assumes that existence of any record for table in
        table cache (even name-lock) means that table exists. Altough such
        check can lead to false positives these should occur only in case of
        highly concurrent DDL operations on the table and should not break
        binary logging.
        
        Renamed mysql_create_table_internal() to mysql_create_table_no_lock()
        and made it accessible from other files to give them ability to create
        table in situation when name-lock is already obtained or not relevant.
        
        Adjusted calls to reopen_name_locked_table(), which now takes
        extra argument, which controls linking of open table into
        THD::open_tables list.
        
        Removed redundant setting of table's 'version' field before calls
        to close_cached_table(). This function will set it to 0 itself
        anyway.
      sql/sql_trigger.cc:
        reopen_name_locked_tables() now has one more argument which controls
        linking of opened table into the THD::open_tables list.
      sql/sql_yacc.yy:
        The new approach to handling of CREATE TABLE ... SELECT statement
        for base tables assumes that all tables including table to be
        created are open and (or) locked at the same time. Therefore
        we need to set correct lock for target table.
      sql/table.h:
        Moved declaration of refresh_version variable from mysql_priv.h
        to make it accessible from inline methods of TABLE class.
        Renamed TABLE::locked_by_flush member to open_placeholder since
        now it is also used for taking exclusive name-lock and not only
        by flush. 
        Introduced TABLE::is_name_opened() helper method which can be used
        to distinguish TABLE instances corresponding to open tables or
        placeholders for them from closed instances (e.g. due to their old
        version). Also introduced TABLE::needs_reopen_or_name_lock() helper
        which allows to check if TABLE instance corresponds to outdated
        version of table or to name-lock placeholder.
        Introduced TABLE_LIST::create member which marks elements of
        table list corresponds to the table to be created.
        Adjusted TABLE_LIST::placeholder() method to take into account 
        name-lock placeholders for tables to be created (this, for example,
        allows to properly handle such placeholders in lock_tables()).
        Finally, moved currently unused TABLE::open_next/open_prev
        members under ifdef NOT_YET.
      mysql-test/r/create_select-big.result:
        New BitKeeper file ``mysql-test/r/create_select-big.result''
      mysql-test/t/create_select-big.test:
        New BitKeeper file ``mysql-test/t/create_select-big.test''
      d46c8ce6
    • unknown's avatar
      Fix for: · c5a82455
      unknown authored
        Bug #20662 "Infinite loop in CREATE TABLE IF NOT EXISTS ... SELECT
                    with locked tables"
        Bug #20903 "Crash when using CREATE TABLE .. SELECT and triggers"
        Bug #24738 "CREATE TABLE ... SELECT is not isolated properly"
        Bug #24508 "Inconsistent results of CREATE TABLE ... SELECT when
                    temporary table exists"
       
      Deadlock occured when one tried to execute CREATE TABLE IF NOT
      EXISTS ... SELECT statement under LOCK TABLES which held
      read lock on target table.
      Attempt to execute the same statement for already existing
      target table with triggers caused server crashes.
      Also concurrent execution of CREATE TABLE ... SELECT statement
      and other statements involving target table suffered from
      various races (some of which might've led to deadlocks).
      Finally, attempt to execute CREATE TABLE ... SELECT in case
      when a temporary table with same name was already present
      led to the insertion of data into this temporary table and
      creation of empty non-temporary table.
       
      All above problems stemmed from the old implementation of CREATE
      TABLE ... SELECT in which we created, opened and locked target
      table without any special protection in a separate step and not
      with the rest of tables used by this statement.
      This underminded deadlock-avoidance approach used in server
      and created window for races. It also excluded target table
      from prelocking causing problems with trigger execution.
        
      The patch solves these problems by implementing new approach to
      handling of CREATE TABLE ... SELECT for base tables.
      We try to open and lock table to be created at the same time as
      the rest of tables used by this statement. If such table does not
      exist at this moment we create and place in the table cache special
      placeholder for it which prevents its creation or any other usage
      by other threads.
      
      We still use old approach for creation of temporary tables.
      
      Also note that we decided to postpone introduction of some tests
      for concurrent behaviour of CREATE TABLE ... SELECT till 5.1.
      The main reason for this is absence in 5.0 ability to set @@debug
      variable at runtime, which can be circumvented only by using several
      test files with individual .opt files. Since the latter is likely
      to slowdown test-suite unnecessary we chose not to push this tests
      into 5.0, but run them manually for this version and later push
      their optimized version into 5.1
      
      
      mysql-test/r/create.result:
        Extended test coverage for CREATE TABLE ... SELECT. In particular added
        tests for bug #24508 "Inconsistent results of CREATE TABLE ... SELECT
        when temporary table exists" and bug #20662 "Infinite loop in CREATE
        TABLE IF NOT EXISTS ... SELECT with locked tables".
      mysql-test/r/trigger.result:
        Added test case for bug #20903 "Crash when using CREATE TABLE .. SELECT
        and triggers"
      mysql-test/t/create.test:
        Extended test coverage for CREATE TABLE ... SELECT. In particular added
        tests for bug #24508 "Inconsistent results of CREATE TABLE ... SELECT
        when temporary table exists" and bug #20662 "Infinite loop in CREATE
        TABLE IF NOT EXISTS ... SELECT with locked tables".
      mysql-test/t/trigger.test:
        Added test case for bug #20903 "Crash when using CREATE TABLE .. SELECT
        and triggers"
      sql/lock.cc:
        Now for creation of name-lock placeholder in lock_table_name() we use
        auxiliary function table_cache_insert_placeholder().
      sql/mysql_priv.h:
        Made build_table_path() function available outside of sql_table.cc file.
        reopen_name_locked_table() now has 3rd argument which controls linking
        in of table being opened into THD::open_tables (this is useful in
        cases when placeholder used for name-locking is already linked into
        this list).
        Added declaration of auxiliary function table_cache_insert_placeholder()
        which is used for creation of table placeholders for name-locking.
        Added declaration of table_cache_has_open_placeholder() function which
        can be used for checking if table cache contains an open placeholder for
        the table and if this placeholder was created by another thread.
        (This function is needed only in 5.0 where we use it in various versions
         of CREATE TABLE in order to protect it from concurrent CREATE TABLE
         ... SELECT operations for the table. Starting from 5.1 we use different
         approach so it is going to be removed there).
        Made close_old_data_files() static within sql_base.cc file. 
        Added auxiliary drop_open_table() routine.
        Moved declaration of refresh_version to table.h header to make it
        accessible from inline methods of TABLE class.
        MYSQL_OPEN_IGNORE_LOCKED_TABLES flag is no longer used. Instead
        MYSQL_OPEN_TEMPORARY_ONLY option was added.
      sql/sql_base.cc:
        Added support for the new approach to the handling of CREATE TABLE
        ... SELECT for base tables.
        
        Now we try to open and lock table to be created at the same time as
        the rest of tables used by this statement. If such table does not
        exist at this moment we create and place in the table cache special
        placeholder for it which prevents its creation or any other usage
        by other threads.
        
        Note significant distinctions of this placeholder from the placeholder
        used for normal name-lock: 1) It is treated like open table by other
        name-locks so it does not allow name-lock taking operations like DROP
        TABLE or RENAME TABLE to proceed. 2) it is linked into THD::open_tables
        list and automatically removed during close_thread_tables() call.
        
        open_tables():
          Implemented logic described above. To do this added
          auxiliary check_if_table_exists() function.
          Removed support for MYSQL_OPEN_IGNORE_LOCKED_TABLES option
          which is no longer used.
          Added MYSQL_OPEN_TEMPORARY_ONLY which is used to restrict
          search for temporary tables only.
        close_cached_tables()/close_thread_table()/reopen_tables()/
        close_old_data_files()/table_is_used()/remove_table_from_cache():
          Added support for open placeholders (note that we also use them
          when we need to re-open tables during flush).
        Added auxiliary drop_open_table() routine.
        reopen_name_locked_table():
          Now has 3rd argument which controls linking in of table being
          opened into THD::open_tables (this is useful in cases when
          placeholder used for name-locking is already linked into
          this list).
        Added auxiliary table_cache_insert_placeholder() routine which
        simplifies creation of placeholders used for name-locking.
        Added table_cache_has_open_placeholder() function which can be
        used for checking if table cache contains an open placeholder for
        the table and if this placeholder was created by another thread.
        (This function is needed only in 5.0 where we use it in various versions
         of CREATE TABLE in order to protect it from concurrent CREATE TABLE
         ... SELECT operations for the table. Starting from 5.1 we use different
         approach so it is going to be removed there).
      sql/sql_handler.cc:
        Adjusted mysql_ha_mark_tables_for_reopen() routine to properly
        handle placeholders which now can be linked into open tables
        list.
      sql/sql_insert.cc:
        Introduced new approach to handling of base tables in CREATE TABLE
        ... SELECT statement.
        
        Now we try to open and lock table to be created at the same time as
        the rest of tables used by this statement. If such table does not
        exist at this moment we create and place in the table cache special
        placeholder for it which prevents its creation or any other usage
        by other threads. By doing this we avoid races which existed with
        previous approach in which we created, opened and locked target in
        separate step without any special protection.
        This also allows properly calculate prelocking set in cases when
        target table already exists and has some on insert triggers.
          
        Note that we don't employ the same approach for temporary tables
        (this is okay as such tables are unaffected by other threads).
        
        Changed create_table_from_items() and select_create methods to
        implement this approach.
      sql/sql_parse.cc:
        The new approach to handling of CREATE TABLE ... SELECT for
        base tables assumes that all tables (including table to be
        created) are opened and (or) locked at the same time.
        So in cases when we create base table we have to pass to
        open_and_lock_tables() table list which includes target table.
      sql/sql_prepare.cc:
        The new approach to handling of CREATE TABLE ... SELECT for
        base tables assumes that all tables (including table to be
        created) are opened and (or) locked at the same time.
        So in cases when we create base table we have to pass to
        open_and_lock_tables() table list which includes target table.
      sql/sql_table.cc:
        Now mysql_create_table_internal(), mysql_create_like_table() and
        mysql_alter_table() not only check that destination table doesn't
        exist on disk but also check that there is no create placeholder
        in table cache for it (i.e. there is no CREATE TABLE ... SELECT
        operation in progress for it). Note that starting from 5.1 we
        use different approach in order to to protect CREATE TABLE ... SELECT
        from concurrent CREATE TABLE (ALTER TABLE ... RENAME) operations,
        the latter simply take name-locks on table before its creation
        (on target table name before renaming).
        
        Also made build_table_path() available from other files and
        asjusted calls to reopen_name_locked_table(), which now takes
        extra argument, which controls linking of open table into
        THD::open_tables list.
      sql/sql_trigger.cc:
        reopen_name_locked_tables() now has one more argument which controls
        linking of opened table into the THD::open_tables list.
      sql/sql_yacc.yy:
        The new approach to handling of CREATE TABLE ... SELECT statement
        for base tables assumes that all tables including table to be
        created are open and (or) locked at the same time. Therefore
        we need to set correct lock for target table.
      sql/table.h:
        Moved declaration of refresh_version variable from mysql_priv.h
        to make it accessible from inline methods of TABLE class. 
        Renamed TABLE::locked_by_flush member to open_placeholder since
        now it is also used for taking exclusive name-lock and not only
        by flush. 
        Introduced TABLE::is_name_opened() helper method which can be used
        to distinguish TABLE instances corresponding to open tables or
        placeholders for them from closed instances (e.g. due to their old
        version). Also introduced TABLE::needs_reopen_or_name_lock() helper
        which allows to check if TABLE instance corresponds to outdated
        version of table or to name-lock placeholder.
        Introduced TABLE_LIST::create member which marks elements of
        table list corresponds to the table to be created.
        Adjusted TABLE_LIST::placeholder() method to take into account 
        name-lock placeholders for tables to be created (this, for example,
        allows to properly handle such placeholders in lock_tables()).
      c5a82455
  4. 10 May, 2007 1 commit
    • unknown's avatar
      WL#3817: Simplify string / memory area types and make things more consistent (first part) · f252f924
      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
      f252f924
  5. 26 Apr, 2007 1 commit
  6. 24 Apr, 2007 1 commit
    • unknown's avatar
      Bug#25411 (trigger code truncated), PART I · 3eff7d4d
      unknown authored
      The issue found with bug 25411 is due to the function skip_rear_comments()
      which damages the source code while implementing a work around.
      The root cause of the problem is in the lexical analyser, which does not
      process special comments properly.
      For special comments like :
      [1] aaa /*!50000 bbb */ ccc
      since 5.0 is a version older that the current code, the parser is in lining
      the content of the special comment, so that the query to process is
      [2] aaa bbb ccc
      However, the text of the query captured when processing a stored procedure,
      stored function or trigger (or event in 5.1), can be after rebuilding it:
      [3] aaa bbb */ ccc
      which is wrong.
      
      To fix bug 25411 properly, the lexical analyser needs to return [2] when
      in lining special comments.
      In order to implement this, some preliminary cleanup is required in the code,
      which is implemented by this patch.
      
      Before this change, the structure named LEX (or st_lex) contains attributes
      that belong to lexical analysis, as well as attributes that represents the
      abstract syntax tree (AST) of a statement.
      Creating a new LEX structure for each statements (which makes sense for the
      AST part) also re-initialized the lexical analysis phase each time, which
      is conceptually wrong.
      
      With this patch, the previous st_lex structure has been split in two:
      - st_lex represents the Abstract Syntax Tree for a statement. The name "lex"
      has not been changed to avoid a bigger impact in the code base.
      - class lex_input_stream represents the internal state of the lexical
        analyser, which by definition should *not* be reinitialized when parsing
        multiple statements from the same input stream.
      
      This change is a pre-requisite for bug 25411, since the implementation of
      lex_input_stream will later improve to deal properly with special comments,
      and this processing can not be done with the current implementation of
      sp_head::reset_lex and sp_head::restore_lex, which interfere with the lexer.
      
      This change set alone does not fix bug 25411.
      
      
      sql/item_func.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/log_event.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/mysql_priv.h:
        Refactoring, separate lex_input_stream from st_lex.
      sql/slave.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sp.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sp_head.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sp_head.h:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_class.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_class.h:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_lex.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_lex.h:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_parse.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_prepare.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_trigger.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_view.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_yacc.yy:
        Refactoring, separate lex_input_stream from st_lex.
      3eff7d4d
  7. 14 Apr, 2007 1 commit
  8. 13 Apr, 2007 1 commit
    • unknown's avatar
      An attempt to fix a sporadic valgrind memory leak in Event Scheduler: · c1b6e128
      unknown authored
      streamline the event worker thread work flow and try to eliminate
      possibilities for memory corruptions that might have been
      lurking in previous (complicated) code.
      This patch: 
       * removes Event_job_data::compile that was never used
       * cleans up Event_job_data::execute to minimize juggling with
         thread context and eliminate unneded code paths
       * Implements Security_context::change/restore_security_context
         to be able to re-use these methods in all stored programs
      This is to maybe fix Bug#27733 "Valgrind failures in 
      remove_table_from_cache".
      Review comments applied.
      
      
      sql/event_data_objects.cc:
        Remove Event_job_data::compile, which was never used without
        Event_job_data::execute().
        Merge the implementation of compile() with Event_job_data::execute().
        Reuse existing functions to prepare the event worker thread
        for execution instead of some previously copy-pasted code.
        Do not change and restore the current database inside 
        Event_job_data::execute(), just set the current database in the 
        thread, that is enough to parse and execute an event.
      sql/event_data_objects.h:
        Update declarations.
      sql/event_scheduler.cc:
        Allocate Event_job_data on stack.
      sql/item_func.cc:
        Update to match the new declaration of restore_security_context()
      sql/sp_head.cc:
        Update to match the new declaration of 
        change/restore_security_context()
      sql/sql_class.cc:
        Move change/restore_security_context to class Security_context.
        Add more comments.
      sql/sql_class.h:
        Make change/restore_security_context methods of Security_context.
        That allows us to reuse them in Event Scheduler (instead of a
        copy-paste presently used there).
      sql/sql_trigger.cc:
        Update to match the new declaration of 
        change/restore_security_context()
      c1b6e128
  9. 27 Mar, 2007 1 commit
    • unknown's avatar
      Remove unnecessary casts to uchar. The casts are stemming from · f5940fe9
      unknown authored
      the lexer API which internally uses  unsigned char variables to
      address its state map. The implementation of the lexer should be
      internal to the lexer, and not influence the rest of the code.
      
      
      sql/event_data_objects.cc:
        Clean up unnecessary type casts.
      sql/event_data_objects.h:
        Clean up unnecessary type casts.
      sql/ha_ndbcluster.cc:
        Clean up unnecessary type casts.
      sql/mysql_priv.h:
        Clean up unnecessary type casts.
      sql/partition_info.h:
        Clean up unnecessary type casts.
      sql/sp.cc:
        Clean up unnecessary type casts.
      sql/sp_head.cc:
        Clean up unnecessary type casts.
      sql/sp_head.h:
        Clean up unnecessary type casts.
      sql/sql_lex.cc:
        Clean up unnecessary type casts.
      sql/sql_lex.h:
        Clean up unnecessary type casts.
      sql/sql_parse.cc:
        Clean up unnecessary type casts.
      sql/sql_partition.cc:
        Clean up unnecessary type casts.
      sql/sql_partition.h:
        Clean up unnecessary type casts.
      sql/sql_prepare.cc:
        Clean up unnecessary type casts.
      sql/sql_trigger.cc:
        Clean up unnecessary type casts.
      sql/sql_view.cc:
        Clean up unnecessary type casts.
      sql/sql_yacc.yy:
        Clean up unnecessary type casts.
      sql/table.cc:
        Clean up unnecessary type casts.
      sql/table.h:
        Clean up unnecessary type casts.
      f5940fe9
  10. 07 Mar, 2007 1 commit
    • unknown's avatar
      A fix for Bug#26750 "valgrind leak in sp_head" (and post-review · 053c6c01
      unknown authored
      fixes).
      
      The legend: on a replication slave, in case a trigger creation
      was filtered out because of application of replicate-do-table/
      replicate-ignore-table rule, the parsed definition of a trigger was not 
      cleaned up properly. LEX::sphead member was left around and leaked 
      memory. Until the actual implementation of support of 
      replicate-ignore-table rules for triggers by the patch for Bug 24478 it 
      was never the case that "case SQLCOM_CREATE_TRIGGER"
      was not executed once a trigger was parsed,
      so the deletion of lex->sphead there worked and the memory did not leak.
      
      The fix: 
      
      The real cause of the bug is that there is no 1 or 2 places where
      we can clean up the main LEX after parse. And the reason we 
      can not have just one or two places where we clean up the LEX is
      asymmetric behaviour of MYSQLparse in case of success or error. 
      
      One of the root causes of this behaviour is the code in Item::Item()
      constructor. There, a newly created item adds itself to THD::free_list
      - a single-linked list of Items used in a statement. Yuck. This code
      is unaware that we may have more than one statement active at a time,
      and always assumes that the free_list of the current statement is
      located in THD::free_list. One day we need to be able to explicitly
      allocate an item in a given Query_arena.
      Thus, when parsing a definition of a stored procedure, like
      CREATE PROCEDURE p1() BEGIN SELECT a FROM t1; SELECT b FROM t1; END;
      we actually need to reset THD::mem_root, THD::free_list and THD::lex
      to parse the nested procedure statement (SELECT *).
      The actual reset and restore is implemented in semantic actions
      attached to sp_proc_stmt grammar rule.
      The problem is that in case of a parsing error inside a nested statement
      Bison generated parser would abort immediately, without executing the
      restore part of the semantic action. This would leave THD in an 
      in-the-middle-of-parsing state.
      This is why we couldn't have had a single place where we clean up the LEX
      after MYSQLparse - in case of an error we needed to do a clean up
      immediately, in case of success a clean up could have been delayed.
      This left the door open for a memory leak.
      
      One of the following possibilities were considered when working on a fix:
      - patch the replication logic to do the clean up. Rejected
      as breaks module borders, replication code should not need to know the
      gory details of clean up procedure after CREATE TRIGGER.
      - wrap MYSQLparse with a function that would do a clean up.
      Rejected as ideally we should fix the problem when it happens, not
      adjust for it outside of the problematic code.
      - make sure MYSQLparse cleans up after itself by invoking the clean up
      functionality in the appropriate places before return. Implemented in 
      this patch.
      - use %destructor rule for sp_proc_stmt to restore THD - cleaner
      than the prevoius approach, but rejected
      because needs a careful analysis of the side effects, and this patch is 
      for 5.0, and long term we need to use the next alternative anyway
      - make sure that sp_proc_stmt doesn't juggle with THD - this is a 
      large work that will affect many modules.
      
      Cleanup: move main_lex and main_mem_root from Statement to its
      only two descendants Prepared_statement and THD. This ensures that
      when a Statement instance was created for purposes of statement backup,
      we do not involve LEX constructor/destructor, which is fairly expensive.
      In order to track that the transformation produces equivalent 
      functionality please check the respective constructors and destructors
      of Statement, Prepared_statement and THD - these members were
      used only there.
      This cleanup is unrelated to the patch.
      
      
      sql/log_event.cc:
        THD::main_lex is private and should not be used.
      sql/mysqld.cc:
        Move MYSQLerror to sql_yacc.yy as it depends on LEX headers now.
      sql/sql_class.cc:
        Cleanup: move main_lex and main_mem_root to THD and Prepared_statement
      sql/sql_class.h:
        Cleanup: move main_lex and main_mem_root to THD and Prepared_statement
      sql/sql_lex.cc:
        Implement st_lex::restore_lex()
      sql/sql_lex.h:
        Declare st_lex::restore_lex().
      sql/sql_parse.cc:
        Consolidate the calls to unit.cleanup() and deletion of lex->sphead
        in mysql_parse (COM_QUERY handler)
      sql/sql_prepare.cc:
        No need to delete lex->sphead to restore memory roots now in case of a 
        parse error - this is done automatically inside MYSQLparse
      sql/sql_trigger.cc:
        This code could lead to double deletion apparently, as in case
        of an error lex.sphead was never reset.
      sql/sql_yacc.yy:
        Trap all returns from the parser to ensure that MySQL-specific cleanup
        is invoked: we need to restore the global state of THD and LEX in 
        case of a parsing error. In case of a parsing success this happens as 
        part of normal grammar reduction process.
      053c6c01
  11. 26 Feb, 2007 1 commit
    • unknown's avatar
      Bug#24478 DROP TRIGGER is not caught by replicate-*-table filters · 7d883c0d
      unknown authored
      Problem: DROP TRIGGER was not properly handled in combination
      with slave filters, which made replication stop
      Fix: loading table name before checking slave filters when
      dropping a trigger.
      
      
      mysql-test/r/rpl_replicate_do.result:
        Adding test case
      mysql-test/t/rpl_replicate_do.test:
        Adding test case
      sql/sql_parse.cc:
        Loading table name when dropping a trigger
        before checking slave filtering rules.
      sql/sql_trigger.cc:
        Making add_table_for_trigger() public
      sql/sql_trigger.h:
        Making add_table_for_trigger() public
      7d883c0d
  12. 11 Feb, 2007 1 commit
  13. 23 Dec, 2006 1 commit
    • unknown's avatar
      Many files: · 6b0853a3
      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
      6b0853a3
  14. 14 Dec, 2006 1 commit
    • unknown's avatar
      Fixed compiler warnings detected by option -Wshadow and -Wunused: · f00257dd
      unknown authored
      - Removed not used variables and functions
      - Added #ifdef around code that is not used
      - Renamed variables and functions to avoid conflicts
      - Removed some not used arguments
      
      Fixed some class/struct warnings in ndb
      Added define IS_LONGDATA() to simplify code in libmysql.c
      
      I did run gcov on the changes and added 'purecov' comments on almost all lines that was not just variable name changes
      
      
      BUILD/SETUP.sh:
        Added printing of unused functions and variables.
        Made it easy to test compiling with -Wshadow
      BUILD/compile-pentium-gcov:
        Added warnings
        Mark binary with -gcov
      client/mysql.cc:
        Fixed warnings found with gcc -Wshadow
      client/mysql_upgrade.c:
        Fixed warnings found with gcc -Wshadow
      client/mysqlbinlog.cc:
        Fixed warnings found with gcc -Wshadow
      client/mysqldump.c:
        Fixed warnings found with gcc -Wshadow
      client/mysqltest.c:
        Fixed warnings found with gcc -Wshadow
      client/sql_string.cc:
        Fixed warnings found with gcc -Wshadow
        Merged with sql/sql_string.cc
      client/sql_string.h:
        Fixed warnings found with gcc -Wshadow
        Merged with sql/sql_string.h
      cmd-line-utils/readline/display.c:
        Fixed compiler warning
      cmd-line-utils/readline/histexpand.c:
        Fixed warnings found with gcc -Wshadow
      cmd-line-utils/readline/input.c:
        Fixed warnings found with gcc -Wshadow
      cmd-line-utils/readline/text.c:
        Fixed warnings found with gcc -Wshadow
      cmd-line-utils/readline/vi_mode.c:
        Fixed warnings found with gcc -Wshadow
      dbug/dbug_analyze.c:
        Fixed warnings found with gcc -Wshadow
      extra/my_print_defaults.c:
        Prefixed defaults_extra_file and defaults_group_suffix with 'my' to avoid conflicts with similar named local variables
      extra/yassl/include/buffer.hpp:
        Fixed compiler warnings
      extra/yassl/include/crypto_wrapper.hpp:
        Fixed compiler warnings
      extra/yassl/include/yassl_imp.hpp:
        Fixed compiler warnings
      extra/yassl/include/yassl_int.hpp:
        Fixed compiler warnings
      extra/yassl/src/crypto_wrapper.cpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/benchmark/benchmark.cpp:
        Fixed warnings found with gcc -Wshadow
      extra/yassl/taocrypt/include/algebra.hpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/include/des.hpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/include/hash.hpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/include/hmac.hpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/include/modarith.hpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/include/modes.hpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/include/rsa.hpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/mySTL/list.hpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/src/aes.cpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/src/algebra.cpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/src/asn.cpp:
        Fixed compiler warnings
      extra/yassl/taocrypt/test/test.cpp:
        Fixed compiler warnings
      extra/yassl/testsuite/testsuite.cpp:
        Fixed compiler warnings
      include/m_ctype.h:
        Fixed warnings found with gcc -Wshadow
      include/my_pthread.h:
        Fixed warnings found with gcc -Wshadow
      include/my_sys.h:
        Fixed warnings found with gcc -Wshadow
      include/my_time.h:
        Fixed warnings found with gcc -Wshadow
      include/mysql.h:
        Fixed warnings found with gcc -Wshadow
        Added define IS_LONGDATA() to simplify code in libmysql.c
      libmysql/libmysql.c:
        Fixed warnings found with gcc -Wshadow
        (Mostly replaced bind -> my_bind and time -> my_time)
      libmysqld/lib_sql.cc:
        Removed not used variables and labels
      myisam/ft_boolean_search.c:
        Fixed warnings found with gcc -Wshadow
      myisam/mi_open.c:
        Fixed warnings found with gcc -Wshadow
      myisam/mi_search.c:
        Fixed warnings found with gcc -Wshadow
      myisam/mi_unique.c:
        Fixed compiler warning
      myisam/myisampack.c:
        Fixed warnings found with gcc -Wshadow
      myisam/rt_index.c:
        Remove not used variables
      myisam/sort.c:
        Fixed warnings found with gcc -Wshadow
      mysql-test/r/mysqlcheck.result:
        Remove databases and tables possible left by previous test
      mysql-test/r/mysqltest.result:
        New test results
      mysql-test/t/mysql.test:
        Coverage tests
      mysql-test/t/mysqlbinlog.test:
        Coverage tests
      mysql-test/t/mysqlcheck.test:
        Remove databases and tables possible left by previous test
      mysql-test/t/mysqltest.test:
        Coverage tests
      mysys/default.c:
        Prefixed defaults_file, defaults_group_suffix and defaults_extra_file with 'my' to avoid conflicts with local variables in some functions
      mysys/mf_iocache2.c:
        Fixed warnings found with gcc -Wshadow
      mysys/mf_keycache.c:
        Fixed warnings found with gcc -Wshadow
      mysys/my_bitmap.c:
        Fixed warnings found with gcc -Wshadow
      mysys/sha1.c:
        Fixed warnings found with gcc -Wshadow
      ndb/include/kernel/signaldata/ArbitSignalData.hpp:
        Fixed compiler warning
      ndb/include/kernel/signaldata/DictTabInfo.hpp:
        Fixed compiler warnings
      ndb/include/ndbapi/NdbReceiver.hpp:
        Fixed warnings found with gcc -Wshadow
      ndb/include/transporter/TransporterDefinitions.hpp:
        Fixed compiler warning
      ndb/include/util/InputStream.hpp:
        Fixed compiler warning
      ndb/include/util/OutputStream.hpp:
        Fixed compiler warning
      ndb/include/util/SimpleProperties.hpp:
        Fixed compiler warning
      ndb/include/util/SocketAuthenticator.hpp:
        Fixed compiler warning
      ndb/include/util/SocketServer.hpp:
        Fixed compiler warning
      ndb/src/common/mgmcommon/ConfigRetriever.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/common/portlib/NdbTick.c:
        Fixed warnings found with gcc -Wshadow
      ndb/src/common/transporter/SHM_Transporter.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/common/transporter/TCP_Transporter.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/common/transporter/TCP_Transporter.hpp:
        Fixed compiler warning
      ndb/src/common/transporter/Transporter.cpp:
        Removed not used variable
      ndb/src/common/transporter/TransporterRegistry.cpp:
        Removed not used variable
      ndb/src/common/util/Bitmask.cpp:
        Moved function to avoid warnings of not used function
      ndb/src/common/util/ConfigValues.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/common/util/File.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/common/util/Properties.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/common/util/SocketClient.cpp:
        Fixed wrong return value
      ndb/src/common/util/random.c:
        Fixed warnings found with gcc -Wshadow
      ndb/src/common/util/socket_io.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/cw/cpcd/APIService.cpp:
        Removed not used variable
      ndb/src/cw/cpcd/main.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
        Removed not used variable
      ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
        Fixed compiler warnings
      ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/suma/Suma.cpp:
        Removed not used variables
      ndb/src/kernel/blocks/suma/Suma.hpp:
        Fixed compiler warnings
      ndb/src/kernel/vm/MetaData.hpp:
        Fixed compiler warnings
      ndb/src/mgmapi/LocalConfig.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/mgmapi/mgmapi.cpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/mgmclient/CommandInterpreter.cpp:
        Removed not used variables
      ndb/src/mgmsrv/ConfigInfo.cpp:
        Fixed warnings found with gcc -Wshadow
        Removed not used variables
      ndb/src/mgmsrv/ConfigInfo.hpp:
        Fixed warnings found with gcc -Wshadow
      ndb/src/mgmsrv/InitConfigFileParser.cpp:
        Prefixed defaults_file, defaults_group_suffix and defaults_extra_file with 'my' to avoid conflicts with local variables in some functions
      ndb/src/mgmsrv/MgmtSrvr.cpp:
        Removed not used variables and functions
      ndb/src/mgmsrv/MgmtSrvr.hpp:
        Fixed compiler warnings
      ndb/src/mgmsrv/Services.cpp:
        Removed not used variables and functions
      ndb/src/mgmsrv/main.cpp:
        Removed not used variable
      ndb/src/ndbapi/ClusterMgr.hpp:
        Fixed compiler warnings
      ndb/src/ndbapi/Ndb.cpp:
        Removed not used variables
      ndb/src/ndbapi/NdbBlob.cpp:
        Removed not used variables
      ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        Removed not used variables
      ndb/src/ndbapi/NdbIndexOperation.cpp:
        Removed not used variables
      ndb/src/ndbapi/NdbOperationDefine.cpp:
        Removed not used variables
      ndb/src/ndbapi/NdbOperationExec.cpp:
        Removed not used variables
      ndb/src/ndbapi/NdbOperationSearch.cpp:
        Removed not used variables
      ndb/src/ndbapi/NdbScanFilter.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/NdbScanOperation.cpp:
        Removed not used variables
      ndb/src/ndbapi/SignalSender.cpp:
        Removed not used variables
      ndb/src/ndbapi/ndb_cluster_connection.cpp:
        Removed not used variable
      ndb/tools/delete_all.cpp:
        Removed not used variable
      ndb/tools/desc.cpp:
        Removed not used variable
      ndb/tools/drop_index.cpp:
        Removed not used variable
      ndb/tools/drop_tab.cpp:
        Removed not used variable
      ndb/tools/listTables.cpp:
        Removed not used variable
      ndb/tools/ndb_config.cpp:
        Fixed warnings found with gcc -Wshadow
        Added missing puts(desc)
      ndb/tools/restore/Restore.hpp:
        Changed delimiter to define instead of static variable, as the static variable caused a LOT of compiler warnings
        Fixed compiler warning
      ndb/tools/restore/consumer.hpp:
        Fixed compiler warning
      ndb/tools/restore/restore_main.cpp:
        Fixed compiler warnings
      ndb/tools/select_all.cpp:
        Removed not used variables
      ndb/tools/select_count.cpp:
        Removed not used variable
      server-tools/instance-manager/commands.h:
        Fixed compiler warnings
      server-tools/instance-manager/guardian.cc:
        Fixed compiler warnings
      server-tools/instance-manager/instance_options.cc:
        Removed not used variables
      server-tools/instance-manager/mysql_connection.cc:
        Fixed compiler warnings
      server-tools/instance-manager/options.cc:
        Fixed compiler warnings
      server-tools/instance-manager/options.h:
        Fixed compiler warnings
      server-tools/instance-manager/parse.cc:
        Removed not used variable
      server-tools/instance-manager/user_map.cc:
        Fixed compiler warnings
      server-tools/instance-manager/user_map.h:
        Fixed compiler warnings
      sql/field.cc:
        Fixed compiler warnings
      sql/field.h:
        Fixed compiler warnings
      sql/filesort.cc:
        Fixed compiler warnings
      sql/ha_archive.cc:
        Removed table and share arguments from get_share() / free_share() to get rid of compiler warnings
      sql/ha_archive.h:
        Removed table and share arguments from get_share() / free_share() to get rid of compiler warnings
      sql/ha_federated.cc:
        Fixed compiler warnings
      sql/ha_heap.cc:
        Fixed compiler warnings
      sql/ha_myisam.cc:
        Fixed compiler warnings
      sql/ha_myisammrg.cc:
        Fixed compiler warnings
      sql/ha_ndbcluster.cc:
        Fixed compiler warnings
      sql/handler.cc:
        Fixed compiler warnings
      sql/item.cc:
        Fixed compiler warnings
      sql/item.h:
        Fixed compiler warnings
        new_item() -> clone_item(), to avoid a lot of warnings with variable 'new_item'
        el() -> element_index()
      sql/item_cmpfunc.cc:
        Fixed compiler warnings
      sql/item_cmpfunc.h:
        Fixed compiler warnings
      sql/item_func.cc:
        Fixed compiler warnings
      sql/item_geofunc.cc:
        Fixed compiler warnings
      sql/item_row.h:
        Fixed compiler warnings
      sql/item_strfunc.cc:
        Fixed compiler warnings
      sql/item_subselect.cc:
        Fixed compiler warnings
      sql/item_subselect.h:
        Fixed compiler warnings
      sql/item_sum.cc:
        Fixed compiler warnings
      sql/item_timefunc.cc:
        Fixed compiler warnings
      sql/log.cc:
        Fixed compiler warnings
        More comments
        Added #ifdef HAVE_REPLICATION
      sql/log_event.cc:
        Fixed compiler warnings
      sql/log_event.h:
        Fixed compiler warnings
      sql/mysql_priv.h:
        query_id -> global_query_id, to avoid a lot of clashes with function and class variables
        start_time -> server_start_time
      sql/mysqld.cc:
        Fixed compiler warnings:
        - Removed not used variables
        - Added #ifndef EMBEDDED_LIBRARY
        - Fixed shadow warnings
      sql/net_serv.cc:
        Fixed compiler warnings
      sql/opt_range.cc:
        range -> last_range to avoid shadow warnings
        Removed not used function print_rowid()
      sql/opt_range.h:
        range -> last_range to avoid shadow warnings
      sql/password.c:
        Fixed compiler warnings
      sql/protocol.cc:
        Fixed compiler warnings
      sql/repl_failsafe.cc:
        Fixed compiler warnings
      sql/set_var.cc:
        Fixed compiler warnings
      sql/set_var.h:
        type() -> show_type()
        Fixed compiler warnings
      sql/slave.cc:
        Fixed compiler warnings
      sql/sp_head.cc:
        Fixed compiler warnings
      sql/sp_head.h:
        Fixed compiler warnings
      sql/spatial.cc:
        Fixed compiler warnings
      sql/spatial.h:
        length() -> geom_length() to avoid compiler warnings
        wkb_end -> wkb_last to avoid compiler warnings with local variables named 'wkb_end'
      sql/sql_cache.h:
        Fixed compiler warnings
      sql/sql_class.cc:
        Fixed compiler warnings
      sql/sql_class.h:
        log -> log_xid() to avoid compiler warnings
        Fixed shadow compiler warnings
      sql/sql_derived.cc:
        Removed not used variable
      sql/sql_insert.cc:
        Fixed compiler warnings
      sql/sql_lex.cc:
        Fixed compiler warnings
      sql/sql_lex.h:
        res -> saved_error to make the meaning of the variable clear and avoid shadow warnings
      sql/sql_load.cc:
        Fixed compiler warnings
      sql/sql_parse.cc:
        Fixed compiler warnings
      sql/sql_prepare.cc:
        Fixed compiler warnings
      sql/sql_select.cc:
        Fixed compiler warnings
      sql/sql_show.cc:
        Fixed compiler warnings
      sql/sql_string.cc:
        Fixed compiler warnings
      sql/sql_string.h:
        Fixed compiler warnings
      sql/sql_table.cc:
        Fixed compiler warnings
      sql/sql_trigger.cc:
        Fixed compiler warnings
      sql/sql_trigger.h:
        table -> trigger_table to avoid warnings from local variables
      sql/sql_union.cc:
        Fixed compiler warnings
        (mainly res -> saved_error)
      sql-common/client.c:
        Removed not used variable
      sql-common/my_time.c:
        Removed not used variable
        time -> my_time
      sql/sql_update.cc:
        Removed not used variable
      sql/sql_view.cc:
        Removed not used variable
      sql/sql_yacc.yy:
        Removed not used variable
      sql/table.cc:
        Removed not used variable
      sql/tztime.cc:
        Removed not used variable
      sql/unireg.cc:
        Removed not used variable
      strings/ctype-bin.c:
        mblen -> mb_len to avoid compiler warnings with local variable mblen
      strings/ctype-cp932.c:
        Fixed compiler warnings
      strings/ctype-eucjpms.c:
        Fixed compiler warnings
      strings/ctype-mb.c:
        mblen -> mb_len to avoid compiler warnings with local variable mblen
      strings/ctype-simple.c:
        mblen -> mb_len to avoid compiler warnings with local variable mblen
        exp -> exponent
      strings/ctype-sjis.c:
        Fixed compiler warnings
      strings/ctype-uca.c:
        mblen -> mb_len to avoid compiler warnings with local variable mblen
      strings/ctype-ujis.c:
        Fixed compiler warnings
      strings/ctype-utf8.c:
        Fixed compiler warnings
      strings/decimal.c:
        Fixed compiler warnings
      strings/my_vsnprintf.c:
        Added comment
      strings/strtod.c:
        Fixed compiler warnings
      tests/mysql_client_test.c:
        Fixed compiler warnings
        (Biggest part of patch is to not get a conflict with global function 'bind')
      f00257dd
  15. 30 Nov, 2006 3 commits
    • unknown's avatar
      Fixed portability issue in my_thr_init.c (was added in my last push) · 7191e775
      unknown authored
      Fixed compiler warnings (detected by VC++):
      - Removed not used variables
      - Added casts
      - Fixed wrong assignments to bool
      - Fixed wrong calls with bool arguments
      - Added missing argument to store(longlong), which caused wrong store method to be called.
      
      
      
      client/mysqldump.c:
        Removed compiler warning
      heap/hp_clear.c:
        Removed compiler warning
      include/my_global.h:
        Removed compiler warning
      include/my_tree.h:
        Changed memory limits from int to ulong
        (Allowed me to get rid of some compiler warnings)
      myisam/mi_create.c:
        Removed compiler warning
      myisam/myisampack.c:
        Removed compiler warning
      mysys/base64.c:
        Removed compiler warning
      mysys/my_thr_init.c:
        Fixed portability issue (detected on windows)
        Added DBUG_ASSERT to detect if we call my_thread_end() too many times
        Don't wait if THR_thread_count == -1 (error condition)
      mysys/tree.c:
        Removed compiler warning
      sql/field.cc:
        Removed compiler warning
        Fixed wrong parameter to check_date()
        Added missing argument to store(longlong)
      sql/ha_archive.cc:
        Removed compiler warning
      sql/ha_federated.cc:
        Removed compiler warning
      sql/ha_innodb.cc:
        Removed not used variable
      sql/handler.cc:
        Removed not used variable
        Fixed wrong if (we didn't detect if rollback or commit failed). Not critical as value is not yet used
      sql/item.cc:
        Removed compiler warning
      sql/item_func.cc:
        Removed compiler warning
      sql/item_strfunc.cc:
        Removed compiler warning
      sql/item_timefunc.cc:
        Removed compiler warning
      sql/log.cc:
        Removed compiler warning
      sql/mysql_priv.h:
        Removed compiler warning
      sql/opt_range.cc:
        Removed compiler warning
      sql/password.c:
        Removed compiler warning
      sql/set_var.cc:
        Removed compiler warning
      sql/slave.cc:
        Removed compiler warning
      sql/sp.cc:
        Removed compiler warning
      sql/sp_cache.cc:
        Removed compiler warning
      sql/sp_head.cc:
        Removed compiler warning
        Adjusted argument to reserve() to not use up too much memory that we are probably not going to need
      sql/sql_acl.cc:
        Added missing argument to store(longlong)
      sql/sql_base.cc:
        Removed compiler warning
      sql/sql_db.cc:
        Removed compiler warning
      sql/sql_delete.cc:
        Removed compiler warning
      sql/sql_handler.cc:
        Removed not used variable
      sql/sql_lex.h:
        Removed not used variable
      sql/sql_prepare.cc:
        Removed not used variable
      sql/sql_rename.cc:
        Removed not used variable
      sql/sql_select.cc:
        Fixed that select_options are not 'cut'
        Removed some not used variables
        Removed compiler warnings by adding cast
      sql/sql_show.cc:
        Removed not used variables
        Added missing argument to store(longlong)
        Removed compiler warnings
      sql/sql_trigger.cc:
        Removed not used variables
        Added cast to remove compiler warnings
      sql/sql_update.cc:
        Fixed wrong set of bool variable
      sql/sql_view.cc:
        Removed not used variables
        Added cast to get rid of compiler warnings
      sql-common/client.c:
        Fixed compiler warning
      sql-common/my_time.c:
        Fixed wrong argument to check_date()
        Added casts to get rid of compiler warnings
      sql/sql_yacc.yy:
        Removed not used variable
      sql/uniques.cc:
        Changes memory size from uint to ulong
        Added casts to get rid of compiler warnings
      strings/ctype-simple.c:
        Fixed cast to get rid of compiler warnings
      7191e775
    • unknown's avatar
      Fixed compiler warnings (Mostly VC++): · 1e87cfee
      unknown authored
      - Removed not used variables
      - Changed some ulong parameters/variables to ulonglong (possible serious bug)
      - Added casts to get rid of safe assignment from longlong to long (and similar)
      - Added casts to function parameters
      - Fixed signed/unsigned compares
      - Added some constructores to structures
      - Removed some not portable constructs
      
      Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
      (Added new parameter to net_clear() to define when we want the communication buffer to be emptied)
      
      
      client/mysql.cc:
        Removed not used variable
      client/mysqldump.c:
        Fixed compiler warning
      client/mysqlslap.c:
        Fixed compiler warning
      client/mysqltest.c:
        Fixed compiler warning
      extra/replace.c:
        Fixed compiler warning
      include/my_global.h:
        Fixed compiler warning
      include/mysql_com.h:
        Changed prototype for net_clear()
      libmysql/libmysql.c:
        Changed prototype for net_clear()
      mysys/base64.c:
        Fixed compiler warning (function definition and prototype didn't match)
      mysys/my_thr_init.c:
        AFter merge fixes
      mysys/my_vle.c:
        Fixed compiler warning
      sql/event_data_objects.cc:
        Fixed compiler warning
      sql/event_scheduler.cc:
        Removed not used variable
      sql/field.cc:
        Removed not used variables
        Fixed compiler warning
      sql/gen_lex_hash.cc:
        Fixed compiler warning
      sql/ha_partition.h:
        Fixed compiler warning
      sql/handler.cc:
        Fixed compiler warning
      sql/item.cc:
        Fixed compiler warning
      sql/item_create.cc:
        Fixed compiler warning
      sql/item_func.cc:
        Fixed compiler warning
      sql/item_strfunc.cc:
        Fixed compiler warning
      sql/item_timefunc.cc:
        Fixed compiler warning
      sql/item_xmlfunc.cc:
        Fixed compiler warning
      sql/log.cc:
        Fixed compiler warning
      sql/log_event.cc:
        Fixed compiler warning
      sql/log_event.h:
        Fixed compiler warning
      sql/mysql_priv.h:
        Fixed too short 'select_type'
      sql/net_serv.cc:
        Added argument to net_clear() if we should empty the communication buffer.
      sql/opt_range.cc:
        Fixed compiler warning
      sql/partition_info.cc:
        Fixed compiler warning
      sql/rpl_injector.h:
        Fixed compiler warning
      sql/set_var.cc:
        Fixed compiler warning
      sql/slave.cc:
        Fixed compiler warning
      sql/sp_head.cc:
        Fixed compiler warning
      sql/sql_base.cc:
        Fixed compiler warning
      sql/sql_db.cc:
        Fixed compiler warning
      sql/sql_delete.cc:
        Fixed compiler warning
      sql/sql_insert.cc:
        Fixed compiler warning
      sql/sql_lex.h:
        Fixed compiler warning
      sql/sql_parse.cc:
        Fixed compiler warning
      sql/sql_partition.cc:
        Fixed compiler warning
      sql/sql_plugin.cc:
        Fixed compiler warning
      sql/sql_prepare.cc:
        Fixed compiler warning
      sql/sql_rename.cc:
        Fixed compiler warning
      sql/sql_select.cc:
        Fixed compiler warning
      sql/sql_show.cc:
        Fixed compiler warning
      sql/sql_table.cc:
        Fixed compiler warning
      sql/sql_trigger.cc:
        Fixed compiler warning
      sql-common/client.c:
        Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
      sql-common/my_time.c:
        Fixed compiler warning
      sql/sql_union.cc:
        Fixed compiler warning
      sql/sql_update.cc:
        Fixed compiler warning
      sql/sql_view.cc:
        Fixed compiler warning
      sql/sql_yacc.yy:
        Fixed compiler warning
      sql/table.cc:
        Fixed compiler warning
      storage/archive/azio.c:
        Fixed compiler warning
      storage/csv/ha_tina.cc:
        Removed not used code
      storage/myisam/mi_unique.c:
        Fixed compiler warning
      storage/ndb/include/util/OutputStream.hpp:
        Fixed compiler warning
      storage/ndb/include/util/SocketAuthenticator.hpp:
        Fixed compiler warning
      storage/ndb/src/kernel/vm/Pool.hpp:
        Fixed compiler warning
      strings/ctype-simple.c:
        Fixed compiler warning
      strings/my_strchr.c:
        Fixed compiler warning
      1e87cfee
    • unknown's avatar
      A post-merge fix: fix the failing trigger-grant.test. · 6949b042
      unknown authored
      sql/sql_trigger.cc:
        Another post-merge fix: make TRIGGER privilege work again, after
        IF EXISTS refactoring.
      6949b042
  16. 26 Nov, 2006 1 commit
    • unknown's avatar
      Fixed a LOT of compiler warnings · 788ad30f
      unknown authored
      Added missing DBUG_RETURN statements (in mysqldump.c)
      Added missing enums
      Fixed a lot of wrong DBUG_PRINT() statements, some of which could cause crashes
      Removed usage of %lld and %p in printf strings as these are not portable or produces different results on different systems.
      
      
      client/mysqldump.c:
        Fixed some compiler warnings
        Added some missing DBUG_RETURN
        Remove copying of 'cluster' database
      client/mysqlslap.c:
        Fixed compiler warnings
      client/mysqltest.c:
        After merge fix
      extra/yassl/taocrypt/include/algebra.hpp:
        Removed compiler warning
      mysql-test/include/im_check_env.inc:
        Fixed race condition (mysqld1 could report 'starting' or 'online'
      mysql-test/mysql-test-run.pl:
        After merge fixes
        Added missing directory to LD_LIBRARY_PATH
      mysql-test/r/ctype_cp1250_ch.result:
        After merge fix
      mysql-test/r/im_cmd_line.result:
        Fixed race condition
      mysql-test/r/im_daemon_life_cycle.result:
        Fixed race condition
      mysql-test/r/im_instance_conf.result:
        Fixed race condition
      mysql-test/r/im_life_cycle.result:
        Fixed race condition
      mysql-test/r/im_utils.result:
        Fixed race condition
      mysql-test/r/log_tables.result:
        Fixed wrong result
      mysql-test/t/disabled.def:
        Disabled ndb_restore_partion, as ndb_restore_compate caused it to fail, becasue of table 'cluster/def/schema' which is stored in ndb_backup50
      mysys/my_compress.c:
        Removed compiler warnings
      mysys/my_getopt.c:
        Ensure we always have at least one space between option name and value
      plugin/fulltext/plugin_example.c:
        Removed compiler warnings
      server-tools/instance-manager/mysql_connection.cc:
        After merge fix
      sql/event_data_objects.cc:
        Fixed compiler warnings
        Fixed platform compatibility issues (%lld is not portable)
      sql/event_data_objects.h:
        Fixed compiler warnings
      sql/event_db_repository.cc:
        Fixed compiler warnings
      sql/event_queue.cc:
        Fixed compiler warnings
      sql/event_scheduler.cc:
        Fixed compiler warnings
      sql/events.cc:
        Fixed compiler warnings
      sql/field.cc:
        Fixed compiler warnings
      sql/ha_ndbcluster.cc:
        Fixed compiler warnings
      sql/ha_ndbcluster_binlog.cc:
        Fixed compiler warnings
      sql/ha_partition.cc:
        Fixed compiler warnings
      sql/handler.cc:
        Fixed compiler warnings
      sql/item_cmpfunc.cc:
        Fixed DBUG_PRINT style
      sql/item_func.cc:
        Fixed compiler warnings
      sql/log.cc:
        Fixed compiler warnings
      sql/log_event.cc:
        Fixed compiler warnings
      sql/mysqld.cc:
        Fixed compiler warnings
      sql/opt_range.cc:
        Fixed compiler warnings
      sql/repl_failsafe.cc:
        Indentation fixes
      sql/rpl_rli.cc:
        Fixed compiler warnings
      sql/rpl_tblmap.cc:
        Fixed compiler warnings
      sql/set_var.cc:
        Fixed compiler warnings
      sql/slave.cc:
        Fixed compiler warnings
      sql/sp_head.cc:
        Fixed compiler warnings
      sql/sql_base.cc:
        Fixed compiler warnings
        Fixed indentation
      sql/sql_binlog.cc:
        Fixed compiler warnings
      sql/sql_cache.cc:
        Fixed compiler warnings
      sql/sql_class.cc:
        Fixed compiler warnings
      sql/sql_handler.cc:
        Fixed compiler warnings
      sql/sql_lex.cc:
        Fixed compiler warnings
      sql/sql_parse.cc:
        Fixed compiler warnings
      sql/sql_partition.cc:
        Fixed compiler warnings
      sql/sql_prepare.cc:
        Fixed compiler warnings
      sql/sql_table.cc:
        Fixed compiler warnings
      sql/sql_test.cc:
        Fixed DBUG_PRINT style
      sql/sql_trigger.cc:
        Fixed DBUG_PRINT style
      sql/table.cc:
        Fixed compiler warnings
      storage/federated/ha_federated.cc:
        Fixed compiler warnings
      storage/myisam/mi_rsamepos.c:
        Fixed compiler warnings
      storage/ndb/include/ndb_global.h.in:
        After merge fix
      storage/ndb/include/util/NdbOut.hpp:
        Inform gcc that ndbout_c takes a printf() string as argument
      storage/ndb/include/util/SimpleProperties.hpp:
        After merge fixes
      storage/ndb/src/kernel/blocks/backup/Backup.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
        Fixed compiler warnings
        Fixed usage of uninitialized value (Got help from Jonas with patch)
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/lgman.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/pgman.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/restore.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/suma/Suma.cpp:
        Fixed compiler warnings
        Added missing enum's to switch
      storage/ndb/src/kernel/vm/Configuration.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/vm/DLHashTable.hpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/vm/RWPool.hpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/vm/SimulatedBlock.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/vm/WOPool.hpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp:
        Fixed compiler warnings
      storage/ndb/src/mgmclient/CommandInterpreter.cpp:
        Fixed compiler warnings
      storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/DictCache.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/NdbIndexOperation.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/NdbIndexStat.cpp:
        Initialize possible uninitialized variable
      storage/ndb/src/ndbapi/NdbOperationInt.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/NdbRecAttr.cpp:
        Added missing enum's (To avoid compiler warnings)
      storage/ndb/src/ndbapi/NdbScanOperation.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/ObjectMap.hpp:
        Fixed compiler warnings
      storage/ndb/tools/desc.cpp:
        Fixed compiler warnings
      storage/ndb/tools/restore/Restore.cpp:
        Fixed compiler warnings
      storage/ndb/tools/restore/consumer_restore.cpp:
        Fixed compiler warnings
      unittest/mytap/t/basic-t.c:
        Fixed compiler warnings
      unittest/mytap/tap.c:
        Fixed compiler warnings
      788ad30f
  17. 13 Nov, 2006 1 commit
    • unknown's avatar
      Bug#23703 (DROP TRIGGER needs an IF EXISTS) · 541e9c9a
      unknown authored
      This change set implements the DROP TRIGGER IF EXISTS functionality.
      
      This fix is considered a bug and not a feature, because without it,
      there is no known method to write a database creation script that can create
      a trigger without failing, when executed on a database that may or may not
      contain already a trigger of the same name.
      
      Implementing this functionality closes an orthogonality gap between triggers
      and stored procedures / stored functions (which do support the DROP IF
      EXISTS syntax).
      
      In sql_trigger.cc, in mysql_create_or_drop_trigger,
      the code has been reordered to:
      - perform the tests that do not depend on the file system (access()),
      - get the locks (wait_if_global_read_lock, LOCK_open)
      - call access()
      - perform the operation
      - write to the binlog
      - unlock (LOCK_open, start_waiting_global_read_lock)
      
      This is to ensure that all the code that depends on the presence of the
      trigger file is executed in the same critical section,
      and prevents race conditions similar to the case fixed by Bug 14262 :
      
      - thread 1 executes DROP TRIGGER IF EXISTS, access() returns a failure
      - thread 2 executes CREATE TRIGGER
      - thread 2 logs CREATE TRIGGER
      - thread 1 logs DROP TRIGGER IF EXISTS
      
      The patch itself is based on code contributed by the MySQL community,
      under the terms of the Contributor License Agreement (See Bug 18161).
      
      
      mysql-test/r/rpl_trigger.result:
        DROP TRIGGER IF EXISTS
      mysql-test/r/trigger.result:
        DROP TRIGGER IF EXISTS
      mysql-test/t/rpl_trigger.test:
        DROP TRIGGER IF EXISTS
      mysql-test/t/trigger.test:
        DROP TRIGGER IF EXISTS
      sql/sql_trigger.cc:
        DROP TRIGGER IF EXISTS
      sql/sql_yacc.yy:
        DROP TRIGGER IF EXISTS
      541e9c9a
  18. 21 Oct, 2006 1 commit
  19. 20 Oct, 2006 2 commits
    • unknown's avatar
      Fix bad merge from #14262. · f565eaf2
      unknown authored
      sql/sql_trigger.cc:
        Correct previous patch regarding binlog-entry type.
      f565eaf2
    • unknown's avatar
      Fix for bug#15228 "'invalid access to non-static data member' · 1a793de9
      unknown authored
      warnings in sql_trigger.cc and sql_view.cc".
      
      According to the current version of C++ standard offsetof() macro
      can't be used for non-POD types. So warnings were emitted when we
      tried to use this macro for TABLE_LIST and Table_triggers_list
      classes. Note that despite of these warnings it was probably safe
      thing to do.
      
      This fix tries to circumvent this limitation by implementing
      custom version of offsetof() macro to be used with these
      classes. This hack should go away once we will refactor
      File_parser class.
      
      Alternative approaches such as disabling this warning for
      sql_trigger.cc/sql_view.cc or for the whole server were
      considered less explicit. Also I was unable to find a way
      to disable particular warning for particular _part_ of
      file in GCC.
      
      
      sql/parse_file.h:
        Introduced auxillary macro which can be used instead of offsetof()
        to get offsets of members in class for non-POD types without getting
        warnings (assuming that all instances of the class has same offsets
        for same members).
      sql/sql_trigger.cc:
        Use my_offsetof() macro instead of standard offsetof() macro with
        Table_triggers_list class in order to avoid warnings (offsetof()
        cannot be used for non-POD types according to the standard).
      sql/sql_view.cc:
        Use my_offsetof() macro instead of standard offsetof() macro with
        TABLE_LIST class in order to avoid warnings (offsetof() cannot
        be used for non-POD types according to the standard).
      1a793de9
  20. 12 Oct, 2006 1 commit
    • unknown's avatar
      Additional patch for 5.1 commit for Bug#14262. · 0b48fb08
      unknown authored
      sql/sp.cc:
        Update binlog-writing scheme to 5.1 model.
      sql/sql_acl.cc:
        Update binlog-writing scheme to 5.1 model.
      sql/sql_trigger.cc:
        Update binlog-writing scheme to 5.1 model.
      0b48fb08
  21. 03 Oct, 2006 1 commit
    • unknown's avatar
      Bug #14262: SP: DROP PROCEDURE|VIEW (maybe more) write to binlog too late \ · e6eef5c1
      unknown authored
      	(race cond)
      
      It was possible for one thread to interrupt a Data Definition Language 
      statement and thereby get messages to the binlog out of order.  Consider:
      
      Connection 1: Drop Foo x
      Connection 2: Create or replace Foo x
      Connection 2: Log "Create or replace Foo x"
      Connection 1: Log "Drop Foo x"
      
      Local end would have Foo x, but the replicated slaves would not.
      
      The fix for this is to wrap all DDL and logging of a kind in the same mutex.  
      Since we already use mutexes for the various parts of altering the server, 
      this only entails moving the logging events down close to the action, inside 
      the mutex protection.
      
      
      BitKeeper/etc/collapsed:
        BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
        ---
        BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
        ---
        BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
        ---
        BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
        ---
        BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
        ---
        BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
        ---
        BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
        ---
        BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
      sql/sp.cc:
        Move logging inside the routine drop and update functions, so it can be 
        protected by a LOCK_open mutex.  (The "create" function already had such 
        a LOCK_open protection.)
      sql/sql_acl.cc:
        Move logging inside the grant functions, so that it can be protected by 
        LOCK_grant .
      sql/sql_db.cc:
        Add comments that describe how each logging event is protected.
      sql/sql_parse.cc:
        Move all logging statements about DDL statements close to the actual event, 
        so each can be protected by the same mutex.
      sql/sql_table.cc:
        Widen the scope of the mutex so that logging events are also protected.
      sql/sql_trigger.cc:
        Widen the scope of the mutex so that logging events are also protected.
      sql/sql_view.cc:
        Pass the head of the table linked-list so we can create a logging statement.
        
        Move the logging statement inside the worker function, and notably inside 
        the LOCK_open mutex.  Widen the same mutex a little to make room for logging.
      sql/sql_view.h:
        Pass the head of the table linked-list so we can create a logging statement.
      e6eef5c1
  22. 30 Sep, 2006 1 commit
  23. 21 Sep, 2006 1 commit
    • unknown's avatar
      Fix for bug#20670 "UPDATE using key and invoking trigger that modifies · 0e4dd85d
      unknown authored
      this key does not stop" (version for 5.0 only).
      
      UPDATE statement which WHERE clause used key and which invoked trigger
      that modified field in this key worked indefinetely.
      
      This problem occured because in cases when UPDATE statement was
      executed in update-on-the-fly mode (in which row is updated right
      during evaluation of select for WHERE clause) the new version of
      the row became visible to select representing WHERE clause and was
      updated again and again.
      We already solve this problem for UPDATE statements which does not
      invoke triggers by detecting the fact that we are going to update
      field in key used for scanning and performing update in two steps,
      during the first step we gather information about the rows to be
      updated and then doing actual updates. We also do this for
      MULTI-UPDATE and in its case we even detect situation when such
      fields are updated in triggers (actually we simply assume that
      we always update fields used in key if we have before update
      trigger).
      
      The fix simply extends this check which is done in check_if_key_used()/
      QUICK_SELECT_I::check_if_keys_used() routine/method in such way that
      it also detects cases when field used in key is updated in trigger.
      As nice side-effect we have more precise and thus more optimal
      perfomance-wise check for the MULTI-UPDATE.
      Also check_if_key_used()/QUICK_SELECT_I::check_if_keys_used() were
      renamed to is_key_used()/QUICK_SELECT_I::is_keys_used() in order to
      better reflect that boolean predicate.
      
      Note that this check is implemented in much more elegant way in 5.1 
      
      
      mysql-test/r/trigger.result:
        Added test case for bug#20670 "UPDATE using key and invoking trigger that
        modifies this key does not stop".
      mysql-test/t/trigger.test:
        Added test case for bug#20670 "UPDATE using key and invoking trigger that
        modifies this key does not stop".
      sql/key.cc:
        Renamed check_if_key_used() to is_key_used(). Also this routine checks if
        key uses field which can be updated by before update trigger defined on the
        table. As result we avoid using update-on-the-fly method in cases when trigger
        updates part of key which is used by select which filters rows to be updated
        and thus avoid infinite updates. By doing such check here we cover both UPDATE
        and MULTI-UPDATE cases.
      sql/mysql_priv.h:
        Renamed check_if_key_used() to is_key_used().
      sql/opt_range.cc:
        Renamed check_if_key_used()/QUICK_SELECT_I::check_if_keys_used() to
        is_key_used()/QUICK_SELECT_I::is_keys_used().
      sql/opt_range.h:
        Renamed QUICK_SELECT_I::check_if_keys_used() method to is_keys_used(),
        also updated comment describing it to reflect its extended semantics
        (this change was caused by change in check_if_key_used()/is_key_used()
         routine semantics).
      sql/sql_trigger.cc:
        Introduced Table_triggers_list::is_updated_in_before_update_triggers()
        method which is needed for checking if field of subject table can be
        changed in before update trigger.
      sql/sql_trigger.h:
        Table_triggers_list:
          Removed has_before_update_triggers() method which is not used any longer.
          Added declaration of is_updated_in_before_update_triggers() which is
          needed for checking if field of subject table can be changed by before
          update trigger.
      sql/sql_update.cc:
        safe_update_on_fly():
          check_if_key_used() routine and check_if_keys_used() method were
          renamed to is_key_used()/is_keys_used(). 
          Now cases when trigger updates fields which are part of key used for
          filtering rows for update are caught directly in is_key_used().
          This also allows to cover both UPDATE and MULTI-UPDATE cases.
      0e4dd85d
  24. 24 Aug, 2006 1 commit
    • unknown's avatar
      Polishing (was the part of original patch for BUG#16899): · 2f0a610f
      unknown authored
      Changed trigger-handling code so that there will be the one
      place for generate statement string for replication log
      and for trigger file.
      
      
      sql/sql_trigger.cc:
        Changed trigger-handling code so that there will be the one
        place for generate statement string for replication log
        and for trigger file.
      sql/sql_trigger.h:
        Changed trigger-handling code so that there will be the one
        place for generate statement string for replication log
        and for trigger file.
      2f0a610f
  25. 17 Aug, 2006 1 commit
    • unknown's avatar
      Cleanup patch. · 728a924c
      unknown authored
      There is an existing macros for initializing LEX_STRINGs
      with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
      (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      
      
      sql/handler.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/item.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/mysql_priv.h:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_acl.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_error.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_error.h:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_lex.h:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_parse.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_partition.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_plugin.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_show.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_trigger.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/sql_view.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      sql/tztime.cc:
        There is an existing macros for initializing LEX_STRINGs
        with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
        (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
      728a924c
  26. 14 Aug, 2006 1 commit
    • unknown's avatar
      Manual merge 5.0->5.1. Post-merge fixes. · 21e75cb0
      unknown authored
      client/mysqldump.c:
        A post-merge fix - 'sock' was renamed to 'mysql'
      mysql-test/r/events_bugs.result:
        A post merge fix: now we strip rear comments from the query before
        it gets into the log.
      mysql-test/r/func_group.result:
        A post merge fix: default clause is now printed uppercase.
      mysql-test/r/im_life_cycle.result:
        Fix my mistake in manual resolve.
      mysql-test/r/mysqlcheck.result:
        use test; - after we drop client_test_db there is no current database.
        This cleanup is present in 5.1 only, but the test that was added in 
        5.0 assumes there is a current database, test.
      mysql-test/r/mysqldump.result:
        Ignore results of execution of mysqldump: we can't rely on 
        MASTER_LOG_POS in test results, it's different for statement
        and row level logging.
      mysql-test/r/mysqlshow.result:
        A post-merge fix: information schema contains a few more tables
        in 5.1
      mysql-test/r/mysqltest.result:
        A post merge fix: add 5.1 test end separator.
      mysql-test/r/ndb_basic.result:
        A post-merge fix: add test end separators.
      mysql-test/r/rpl_switch_stm_row_mixed.result:
        A post merge fix: length of varbinary column is now 3 times less.
        Assuming a side effect of some other change. Length of any
        field is not relevant in this test.
      mysql-test/r/rpl_view.result:
        Add an end of test marker.
      mysql-test/r/show_check.result:
        Remove duplicate results. Add results from a merged test case.
      mysql-test/r/sp-error.result:
        Add test end separators.
      mysql-test/r/sp-security.result:
        Post-merge fix: use test after the current database is dropped.
      mysql-test/r/sp.result:
        Remove a duplicate result (bad merge that left a copy of
        the test case for Bug#19862 in the test suite).
      mysql-test/r/strict.result:
        An after-merge fix for a new test case: in 5.1 we issue a more accurate
        error message: "Incorrect value" instead of "Truncated value". I reason
        it so that in case of an error nothing is truncated, really.
        Also found similar changes in other test cases.
      mysql-test/r/type_datetime.result:
        Fix the text of an error.
      mysql-test/r/union.result:
        A post-merge fix: CHARACTER SET is now uppercase.
      mysql-test/t/mysqlcheck.test:
        A post-merge fix: use test, after current database is dropped, there
        is no current database.
      mysql-test/t/mysqldump.test:
        Disable result log: it's dependent on binlog position.
      mysql-test/t/sp-security.test:
        use test
      sql/item_sum.cc:
        Adjust the call to the constructor after the merge.
      sql/sp_head.cc:
        Add a missing DBUG_VOID_RETURN, move security checks out of
        execute_trigger to Table_triggers_list: in 5.1 we check for
        TRIGGER privilege, not SUPER privilege to execute triggers, so these
        checks lack table context inside execute_trigger and have to be
        performed when we have table object on hand.
      sql/sql_db.cc:
        A post-merge fix: adjust load_db_opt_by_name and check_db_dir_existence
        (new functions added in 5.0) to be tablename-to-filename encoding 
        friendly.
      sql/sql_lex.cc:
        A post-merge fix: make skip_rear_comments operate on const uchar *s.
      sql/sql_lex.h:
        A post-merge fix.
      sql/sql_show.cc:
        A post-merge fix: fix a bad merge, rename orig_sql_command -> sql_command.
      sql/sql_trigger.cc:
        A post-merge fix: move security checks to process_triggers
        from execute_trigger.
      sql/sql_view.cc:
        Adjust to the new signature of skip_rear_comments.
      sql/sql_yacc.yy:
        Adjust to the new signature of init_strings.
      21e75cb0
  27. 02 Aug, 2006 1 commit
    • unknown's avatar
      Bug#18775 - Temporary table from alter table visible to other threads · ef976d20
      unknown authored
      Continued implementation of WL#1324 (table name to filename encoding)
      
      The intermediate (not temporary) files of the new table
      during ALTER TABLE was visible for SHOW TABLES. These
      intermediate files are copies of the original table with
      the changes done by ALTER TABLE. After all the data is
      copied over from the original table, these files are renamed 
      to the original tables file names. So they are not temporary 
      files. They persist after ALTER TABLE, but just with another 
      name.
      
      In 5.0 the intermediate files are invisible for SHOW TABLES
      because all file names beginning with "#sql" were suppressed.
      
      This failed since 5.1.6 because even temporary table names were
      converted when making file names from them. The prefix became
      converted to "@0023sql". Converting the prefix during SHOW TABLES
      would suppress the listing of user tables that start with "#sql".
      
      The solution of the problem is to continue the implementation of
      the table name to file name conversion feature. One requirement
      is to suppress the conversion for temporary table names.
      
      This change is straightforward for real temporary tables as there
      is a function that creates temporary file names.
      
      But the generated path names are located in TMPDIR and have no
      relation to the internal table name. This cannot be used for
      ALTER TABLE. Its intermediate files need to be in the same
      directory as the old table files. And it is necessary to be
      able to deduce the same path from the same table name repeatedly.
      
      Consequently the intermediate table files must be handled like normal
      tables. Their internal names shall start with tmp_file_prefix
      (#sql) and they shall not be converted like normal table names.
      
      I added a flags parameter to all relevant functions that are
      called from ALTER TABLE. It is used to suppress the conversion
      for the intermediate table files.
      
      The outcome is that the suppression of #sql in SHOW TABLES
      works again. It does not suppress user tables as these are
      converted to @0023sql on file level.
      
      This patch does also fix ALTER TABLE ... RENAME, which could not 
      rename a table with non-ASCII characters in its name.
      
      It does also fix the problem that a user could create a table like
      `#sql-xxxx-yyyy`, where xxxx is mysqld's pid and yyyy is the thread
      ID of some other thread, which prevented this thread from running 
      ALTER TABLE.
      
      Some of the above problems are mentioned in Bug 1405, which can
      be closed with this patch.
      
      This patch does also contain some minor fixes for other forgotten
      conversions. Still known problems are reported as bugs 21370,
      21373, and 21387.
      
      
      mysql-test/r/alter_table.result:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test results.
      mysql-test/r/backup.result:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test results.
      mysql-test/r/repair.result:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test results.
      mysql-test/t/alter_table.test:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test cases.
      mysql-test/t/backup.test:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test cases.
      mysql-test/t/repair.test:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added a test case.
      sql/ha_myisam.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added missing table name mapping calls to backup() and restore().
      sql/ha_myisammrg.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/ha_ndbcluster.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/ha_ndbcluster_binlog.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/ha_ndbcluster_binlog.h:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Removed unnecessary check for wrong temp file prefix.
      sql/mysql_priv.h:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Extended quick_rm_table(), mysql_rename_table(), and
        build_table_filename() by an flags argument, which can indicate
        temporary table names that should not be converted.
        Added symbolic flag values.
      sql/sql_acl.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_base.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Fixed a comment.
        Added DBUG calls.
      sql/sql_db.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_delete.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_insert.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_partition.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_rename.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_show.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Reverted the former fix for this bug. tmp_file_prefix is now used
        verbatim in the comparison of file names.
      sql/sql_table.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added a check for a tmp_file_prefix file name to
        filename_to_tablename(). These names are now accepted without
        conversion.
        Extended quick_rm_table(), mysql_rename_table(), and
        build_table_filename() by an flags argument, which can indicate
        temporary table names that should not be converted.
        Removed the table to file name conversion from
        build_tmptable_filename().
        Disabled REPAIR TABLE ... USE_FRM for temporary tables.
        Added the forgotten conversion to mysql_alter_table() for the case
        of ALTER TABLE ... RENAME.
        Added comments and DBUG calls.
      sql/sql_trigger.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_view.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/table.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Replaced a literal ".frm" by reg_ext.
        Added DBUG calls.
      storage/innobase/row/row0mysql.c:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Changed back the encoded temp file prefix to #sql.
      ef976d20
  28. 27 Jul, 2006 1 commit
    • unknown's avatar
      Fix for BUG#20438: CREATE statements for views, stored routines and triggers · d36f5781
      unknown authored
      can be not replicable.
      
      Now CREATE statements for writing in the binlog are created as follows:
        - the beginning of the statement is re-created;
        - the rest of the statement is copied from the original query.
      
      The problem appears when there is a version-specific comment (produced by
      mysqldump), started in the re-created part of the statement and closed in the
      copied part -- there is closing comment-parenthesis, but there is no opening
      one.
      
      The proper fix could be to re-create original statement, but we can not
      implement it in 5.0. So, for 5.0 the fix is just to cut closing
      comment-parenthesis. This technique is also used for SHOW CREATE PROCEDURE
      statement (so we are able to reuse existing code).
      
      
      mysql-test/r/rpl_sp.result:
        Updated result file.
      mysql-test/r/rpl_trigger.result:
        Updated result file.
      mysql-test/r/rpl_view.result:
        Updated result file.
      mysql-test/t/rpl_sp.test:
        Added test case for BUG#20438.
      mysql-test/t/rpl_trigger.test:
        Added test case for BUG#20438.
      mysql-test/t/rpl_view.test:
        Added test case for BUG#20438.
      sql/sp.cc:
        Trim comments at the end.
      sql/sp_head.cc:
        Moved this code to the separate function to be re-used.
      sql/sql_lex.cc:
        Added a new function.
      sql/sql_lex.h:
        Added a new function.
      sql/sql_trigger.cc:
        Trim comments at the end.
      sql/sql_view.cc:
        Trim comments at the end.
      d36f5781
  29. 13 Jul, 2006 1 commit
    • unknown's avatar
      Bug#18630: Arguments of suid routine calculated in wrong security · 06bf59ad
      unknown authored
                 context.
      
      Routine arguments were evaluated in the security context of the routine
      itself, not in the caller's context.
      
      The bug is fixed the following way:
      
        - Item_func_sp::find_and_check_access() has been split into two
          functions: Item_func_sp::find_and_check_access() itself only
          finds the function and check that the caller have EXECUTE privilege
          on it.  New function set_routine_security_ctx() changes security
          context for SUID routines and checks that definer have EXECUTE
          privilege too.
      
        - new function sp_head::execute_trigger() is called from
          Table_triggers_list::process_triggers() instead of
          sp_head::execute_function(), and is effectively just as the
          sp_head::execute_function() is, with all non-trigger related code
          removed, and added trigger-specific security context switch.
      
        - call to Item_func_sp::find_and_check_access() stays outside
          of sp_head::execute_function(), and there is a code in
          sql_parse.cc before the call to sp_head::execute_procedure() that
          checks that the caller have EXECUTE privilege, but both
          sp_head::execute_function() and sp_head::execute_procedure() call
          set_routine_security_ctx() after evaluating their parameters,
          and restore the context after the body is executed.
      
      
      mysql-test/r/sp-security.result:
        Add test case for bug#18630: Arguments of suid routine calculated
        in wrong security context.
      mysql-test/t/sp-security.test:
        Add result for bug#18630: Arguments of suid routine calculated
        in wrong security context.
      sql/item_func.cc:
        Do not change security context before executing the function, as it
        will be changed after argument evaluation.
        Do not change security context in Item_func_sp::find_and_check_access().
      sql/item_func.h:
        Change prototype for Item_func_sp::find_and_check_access().
      sql/sp_head.cc:
        Add set_routine_security_ctx() function.
        Add sp_head::execute_trigger() method.
        Change security context in sp_head::execute_trigger(), and in
        sp_head::execute_function() and sp_head::execute_procedure()
        after argument evaluation.
        Move pop_all_cursors() call to sp_head::execute().
      sql/sp_head.h:
        Add declaration for sp_head::execute_trigger() and
        set_routine_security_ctx().
      sql/sql_parse.cc:
        Do not change security context before executing the procedure, as it
        will be changed after argument evaluation.
      sql/sql_trigger.cc:
        Call new sp_head::execute_trigger() instead of
        sp_head::execute_function(), which is responsible to switch
        security context.
      06bf59ad
  30. 06 Jul, 2006 1 commit
    • unknown's avatar
      After merge fixes for patch solving bug#18437 "Wrong values inserted with a · 0e47753f
      unknown authored
      before update trigger on NDB table".
      
      Two main changes:
      - We use TABLE::read_set/write_set bitmaps for marking fields used by
        statement instead of Field::query_id in 5.1.
      - Now when we mark columns used by statement we take into account columns 
        used by table's triggers instead of marking all columns as used if table
        has triggers.
      
      
      mysql-test/r/federated.result:
        Changed test in order to make it work with RBR.
        RBR changes the way in which we execute "DELETE FROM t1" statement - we don't
        use handler::delete_all_rows() method if RBR is enabled (see bug#19066).
        As result federated engine produces different sequences of statements for
        remote server in non-RBR and in RBR cases. And this changes order of the
        rows inserted by following INSERT statements.
      mysql-test/t/federated.test:
        Changed test in order to make it work with RBR.
        RBR changes the way in which we execute "DELETE FROM t1" statement - we don't
        use handler::delete_all_rows() method if RBR is enabled (see bug#19066).
        As result federated engine produces different sequences of statements for
        remote server in non-RBR and in RBR cases. And this changes order of the
        rows inserted by following INSERT statements.
      sql/ha_partition.cc:
        Added handling of HA_EXTRA_WRITE_CAN_REPLACE/HA_EXTRA_WRITE_CANNOT_REPLACE
        to ha_partition::extra().
      sql/item.cc:
        Adjusted comment after merge. In 5.1 we use TABLE::read_set/write_set
        bitmaps instead of Field::query_id for marking columns used.
      sql/log_event.cc:
        Write_rows_log_event::do_before_row_operations():
          Now we explicitly inform handler that we want to replace rows so it can
          promote operation done by write_row() to replace.
      sql/mysql_priv.h:
        Removed declaration of mark_fields_used_by_triggers_for_insert_stmt() which
        is no longer used (we have TABLE::mark_columns_needed_for_insert() instead).
      sql/sql_insert.cc:
        Adjusted code after merge. Get rid of mark_fields_used_by_triggers_for_insert_stmt()
        as now we use TABLE::mark_columns_needed_for_insert() for the same purprose.
        Aligned places where we call this method with places where we call
        mark_fields_used_by_triggers_for_insert() in 5.0.
        Finally we no longer need to call handler::extra(HA_EXTRA_WRITE_CAN_REPLACE)
        in case of REPLACE statement since in 5.1 write_record() marks all columns
        as used before doing actual row replacement.
      sql/sql_load.cc:
        Adjusted code after merge. In 5.1 we use TABLE::mark_columns_needed_for_insert() instead of
        mark_fields_used_by_triggers_for_insert_stmt() routine. We also no longer
        need to call handler::extra(HA_EXTRA_RETRIEVE_ALL_COLS) if we execute LOAD
        DATA REPLACE since in 5.1 write_record() will mark all columns as used before
        doing actual row replacement.
      sql/sql_trigger.cc:
        Table_triggers_list::mark_fields_used():
          We use TABLE::read_set/write_set bitmaps for marking fields used instead
          of Field::query_id in 5.1.
      sql/sql_trigger.h:
        TABLE::mark_columns_needed_for_* methods no longer need to be friends of
        Table_triggers_list class as intead of dirrectly accessing its private
        members they can use public Table_triggers_list::mark_fields_used() method.
        Also Table_triggers)list::mark_fields_used() no longer needs THD argument.
      sql/table.cc:
        TABLE::mark_columns_needed_for_*():
          Now we mark columns which are really used by table's triggers instead of
          marking all columns as used if table has triggers.
      0e47753f
  31. 01 Jul, 2006 1 commit
    • unknown's avatar
      Fix for bug#18437 "Wrong values inserted with a before update trigger on · ae9724cc
      unknown authored
      NDB table".
      
      SQL-layer was not marking fields which were used in triggers as such. As
      result these fields were not always properly retrieved/stored by handler
      layer. So one might got wrong values or lost changes in triggers for NDB,
      Federated and possibly InnoDB tables.
      This fix solves the problem by marking fields used in triggers
      appropriately.
      
      Also this patch contains the following cleanup of ha_ndbcluster code:
      
      We no longer rely on reading LEX::sql_command value in handler in order
      to determine if we can enable optimization which allows us to handle REPLACE
      statement in more efficient way by doing replaces directly in write_row()
      method without reporting error to SQL-layer.
      Instead we rely on SQL-layer informing us whether this optimization
      applicable by calling handler::extra() method with
      HA_EXTRA_WRITE_CAN_REPLACE flag.
      As result we no longer apply this optimzation in cases when it should not
      be used (e.g. if we have on delete triggers on table) and use in some
      additional cases when it is applicable (e.g. for LOAD DATA REPLACE).
      
      Finally this patch includes fix for bug#20728 "REPLACE does not work
      correctly for NDB table with PK and unique index".
        
      This was yet another problem which was caused by improper field mark-up.
      During row replacement fields which weren't explicity used in REPLACE
      statement were not marked as fields to be saved (updated) so they have
      retained values from old row version. The fix is to mark all table
      fields as set for REPLACE statement. Note that in 5.1 we already solve
      this problem by notifying handler that it should save values from all
      fields only in case when real replacement happens.
      
      
      include/my_base.h:
        Added HA_EXTRA_WRITE_CAN_REPLACE, HA_EXTRA_WRITE_CANNOT_REPLACE - new
        parameters for ha_extra() method. We use them to inform handler that
        write_row() which tries to insert new row into the table and encounters
        some already existing row with same primary/unique key can replace old
        row with new row instead of reporting error.
      mysql-test/r/federated.result:
        Additional test for bug#18437 "Wrong values inserted with a before update
        trigger on NDB table".
      mysql-test/r/ndb_replace.result:
        Added test for bug #20728 "REPLACE does not work correctly for NDB table
        with PK and unique index". Updated wrong results from older test.
      mysql-test/t/federated.test:
        Additional test for bug#18437 "Wrong values inserted with a before update
        trigger on NDB table".
      mysql-test/t/ndb_replace.test:
        Added test for bug #20728 "REPLACE does not work correctly for NDB table
        with PK and unique index".
      sql/ha_ndbcluster.cc:
        We no longer rely on reading LEX::sql_command value in handler in order
        to determine if we can enable optimization which allows us to handle REPLACE
        statement in more efficient way by doing replaces directly in write_row()
        method without reporting error to SQL-layer.
        Instead we rely on SQL-layer informing us whether this optimization
        applicable by calling handler::extra() method with
        HA_EXTRA_WRITE_CAN_REPLACE flag.
        As result we no longer apply this optimization in cases when it should not
        be used (e.g. if we have on delete triggers on table) and use in some
        additional cases when it is applicable (e.g. for LOAD DATA REPLACE).
      sql/item.cc:
        Item_trigger_field::setup_field():
          Added comment explaining why we don't set Field::query_id in this method.
      sql/mysql_priv.h:
        mysql_alter_table() function no longer takes handle_duplicates argument.
        Added declaration of mark_fields_used_by_triggers_for_insert_stmt() function.
      sql/sql_delete.cc:
        Mark fields which are used by ON DELETE triggers so handler will retrieve
        values for these fields.
      sql/sql_insert.cc:
        Explicitly inform handler that we are doing REPLACE (using ha_extra() method)
        in cases when it can promote insert operation done by write_row() to replace.
        Also when we do REPLACE we want to store values for all columns so we should
        inform handler about it.
        Finally we should mark fields used by ON UPDATE/ON DELETE triggers as such
        so handler can properly retrieve/restore values in these fields during
        execution of REPLACE and INSERT ... ON DUPLICATE KEY UPDATE statements.
      sql/sql_load.cc:
        Explicitly inform handler that we are doing LOAD DATA REPLACE (using
        ha_extra() method) in cases when it can promote insert operation done by
        write_row() to replace.
        Also when we do replace we want to save (replace) values for all columns
        so we should inform handler about it.
        Finally to properly execute LOAD DATA for table with triggers we should
        mark fields used by ON INSERT triggers as such so handler can properly
        store values for these fields.
      sql/sql_parse.cc:
        mysql_alter_table() function no longer takes handle_duplicates argument.
      sql/sql_table.cc:
        Got rid of handle_duplicates argument in mysql_alter_table() and
        copy_data_between_tables() functions. These functions were always
        called with handle_duplicates == DUP_ERROR and thus contained dead
        (and probably incorrect) code.
      sql/sql_trigger.cc:
        Added Table_triggers_list::mark_fields_used() method which is used to mark
        fields read/set by triggers as such so handlers will be able properly
        retrieve/store values in these fields.
      sql/sql_trigger.h:
        Table_triggers_list:
          Added mark_fields_used() method which is used to mark fields read/set by
          triggers as such so handlers will be able properly retrieve/store values
          in these fields. To implement this method added 'trigger_fields' member
          which is array of lists linking items for all fields used in triggers
          grouped by event and action time.
      sql/sql_update.cc:
        Mark fields which are used by ON UPDATE triggers so handler will retrieve
        and save values for these fields.
      mysql-test/r/ndb_trigger.result:
        Added test for bug#18437 "Wrong values inserted with a before update trigger
        on NDB table".
      mysql-test/t/ndb_trigger.test:
        Added test for bug#18437 "Wrong values inserted with a before update trigger
        on NDB table".
      ae9724cc
  32. 28 Jun, 2006 2 commits
    • unknown's avatar
      Bug#10946: Confusing error messeges in the case of duplicate trigger definition · 837c9719
      unknown authored
      It was hard to distinguish case, when one was unable to create trigger
      on the table because trigger with same action time and event already
      existed for this table, from the case, when one tried to create trigger
      with name which was already occupied by some other trigger, since in
      both these cases we emitted ER_TRG_ALREADY_EXISTS error and message.
      Now we emit ER_NOT_SUPPORTED_YET error with appropriate additional
      message in the first case. There is no sense in introducing separate
      error for this situation since we plan to get rid of this limitation
      eventually.
      
      
      mysql-test/r/trigger.result:
        Update result for new error message.
      mysql-test/t/trigger.test:
        Update test for new error code.
      sql/sql_trigger.cc:
        If there is already a trigger with the same activation time, report an
        "Unsupported yet" error.
      837c9719
    • unknown's avatar
      Bug #18005: Creating a trigger on mysql.event leads to server crash on scheduler startup · 88afd72b
      unknown authored
      Bug #18361: Triggers on mysql.user table cause server crash
      
       Because they do not work, we do not allow creating triggers on tables
       within the 'mysql' schema.
      
       (They may be made to work and re-enabled at some later date, but not
       in 5.0 or 5.1.)
      
      
      mysql-test/r/trigger.result:
        Add new results
      mysql-test/t/trigger.test:
        Add new regression test for creating triggers on system schema
      sql/share/errmsg.txt:
        Add new error message
      sql/sql_trigger.cc:
        Disallow creating triggers on tables in the 'mysql' schema
      88afd72b
  33. 26 Jun, 2006 2 commits
    • unknown's avatar
      A fix and a test case for · d6bcbfbe
      unknown authored
       Bug#19022 "Memory bug when switching db during trigger execution"
       Bug#17199 "Problem when view calls function from another database."
       Bug#18444 "Fully qualified stored function names don't work correctly in
                  SELECT statements"
      
       Documentation note: this patch introduces a change in behaviour of prepared
       statements.
      
       This patch adds a few new invariants with regard to how THD::db should
       be used. These invariants should be preserved in future:
      
        - one should never refer to THD::db by pointer and always make a deep copy
          (strmake, strdup)
        - one should never compare two databases by pointer, but use strncmp or
          my_strncasecmp
        - TABLE_LIST object table->db should be always initialized in the parser or
          by creator of the object.
      
          For prepared statements it means that if the current database is changed
          after a statement is prepared, the database that was current at prepare
          remains active. This also means that you can not prepare a statement that
          implicitly refers to the current database if the latter is not set.
          This is not documented, and therefore needs documentation. This is NOT a
          change in behavior for almost all SQL statements except:
           - ALTER TABLE t1 RENAME t2 
           - OPTIMIZE TABLE t1
           - ANALYZE TABLE t1
           - TRUNCATE TABLE t1 --
           until this patch t1 or t2 could be evaluated at the first execution of
           prepared statement. 
      
           CURRENT_DATABASE() still works OK and is evaluated at every execution
           of prepared statement.
      
           Note, that in stored routines this is not an issue as the default
           database is the database of the stored procedure and "use" statement
           is prohibited in stored routines.
      
        This patch makes obsolete the use of check_db_used (it was never used in the
        old code too) and all other places that check for table->db and assign it
        from THD::db if it's NULL, except the parser.
      
       How this patch was created: THD::{db,db_length} were replaced with a
       LEX_STRING, THD::db. All the places that refer to THD::{db,db_length} were
       manually checked and:
        - if the place uses thd->db by pointer, it was fixed to make a deep copy
        - if a place compared two db pointers, it was fixed to compare them by value
          (via strcmp/my_strcasecmp, whatever was approproate)
       Then this intermediate patch was used to write a smaller patch that does the
       same thing but without a rename.
      
       TODO in 5.1:
         - remove check_db_used
         - deploy THD::set_db in mysql_change_db
      
       See also comments to individual files.
      
      
      mysql-test/r/create.result:
        Modify the result file: a database can never be NULL.
      mysql-test/r/ps.result:
        Update test results (Bug#17199 et al)
      mysql-test/r/sp.result:
        Update test results (Bug#17199 et al)
      mysql-test/t/create.test:
        Update the id of the returned error.
      mysql-test/t/ps.test:
        Add test coverage for prepared statements and current database. In scope of
        work on Bug#17199 "Problem when view calls function from another database."
      mysql-test/t/sp.test:
        Add a test case for Bug#17199 "Problem when view calls function from another
        database." and Bug#18444 "Fully qualified stored function names don't work
        correctly in SELECT statements". Test a complementary problem.
      sql/item_strfunc.cc:
        Touch the code that reads thd->db (cleanup).
      sql/log_event.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/slave.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/slave.h:
        Remove a declaration for a method that is used only in one module.
      sql/sp.cc:
        Rewrite sp_use_new_db: this is a cleanup that I needed in order to understand
        this function and ensure that it has no bugs.
      sql/sp.h:
        Add a new declaration for sp_use_new_db (uses LEX_STRINGs) and a comment.
      sql/sp_head.cc:
        - drop sp_name_current_db_new - a creator of sp_name class that was used
        when sp_name was created for an identifier without an explicitly initialized
        database. Now we pass thd->db to constructor of sp_name right in the 
        parser.
        - rewrite sp_head::init_strings: name->m_db is always set now
        - use the new variant of sp_use_new_db
        - we don't need to update thd->db with SP MEM_ROOT pointer anymore when
        parsing a stored procedure, as noone will refer to it (yes!)
      sql/sp_head.h:
        - remove unneded methods and members
      sql/sql_class.h:
        - introduce 3 THD  methods to work with THD::db:
          .set_db to assign the current database
          .reset_db to reset the current database (temporarily) or set it to NULL
          .opt_copy_db_to - to deep-copy thd->db to a pointer if it's not NULL
      sql/sql_db.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/sql_insert.cc:
        - replace checks with asserts: table_list->db must be always set in the parser.
      sql/sql_lex.h:
        - add a comment
      sql/sql_parse.cc:
        - implement the invariant described in the changeset comment.
        - remove juggling with lex->sphead in SQLCOM_CREATE_PROCEDURE:
          now db_load_routine uses its own LEX object and doesn't damage the main
          LEX.
        - add DBUG_ASSERT(0) to unused "check_db_used"
      sql/sql_table.cc:
        - replace a check with an assert (table_ident->db)
      sql/sql_trigger.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/sql_udf.cc:
        - use thd->set_db instead of direct modification of to thd->db
      sql/sql_view.cc:
        - replace a check with an assert (view->db)
      sql/sql_yacc.yy:
        - make sure that we always copy table->db or name->db or ident->db or
          select_lex->db from thd->db if the former is not set. If thd->db
          is not set but is accessed, return an error.
      sql/tztime.cc:
        - be nice, never copy thd->db by pointer.
      d6bcbfbe
    • unknown's avatar
      Bug#16218 - Crash on insert delayed · ab5ebc0f
      unknown authored
      Bug#17294 - INSERT DELAYED puting an \n before data
      Bug#16611 - INSERT DELAYED corrupts data
      Bug#13707 - Server crash with INSERT DELAYED on MyISAM table
      Combined as Bug#16218.
      
      INSERT DELAYED crashed in 5.0 on a table with a varchar that 
      could be NULL and was created pre-5.0 (Bugs 16218 and 13707).
      INSERT DELAYED corrupted data in 5.0 on a table with varchar 
      fields that was created pre-5.0 (Bugs 17294 and 16611).
      
      In case of INSERT DELAYED the open table is copied from the
      delayed insert thread to be able to create a record for the 
      queue. When copying the fields, a method was used that did 
      convert old varchar to new varchar fields and did not set up 
      some pointers into the record buffer of the table.
      
      The field conversion was guilty for the misinterpretation of 
      the record contents by the delayed insert thread. The wrong
      pointer setup was guilty for the crashes.
      
      For Bug 13707 (Server crash with INSERT DELAYED on MyISAM table)
      I fixed the above mentioned method to set up one of the pointers.
      For Bug 16218 I set up the other pointers too.
      
      But when looking at the corruptions I got aware that converting
      the field type was totally wrong for INSERT DELAYED. The copied
      table is used to create a record that is to be sent to the
      delayed insert thread. Of course it can interpret the record
      correctly only if all field types are the same in both table
      objects.
      
      So I revoked the fix for Bug 13707 and changed the new_field() 
      method so that it can suppress conversions.
      
      No test case as this is a migration problem. One needs to
      create a table with 4.x and use it with 5.x. I added two
      test scripts to the bug report.
      
      
      sql/field.cc:
        Bug#16218 - Crash on insert delayed
        Bug#17294 - INSERT DELAYED puting an \n before data
        Bug#16611 - INSERT DELAYED corrupts data
        Bug#13707 - Server crash with INSERT DELAYED on MyISAM table
        Combined as Bug#16218.
        
        Added parameter 'keep_type' to Field::new_field().
        
        Undid the change from Bug 13707 (Server crash with INSERT 
        DELAYED on MyISAM table).
        I solved all four bugs in sql/sql_insert.cc by making exact
        duplicates of the fields. The new_field() method converts
        certain field types, which is wrong for INSERT DELAYED.
      sql/field.h:
        Bug#13707 - Server crash with INSERT DELAYED on MyISAM table
        Combined as Bug#16218.
        
        Added parameter 'keep_type' to Field::new_field().
      sql/sql_insert.cc:
        Bug#16218 - Crash on insert delayed
        Bug#17294 - INSERT DELAYED puting an \n before data
        Bug#16611 - INSERT DELAYED corrupts data
        Bug#13707 - Server crash with INSERT DELAYED on MyISAM table
        Combined as Bug#16218.
        
        Added comments. Made small style fixes.
        Used the new parameter 'keep_type' of Field::new_field()
        to avoid field type conversion. The table copy must have
        exactly the same types of fields as the original table.
        Otherwise the record contents created by the foreground 
        thread could be misinterpreted by the delayed insert thread.
      sql/sql_select.cc:
        Bug#16218 - Crash on insert delayed
        Bug#17294 - INSERT DELAYED puting an \n before data
        Bug#16611 - INSERT DELAYED corrupts data
        Bug#13707 - Server crash with INSERT DELAYED on MyISAM table
        Combined as Bug#16218.
        
        Added parameter 'keep_type' to Field::new_field().
        
        Undid the change from Bug 13707 (Server crash with INSERT 
        DELAYED on MyISAM table).
        I solved all four bugs in sql/sql_insert.cc by making exact
        duplicates of the fields. The new_field() method converts
        certain field types, which is wrong for INSERT DELAYED.
      sql/sql_trigger.cc:
        Bug#16218 - Crash on insert delayed
        Bug#17294 - INSERT DELAYED puting an \n before data
        Bug#16611 - INSERT DELAYED corrupts data
        Bug#13707 - Server crash with INSERT DELAYED on MyISAM table
        Combined as Bug#16218.
        
        Added parameter 'keep_type' to Field::new_field().
        
        Undid the change from Bug 13707 (Server crash with INSERT 
        DELAYED on MyISAM table).
        I solved all four bugs in sql/sql_insert.cc by making exact
        duplicates of the fields. The new_field() method converts
        certain field types, which is wrong for INSERT DELAYED.
      sql/table.cc:
        Bug#16218 - Crash on insert delayed
        Bug#17294 - INSERT DELAYED puting an \n before data
        Bug#16611 - INSERT DELAYED corrupts data
        Bug#13707 - Server crash with INSERT DELAYED on MyISAM table
        Combined as Bug#16218.
        
        Added parameter 'keep_type' to Field::new_field().
        
        Undid the change from Bug 13707 (Server crash with INSERT 
        DELAYED on MyISAM table).
        I solved all four bugs in sql/sql_insert.cc by making exact
        duplicates of the fields. The new_field() method converts
        certain field types, which is wrong for INSERT DELAYED.
      ab5ebc0f