An error occurred fetching the project authors.
  1. 13 Oct, 2013 1 commit
    • Michael Widenius's avatar
      Fixes for parallel slave: · 2e100cc5
      Michael Widenius authored
      - Made slaves temporary table multi-thread slave safe by adding mutex around save_temporary_table usage.
        - rli->save_temporary_tables is the active list of all used temporary tables
        - This is copied to THD->temporary_tables when temporary tables are opened and updated when temporary tables are closed
        - Added THD->lock_temporary_tables() and THD->unlock_temporary_tables() to simplify this.
      - Relay_log_info->sql_thd renamed to Relay_log_info->sql_driver_thd to avoid wrong usage for merged code.
      - Added is_part_of_group() to mark functions that are part of the next function. This replaces setting IN_STMT when events are executed.
      - Added is_begin(), is_commit() and is_rollback() functions to Query_log_event to simplify code.
      - If slave_skip_counter is set run things in single threaded mode. This simplifies code for skipping events.
      - Updating state of relay log (IN_STMT and IN_TRANSACTION) is moved to one single function: update_state_of_relay_log()
        We can't use OPTION_BEGIN to check for the state anymore as the sql_driver and sql execution threads may be different.
        Clear IN_STMT and IN_TRANSACTION in init_relay_log_pos() and Relay_log_info::cleanup_context() to ensure the flags doesn't survive slave restarts
        is_in_group() is now independent of state of executed transaction.
      - Reset thd->transaction.all.modified_non_trans_table() if we did set it for single table row events.
        This was mainly for keeping the flag as documented.
      - Changed slave_open_temp_tables to uint32 to be able to use atomic operators on it.
      - Relay_log_info::sleep_lock -> rpl_group_info::sleep_lock
      - Relay_log_info::sleep_cond -> rpl_group_info::sleep_cond
      - Changed some functions to take rpl_group_info instead of Relay_log_info to make them multi-slave safe and to simplify usage
        - do_shall_skip()
        - continue_group()
        - sql_slave_killed()
        - next_event()
      - Simplifed arguments to io_salve_killed(), check_io_slave_killed() and sql_slave_killed(); No reason to supply THD as this is part of the given structure.
      - set_thd_in_use_temporary_tables() removed as in_use is set on usage
      - Added information to thd_proc_info() which thread is waiting for slave mutex to exit.
      - In open_table() reuse code from find_temporary_table()
      
      Other things:
      - More DBUG statements
      - Fixed the rpl_incident.test can be run with --debug
      - More comments
      - Disabled not used function rpl_connect_master()
      
      mysql-test/suite/perfschema/r/all_instances.result:
        Moved sleep_lock and sleep_cond to rpl_group_info
      mysql-test/suite/rpl/r/rpl_incident.result:
        Updated result
      mysql-test/suite/rpl/t/rpl_incident-master.opt:
        Not needed anymore
      mysql-test/suite/rpl/t/rpl_incident.test:
        Fixed that test can be run with --debug
      sql/handler.cc:
        More DBUG_PRINT
      sql/log.cc:
        More comments
      sql/log_event.cc:
        Added DBUG statements
        do_shall_skip(), continue_group() now takes rpl_group_info param
        Use is_begin(), is_commit() and is_rollback() functions instead of inspecting query string
        We don't have set slaves temporary tables 'in_use' as this is now done when tables are opened.
        Removed IN_STMT flag setting. This is now done in update_state_of_relay_log()
        Use IN_TRANSACTION flag to test state of relay log.
        In rows_event_stmt_cleanup() reset thd->transaction.all.modified_non_trans_table if we had set this before.
      sql/log_event.h:
        do_shall_skip(), continue_group() now takes rpl_group_info param
        Added is_part_of_group() to mark events that are part of the next event. This replaces setting IN_STMT when events are executed.
        Added is_begin(), is_commit() and is_rollback() functions to Query_log_event to simplify code.
      sql/log_event_old.cc:
        Removed IN_STMT flag setting. This is now done in update_state_of_relay_log()
        do_shall_skip(), continue_group() now takes rpl_group_info param
      sql/log_event_old.h:
        Added is_part_of_group() to mark events that are part of the next event.
        do_shall_skip(), continue_group() now takes rpl_group_info param
      sql/mysqld.cc:
        Changed slave_open_temp_tables to uint32 to be able to use atomic operators on it.
        Relay_log_info::sleep_lock -> Rpl_group_info::sleep_lock
        Relay_log_info::sleep_cond -> Rpl_group_info::sleep_cond
      sql/mysqld.h:
        Updated types and names
      sql/rpl_gtid.cc:
        More DBUG
      sql/rpl_parallel.cc:
        Updated TODO section
        Set thd for event that is execution
        Use new  is_begin(), is_commit() and is_rollback() functions.
        More comments
      sql/rpl_rli.cc:
        sql_thd -> sql_driver_thd
        Relay_log_info::sleep_lock -> rpl_group_info::sleep_lock
        Relay_log_info::sleep_cond -> rpl_group_info::sleep_cond
        Clear IN_STMT and IN_TRANSACTION in init_relay_log_pos() and Relay_log_info::cleanup_context() to ensure the flags doesn't survive slave restarts.
        Reset table->in_use for temporary tables as the table may have been used by another THD.
        Use IN_TRANSACTION instead of OPTION_BEGIN to check state of relay log.
        Removed IN_STMT flag setting. This is now done in update_state_of_relay_log()
      sql/rpl_rli.h:
        Changed relay log state flags to bit masks instead of bit positions (most other code we have uses bit masks)
        Added IN_TRANSACTION to mark if we are in a BEGIN ... COMMIT section.
        save_temporary_tables is now thread safe
        Relay_log_info::sleep_lock -> rpl_group_info::sleep_lock
        Relay_log_info::sleep_cond -> rpl_group_info::sleep_cond
        Relay_log_info->sql_thd renamed to Relay_log_info->sql_driver_thd to avoid wrong usage for merged code
        is_in_group() is now independent of state of executed transaction.
      sql/slave.cc:
        Simplifed arguments to io_salve_killed(), sql_slave_killed() and check_io_slave_killed(); No reason to supply THD as this is part of the given structure.
        set_thd_in_use_temporary_tables() removed as in_use is set on usage in sql_base.cc
        sql_thd -> sql_driver_thd
        More DBUG
        Added update_state_of_relay_log() which will calculate the IN_STMT and IN_TRANSACTION state of the relay log after the current element is executed.
        If slave_skip_counter is set run things in single threaded mode.
        Simplifed arguments to io_salve_killed(), check_io_slave_killed() and sql_slave_killed(); No reason to supply THD as this is part of the given structure.
        Added information to thd_proc_info() which thread is waiting for slave mutex to exit.
        Disabled not used function rpl_connect_master()
        Updated argument to next_event()
      sql/sql_base.cc:
        Added mutex around usage of slave's temporary tables. The active list is always kept up to date in sql->rgi_slave->save_temporary_tables.
        Clear thd->temporary_tables after query (safety)
        More DBUG
        When using temporary table, set table->in_use to current thd as the THD may be different for slave threads.
        Some code is ifdef:ed with REMOVE_AFTER_MERGE_WITH_10 as the given code in 10.0 is not yet in this tree.
        In open_table() reuse code from find_temporary_table()
      sql/sql_binlog.cc:
        rli->sql_thd -> rli->sql_driver_thd
        Remove duplicate setting of rgi->rli
      sql/sql_class.cc:
        Added helper functions rgi_lock_temporary_tables() and rgi_unlock_temporary_tables()
        Would have been nicer to have these inline, but there was no easy way to do that
      sql/sql_class.h:
        Added functions to protect slaves temporary tables
      sql/sql_parse.cc:
        Added DBUG_PRINT
      sql/transaction.cc:
        Added comment
      2e100cc5
  2. 16 Sep, 2013 1 commit
  3. 13 Sep, 2013 1 commit
  4. 03 Jul, 2013 1 commit
  5. 19 Mar, 2013 2 commits
  6. 25 Feb, 2013 1 commit
  7. 24 Aug, 2012 1 commit
    • unknown's avatar
      MDEV-382: Incorrect quoting · cdeabcfd
      unknown authored
      Various places in the server replication code was incorrectly quoting
      strings, which could lead to incorrect SQL on the slave/mysqlbinlog.
      cdeabcfd
  8. 13 Mar, 2012 1 commit
    • Michael Widenius's avatar
      Fixed bug lp:917689 "Archive table corruption crashing MariaDB signal 11" · 6f06cef0
      Michael Widenius authored
      Added 'from_end' as extra parameter to Field::unpack() to detect wrong from data.
      Change ha_archive::unpack_row() to detect wrong field lengths.
      Replication code changed to detect wrong field information in events.
      
      
      mysql-test/r/archive.result:
        dded test case for lp:917689
      sql/field.cc:
        Added 'from_end' as extra parameter to Field::unpack() to detect wrong from data.
        Removed not used 'unpack_key' functions.
      sql/field.h:
        Added 'from_end' as extra parameter to Field::unpack() to detect wrong from data.
        Removed not used 'unpack_key' functions.
        Removed some not needed unpack() functions.
      sql/filesort.cc:
        Added buffer end parameter to unpack_addon_fields()
      sql/log_event.h:
        Added end of buffer argument to unpack_row()
      sql/log_event_old.cc:
        Added end of buffer argument to unpack_row()
      sql/log_event_old.h:
        Added end of buffer argument to unpack_row()
      sql/records.cc:
        Added buffer end parameter to unpack_addon_fields()
      sql/rpl_record.cc:
        Added end of buffer argument to unpack_row()
        Added detection of wrong field information in events
      sql/rpl_record.h:
        Added end of buffer argument to unpack_row()
      sql/rpl_record_old.cc:
        Added end of buffer argument to unpack_row()
        Added detection of wrong field information in events
      sql/rpl_record_old.h:
        Added end of buffer argument to unpack_row()
      sql/table.h:
        Added buffer end parameter to unpack()
      storage/archive/ha_archive.cc:
        Change ha_archive::unpack_row() to detect wrong field lengths.
        This fixes lp:917689
      6f06cef0
  9. 05 Dec, 2007 1 commit
    • unknown's avatar
      BUG#31583 (5.1-telco-6.1 -> 5.1.22. Slave returns Error in unknown event): · 7a5f3f12
      unknown authored
      In the patch for BUG#21842, the code for handling old rows events were
      refactored.  There were a bug in the refactored code (possibly introduced
      after the patch for BUG#21842) that caused caused the refactored old events
      to read a columns bitmap after image even though there is no such bitmap
      for old events. As a result, the reading got out of sync, and started reading
      invalid data.
      
      This patch removes all trace of the after image column bitmap from the refactored
      old events and removes functions that are no longer needed because they are empty. 
      
      
      sql/log_event.cc:
        Adding debug printouts and adding old rows events names to output
        so that they are not printed as unknown events.
      sql/log_event_old.cc:
        Adding debug printouts to see how the old events are partitioned
        when being decoded.  Removing all traces of the column bitmap for
        the after image in the old events since there is none.
        
        Removing the following functions since they are no longer needed:
        - Update_rows_log_event_old::init()
        - Update_rows_log_event_old::~Update_rows_log_event_old()
        
        Removing unused local variable.
      sql/log_event_old.h:
        Removing all traces of the column bitmap for the after image in
        the old events since there is none.
        
        Removing the following functions since they are no longer needed:
        - Update_rows_log_event_old::init()
        - Update_rows_log_event_old::is_valid()
        - Update_rows_log_event_old::~Update_rows_log_event_old()
        
        Removing unused local variable.
      mysql-test/suite/bugs/r/rpl_bug31583.result:
        New BitKeeper file ``mysql-test/suite/bugs/r/rpl_bug31583.result''
      mysql-test/suite/bugs/t/rpl_bug31583.test:
        New BitKeeper file ``mysql-test/suite/bugs/t/rpl_bug31583.test''
      7a5f3f12
  10. 20 Nov, 2007 1 commit
    • unknown's avatar
      BUG#31581: 5.1-telco-6.1 -> 5.1.22. Slave crashes during starting · ccfcd595
      unknown authored
      This patch has two purposes:
      (1) To refactor the code so that
         {Write|Update|Delete}_rows_log_event_old does not use code from
         {Write|Update|Delete}_rows_log_event. Before refactoring there
         was the following problem: whenever we modifed the code for new
         events, it affected the old events. This is bad, as it makes
         maintainance difficult. After refactoring, we can safely edit the
         new code without affecting old events. So, if we for instance
         modify the binary format of new events, we no longer need to worry
         about how the new code reads old events.
      (2) To fix BUG#31581.
      
      These two objectives are reached by the following changes:
       - Merged Rows_log_event into Old_rows_log_event and
         {Write|Update|Delete}_rows_log_event into
         {Write|Update|Delete}_rows_log_event_old.
       - Fixed the bug by replacing {WRITE|UPDATE|DELETE}_ROWS_EVENT by
         PRE_GA_{WRITE|UPDATE|DELETE}_ROWS_EVENT.
       - Added comments to log_event_old.h
      
      (This patch is identical to the previously committed patch which was
      a collapse of three changesets, except that it adds assert(0) to
      constructors for old types of row log events that should never be
      called.)
      
      
      sql/log_event_old.cc:
        Merged Rows_log_event into Old_rows_log_event and
        {Write|Update|Delete}_rows_log_event into
        {Write|Update|Delete}_rows_log_event_old. Also fixed the bug by
        replacing {WRITE|UPDATE|DELETE}_ROWS_EVENT by
        PRE_GA_{WRITE|UPDATE|DELETE}_ROWS_EVENT.
      sql/log_event_old.h:
        Merged Rows_log_event into Old_rows_log_event and
        {Write|Update|Delete}_rows_log_event into
        {Write|Update|Delete}_rows_log_event_old. Also added comment
        explaining what the file contains and what the classes do.
      ccfcd595
  11. 14 Nov, 2007 1 commit
    • unknown's avatar
      First part of redo/undo for key pages · 21fd2a5a
      unknown authored
      Added key_nr to st_maria_keydef for faster keyinfo->keynr conversion
      For transactional tables, shift record number in keys up with 1 bit to have place to indicate if transid follows
      Checksum for MyISAM now ignores NULL and not used part of VARCHAR
      Renamed some variables that caused shadow compiler warnings
      Moved extra() call when waiting for tables to not be used to after tables are removed from cache.
      Fixed crashing bugs when using Maria TEMPORARY tables with TRUNCATE. Removed 'hack' code in sql directory to go around this bug.
      pagecache_unlock_by_ulink() now has extra argument to say if page was changed.
      Give error message if we fail to open control file
      Mark page cache variables as not flushable
      
      
      include/maria.h:
        Made min page cache larger (needed for pinning key page)
        Added key_nr to st_maria_keydef for faster keyinfo->keynr conversion
        Added write_comp_flag to move some runtime code to maria_open()
      include/my_base.h:
        Added new error message to be used when handler initialization failed
      include/my_global.h:
        Renamed dummy to swap_dummy to avoid conflicts with local 'dummy' variables
      include/my_handler.h:
        Added const to some parameters
      mysys/array.c:
        More DBUG
      mysys/my_error.c:
        Fixed indentation
      mysys/my_handler.c:
        Added const to some parameters
        Added missing error messages
      sql/field.h:
        Renamed variables to avoid variable shadowing
      sql/handler.h:
        Renamed parameter to avoid variable name conflict
      sql/item.h:
        Renamed variables to avoid variable shadowing
      sql/log_event_old.h:
        Renamed variables to avoid variable shadowing
      sql/set_var.h:
        Renamed variables to avoid variable shadowing
      sql/sql_delete.cc:
        Removed maria hack for temporary tables
        Fixed indentation
      sql/sql_table.cc:
        Moved extra() call when waiting for tables to not be used to after tables are removed from cache.
        This was needed to ensure we don't do a PREPARE_FOR_DROP or similar call while the table is still in use.
      sql/table.cc:
        Copy page_checksum from share
        Removed Maria hack
      storage/maria/Makefile.am:
        Added new files
      storage/maria/ha_maria.cc:
        Renamed records -> record_count and info -> create_info to avoid variable name conflicts
        Mark page cache variables as not flushable
      storage/maria/ma_blockrec.c:
        Moved _ma_unpin_all_pages() to ma_key_recover.c
        Moved init of info->pinned_pages to ma_open.c
        Moved _ma_finalize_row() to maria_key_recover.h
        Renamed some variables to avoid variable name conflicts
        Mark page_link.changed for blocks we change directly
        Simplify handling of undo link when writing LOGREC_UNDO_ROW_INSERT (old code crashed when having redo for index)
      storage/maria/ma_blockrec.h:
        Removed extra empty line
      storage/maria/ma_checkpoint.c:
        Remove not needed trnman.h
      storage/maria/ma_close.c:
        Free pinned pages (which are now always allocated)
      storage/maria/ma_control_file.c:
        Give error message if we fail to open control file
      storage/maria/ma_delete.c:
        Changes for redo logging (first part, logging of underflow not yet done)
        - Log undo-key-delete
        - Log delete of key
        - Updated arguments to _ma_fetch_keypage(), _ma_dispose(), _ma_write_keypage(), _ma_insert()
        - Added new arguments to some functions to be able to write redo information
        - Mark key pages as changed when we write with PAGECACHE_LOCK_LEFT_WRITELOCKED
        
        Remove one not needed _ma_write_keypage() in d_search() when upper level will do the write anyway
        Changed 2 bmove_upp() to bmove() as this made code easer to understand
        More function comments
        Indentation fixes
      storage/maria/ma_ft_update.c:
        New arguments to _ma_write_keypage()
      storage/maria/ma_loghandler.c:
        Fixed some DBUG_PRINT messages
        Simplify code
        Added new log entrys for key page redo
        Renamed some variables to avoid variable name shadowing
      storage/maria/ma_loghandler.h:
        Moved some defines here
        Added define for storing key number on key pages
        Added new translog record types
        Added enum for type of operations in LOGREC_REDO_INDEX
      storage/maria/ma_open.c:
        Always allocate info.pinned_pages (we need now also for normal key page usage)
        Update keyinfo->key_nr
        Added virtual functions to convert record position o number to be stored on key pages
        Update keyinfo->write_comp_flag to value of search flag to be used when writing key
      storage/maria/ma_page.c:
        Added redo for key pages
        - Extended _ma_fetch_keypage() with type of lock to put on page and address to used MARIA_PINNED_PAGE
        - _ma_fetch_keypage() now pin's pages if needed
        - Extended _ma_write_keypage() with type of locks to be used
        - ma_dispose() now locks info->s->state.key_del from other threads
        - ma_dispose() writes redo log record
        - ma_new() locks info->s->state.key_del from other threads if it was used
        - ma_new() now pins read page
        
        Other things:
        - Removed some not needed arguments from _ma_new() and _ma_dispose)
        - Added some new variables to simplify code
        - If EXTRA_DEBUG is used, do crc on full page to catch not unitialized bytes
      storage/maria/ma_pagecache.h:
        Applied patch from Sanja to add extra argument to pagecache_unlock_by_ulink() to mark if page was changed
        Added some defines for pagecache priority levels that one can use
      storage/maria/ma_range.c:
        Added new arguments for call to _ma_fetch_keypage()
      storage/maria/ma_recovery.c:
        - Added hooks for new translog types:
          REDO_INDEX, REDO_INDEX_NEW_PAGE, REDO_INDEX_FREE_PAGE, UNDO_KEY_INSERT, UNDO_KEY_DELETE and
          UNDO_KEY_DELETE_WITH_ROOT.
        - Moved variable declarations to start of function (portability fixes)
        - Removed some not needed initializations
        - Set only relevant state changes for each redo/undo entry
      storage/maria/lockman.c:
        Removed end space
      storage/maria/ma_check.c:
        Removed end space
      storage/maria/ma_create.c:
        Removed end space
      storage/maria/ma_locking.c:
        Removed end space
      storage/maria/ma_packrec.c:
        Removed end space
      storage/maria/ma_pagecache.c:
        Removed end space
      storage/maria/ma_panic.c:
        Removed end space
      storage/maria/ma_rt_index.c:
        Added new arguments for call to _ma_fetch_keypage(), _ma_write_keypage(), _ma_dispose() and _ma_new()
        Fixed indentation
      storage/maria/ma_rt_key.c:
        Added new arguments for call to _ma_fetch_keypage()
      storage/maria/ma_rt_split.c:
        Added new arguments for call to _ma_new()
        Use new keypage header
        Added new arguments for call to _ma_write_keypage()
      storage/maria/ma_search.c:
        Updated comments & indentation
        Added new arguments for call to _ma_fetch_keypage()
        Made some variables and arguments const
        Added virtual functions for converting row position to number to be stored in key
        use MARIA_RECORD_POS of record position instead of my_off_t
        Record in MARIA_KEY_PARAM how page was changed one key insert (needed for REDO)
      storage/maria/ma_sort.c:
        Removed end space
      storage/maria/ma_statrec.c:
        Updated arguments for call to _ma_rec_pos()
      storage/maria/ma_test1.c:
        Fixed too small buffer to init_pagecache()
        Fixed bug when using insert_count and test_flag
      storage/maria/ma_test2.c:
        Use more resonable pagecache size
        Remove not used code
        Reset blob_length to fix wrong output message
      storage/maria/ma_test_all.sh:
        Fixed wrong test
      storage/maria/ma_write.c:
        Lots of new code to handle REDO of key pages
        No logic changes because of REDO code, mostly adding new arguments and adding new code for logging 
        
        Added new arguments for calls to _ma_fetch_keypage(), _ma_write_keypage() and similar functions
        Move setting of comp_flag in ma_ck_wrte_btree() from runtime to maria_open()
        Zerofill new used pages for:
        - To remove possible sensitive data left in buffer
        - To get idenitical data on pages after running redo
        - Better compression of pages if archived
      storage/maria/maria_chk.c:
        Added information if table is crash safe
      storage/maria/maria_def.h:
        New virtual function to convert between record position on key and normal record position
        Aded mutex and extra variables to handle locking of share->state.key_del
        Moved some structure variables to get things more aligned
        Added extra arguments to MARIA_KEY_PARAM to be able to remember what was changed on key page on key insert
        Added argument to MARIA_PINNED_PAGE to indicate if page was changed
        Updated prototypes for functions
        Added some structures for signaling changes in REDO handling
      storage/maria/unittest/ma_pagecache_single.c:
        Updated arguments for changed function calls
      storage/myisam/mi_check.c:
        Made calc_check_checksum virtual
      storage/myisam/mi_checksum.c:
        Update checksums to ignore null columns
      storage/myisam/mi_create.c:
        Mark if table has null column (to know when we have to use mi_checksum())
      storage/myisam/mi_open.c:
        Added virtual function for calculating checksum to be able to easily ignore NULL fields
      storage/myisam/mi_test2.c:
        Fixed bug
      storage/myisam/myisamdef.h:
        Added virtual function for calculating checksum during check table
        Removed ha_key_cmp() as this is in handler.h
      storage/maria/ma_key_recover.c:
        New BitKeeper file ``storage/maria/ma_key_recover.c''
      storage/maria/ma_key_recover.h:
        New BitKeeper file ``storage/maria/ma_key_recover.h''
      storage/maria/ma_key_redo.c:
        New BitKeeper file ``storage/maria/ma_key_redo.c''
      21fd2a5a
  12. 27 Aug, 2007 1 commit
    • unknown's avatar
      Post merge fixes. · 79f951ad
      unknown authored
      sql/log_event.cc:
        - Rename RELAY_LOG_INFO -> Relay_log_info.
        - Rows_log_event fields which are used for event application not 
          included when compiling in MYSQL_CLIENT mode.
      sql/log_event.h:
        - Rename RELAY_LOG_INFO -> Relay_log_info.
        - Rows_log_event fields which are used for event application not 
          included when compiling in MYSQL_CLIENT mode.
      sql/log_event_old.cc:
        - Rename RELAY_LOG_INFO -> Relay_log_info.
      sql/log_event_old.h:
        - Rename RELAY_LOG_INFO -> Relay_log_info.
      sql/sql_yacc.yy:
        Reverting to version used in the rpl tree.
      79f951ad
  13. 26 Aug, 2007 1 commit
    • unknown's avatar
      BUG#21842 (Cluster fails to replicate to innodb or myisam with err 134 · 642eda22
      unknown authored
      using TPC-B):
       
      Problem: A RBR event can contain incomplete row data (only key value and
      fields which have been changed). In that case, when the row is unpacked
      into record and written to a table, the missing fields get incorrect NULL
      values leading to master-slave inconsistency.
       
      Solution: Use values found in slave's table for columns which are not given
      in the rows event. The code for writing a single row uses the following 
      algorithm: 
      
      1. unpack row_data into table->record[0],
      2. try to insert record,
      3. if duplicate record found, fetch it into table->record[0],
      4. unpack row_data into table->record[0],
      5. write table->record[0] into the table.
      
      Where row_data is the row as stored in the data area of a rows event. 
      Thus:
      
      a) unpacking of row_data happens at the time when row is written into 
       a table,
      
      b) when unpacking (in step 4), only columns present in row_data are 
       overwritten - all other columns remain as they were found in the table.
       
      Since all data needed for the above algorithm is stored inside 
      Rows_log_event class, functions which locate and write rows are turned 
      into methods of that class.
      
      replace_record()     -> Rows_log_event::write_row()
      find_and_fetch_row() -> Rows_log_event::find_row()
      
      Both methods take row data from event's data buffer - the row being 
      processed is pointed by m_curr_row. They unpack the data as needed into 
      table's record buffers record[0] or record[1]. When row is unpacked, 
      m_curr_row_end is set to point at next row in the data buffer.
      
      Other changes introduced in this changeset:
      
      - Change signature of unpack_row(): don't report errors and don't
      setup table's rw_set here. Errors can happen only when setting default 
      values in prepare_record() function and are detected there.
       
      - In Rows_log_event and derived classes, don't pass arguments to
      the execution primitives (do_...() member functions) but use class
      members instead.
      
      - Move old row handling code into log_event_old.cc to be used by 
      *_rows_log_event_old classes.
      
      Also, a new test rpl_ndb_2other is added which tests basic replication 
      from master using ndb tables to slave storing the same tables using 
      (possibly) different engine (myisam,innodb).
        
      Test is based on existing tests rpl_ndb_2myisam and rpl_ndb_2innodb. 
      However, these tests doesn't work for various reasons and currently are 
      disabled (see BUG#19227).
        
      The new test differs from the ones it is based on as follows:
        
      1. Single test tests replication with different storage engines on slave 
      (myisam, innodb, ndb).
        
      2. Include file extra/rpl_tests/rpl_ndb_2multi_eng.test containing 
      original tests is replaced by extra/rpl_tests/rpl_ndb_2multi_basic.test 
      which doesn't contain tests using partitioned tables as these don't work 
      currently. Instead, it tests replication to a slave which has more or 
      less columns than master.
        
      3. Include file include/rpl_multi_engine3.inc is replaced with 
      include/rpl_multi_engine2.inc. The later differs by performing slightly 
      different operations (updating more than one row in the table) and 
      clearing table with "TRUNCATE TABLE" statement instead of "DELETE FROM" 
      as replication of "DELETE" doesn't work well in this setting.
        
      4. Slave must use option --log-slave-updates=0 as otherwise execution of 
      replication events generated by ndb fails if table uses a different 
      storage engine on slave (see BUG#29569).
      
      
      sql/log_event.cc:
        - Initialization of new Rows_log_event members.
        - Fixing some typos in documentation.
        
        In Rows_log_event::do_apply_event:
        - Set COMPLETE_ROWS_F flag (when master and slave have the same number of 
        columns and all colums are present in the row)
        - Move initialization of tables write/read sets here, outside the rows
        processing loop (and out of unpack_row() function).
        - Remove calls to do_prepare_row() - no longer needed.
        - Add code managing m_curr_row and m_curr_row_end pointers.
        
        - Change signatures of row processing methods of Rows_log_event and it
        descendants - now most arguments are taken from class members.
        - Remove do_prepare_row() methods which are no longer used.
        - The auto_afree_ptr template is moved to rpl_utility.h (so that it can
        be used in log_event_old.cc).
        - Removed copy_extra_fields() function - no longer used.
        
        In Rows_log_event::write_row (former replace_record):
        - The old code is moved to log_event_old.cc.
        - Use prepare_record() and non-destructive unpack_current_row() to fill record
        with data.
        - In case a record being inserted already exists on slave and row data is 
        incomplete use the record found and non-destructive unpack_current_row() to 
        combine new column values with existing ones.
        - More debug info added.
        
        In Rows_log_event::find_row (former find_and_fetch_row function):
        - The old code is moved to log_event_old.cc.
        - Unpacking of the row is moved here.
        - In case of search using PK, the key data is prepared here.
        - More debug info added.
        
        - Remove initialization of Rows_log_event::m_after_image buffer which is no
        longer used. 
        - Use new row unpacking methods in Update_rows_log_event::do_exec_row() to 
        create before and after image.
        
        Note: all existing code used by Rows_log_event::do_apply_event() has been moved
        to log_event_old.cc to be used by *_rows_log_event_old classes.
      sql/log_event.h:
        - Add new COMPLETE_ROWS_F flag in Rows_log_event.
        - Add Rows_log_event members describing the row being processed.
        - Add a pointer to key buffer which is used in derived classes.
        - Add new methods: find__row(), write_row() and unpack_current_row().
        - Change signatures of do_...() methods (replace method arguments by
        class members).
        - Remove do_prepare_row() method which is no longer used.
        - Update method documentation.
        - Add Old_rows_log_event class, which contains the old row processing code, as
        a friend of Rows_log_event so that it can access all members of an event 
        instance.
      sql/log_event_old.cc:
        Move here old implementation of Rows_log_event::do_apply_event() and 
        helper methods.
      sql/log_event_old.h:
        - Define new class Old_rows_log_event encapsulating old version of
        Rows_log_event::do_apply_event() and the helper methods.
        - Add the Old_rows_log_event class as a base for *_old versions of RBR event
        classes, ensure that the old version of do_apply_event() is called.
        - For *_old classes, declare the helper methods used in the old version of
        do_apply_event().
      sql/rpl_record.cc:
        - Make unpack_row non-destructive for columns not present in the row.
        - Don't fill read/write set here as it is done outside these functions.
        - Move initialization of a record with default values to a separate
        function prepare_record().
      sql/rpl_record.h:
        - Change signature of unpack_row().
        - Declare function prepare_record().
      sql/rpl_utility.cc:
        Make tabe_def::calc_field_size() a const method.
      sql/rpl_utility.h:
        Make table_def::calc_field_size() a const method.
        
        Move auto_afree_ptr template here so that it can be re-used (currently
        in log_event.cc and log_event_old.cc). Similar with DBUG_PRINT_BITSET 
        macro.
      mysql-test/extra/rpl_tests/rpl_ndb_2multi_basic.test:
        Modification of rpl_ndb_2multi_eng test. Tests with partitioned tables 
        are removed and a setup with slave having different number of columns 
        than master is added.
      mysql-test/include/rpl_multi_engine2.inc:
        Modification of rpl_multi_engine3.inc which operates on more rows and
        replaces "DELETE FROM t1" with "TRUNCATE TABLE t1" as the first form
        doesn't replicate in NDB -> non-NDB setting (BUG#28538).
      mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result:
        Results of the test.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_2other-slave.opt:
        Test options. --log-slave-updates=0 is compulsory as otherwise non-NDB 
        slave applying row events from NDB master will fail when trying to log
        them.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test:
        Test replication of NDB table to slave using other engine. The main test
        is in extra/rpl_tests/rpl_ndb_2multi_basic.test. It is included here
        several times with different settings of default storage engine on slave.
      642eda22
  14. 16 Aug, 2007 1 commit
    • unknown's avatar
      Renaming RELAY_LOG_INFO and st_relay_log_info to follow coding standards · 044a4a3e
      unknown authored
      (and be more friendly to Doxygen by removing unnecessary typedefs).
      
      
      sql/log.cc:
        Renaming struct st_relay_log_info to class Relay_log_info.
      sql/log.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
      sql/log_event.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/log_event.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/log_event_old.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/log_event_old.h:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_mi.h:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_record.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_record.h:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_record_old.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_record_old.h:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_rli.cc:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_rli.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/rpl_utility.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_utility.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/slave.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/slave.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/sql_binlog.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/sql_class.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/sql_repl.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      044a4a3e
  15. 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
  16. 13 Apr, 2007 2 commits
    • unknown's avatar
      WL#2735: Refactor replication · 0d3f926a
      unknown authored
      Factoring out pack_row() and unpack_row() into new files
      rpl_record.{cc,h}.
      
      
      libmysqld/Makefile.am:
        Adding file rpl_record.cc
      sql/CMakeLists.txt:
        Adding file rpl_record.cc
      sql/Makefile.am:
        Adding file rpl_record.cc and rpl_record.h
      sql/log_event.cc:
        Moving implementation of unpack_row() into "rpl_record.cc".
        Adding inclusion of header file "rpl_record.h".
      sql/log_event_old.cc:
        Signature of do_prepare_row() changed.
      sql/log_event_old.h:
        Adding copyright.
      sql/rpl_record_old.cc:
        Signature of do_prepare_row() changed.
      sql/rpl_record_old.h:
        Adding copyright.
        Signature of do_prepare_row() changed.
      sql/sql_class.cc:
        Moving implementation THD::pack_row() into "rpl_record.cc" and rewriting
        it to be a global function.
        Adding inclusion of header file "rpl_record.h".
      sql/sql_class.h:
        Removing pack_row() as THD member function.
      sql/rpl_record.cc:
        New BitKeeper file ``sql/rpl_record.cc''
      sql/rpl_record.h:
        New BitKeeper file ``sql/rpl_record.h''
      0d3f926a
    • unknown's avatar
      Fixing compile problem on some platforms resulting from building a · 5ca905a6
      unknown authored
      configuration with HAVE_REPLICATION undefined, which causes the
      *_rows_log_event_old classes to only have a default constructor. This
      generates an error on some platforms, since the base classes does 
      not have a default constructor defined.
      
      Updating signatures of do_prepare_row() for classes above, since
      signatures in base classes changed.
      
      
      sql/log_event_old.h:
        Adding constructor since when HAVE_REPLICATION is not defined, the
        class will not have any constructor, which generates an error on
        some platforms.  Updating signature of do_prepare_row() since
        signature changed in base classes.
      5ca905a6
  17. 12 Apr, 2007 1 commit
    • unknown's avatar
      BUG#27779 (Slave cannot read old rows log events): · 5c35b417
      unknown authored
      Taking code from before BUG#22583 and incorporating as events to be able
      to read old events. Also incorporating old pack and unpack functions
      into patch.
      
      
      client/Makefile.am:
        Adding files log_event_old.{h,cc} and rpl_record_old.{h,cc}
      client/mysqlbinlog.cc:
        Adding log_event_old.cc.
      libmysqld/Makefile.am:
        Adding files log_event_old.{h,cc} and rpl_record_old.{h,cc}
      sql/CMakeLists.txt:
        Adding files log_event_old.{h,cc} and rpl_record_old.{h,cc}
      sql/Makefile.am:
        Adding files log_event_old.{h,cc} and rpl_record_old.{h,cc}
      sql/log_event.cc:
        Adding code to read pre-GA rows events.
      sql/log_event.h:
        Refactoring to support inheritance and including "old" events definitions.
      sql/log_event_old.cc:
        New BitKeeper file ``sql/log_event_old.cc''
      sql/log_event_old.h:
        New BitKeeper file ``sql/log_event_old.h''
      sql/rpl_record_old.cc:
        New BitKeeper file ``sql/rpl_record_old.cc''
      sql/rpl_record_old.h:
        New BitKeeper file ``sql/rpl_record_old.h''
      5c35b417