• unknown's avatar
    Moved randomize and my_rnd under mysys · 496741d5
    unknown authored
    Added my_uuid
    Added pre-support for PAGE_CHECKSUM
    Added syntax for CREATE ... PAGE_CHECKSUM=# TABLE_CHECKSUM=#
    Reserved place for page checksums on index, bitmap and block pages
    Added index number to header of index pages
    Added linked list for free directory entries (speeds up inserts with BLOCK format)
    Calculate checksums in original column order (fixes bug with checksum on rows with BLOCK format)
    Cleaned up all index handling to use 'info->s->keypage_header' (variable size) as the header for index pages (before this was '2')
    Added 0xffffffff to end of index and block data bases and 0xfffffffe at end of bitmap pages when page checksums are not enabled
    Added _ma_get_page_used() and _ma_get_used_and_node() to simplify index page header handling
    rec_per_key_part is now in double precision
    Reserved place in index file for my_guid and nulls_per_key_part
    Give error HA_ERR_NEW_FILE if trying to open a Maria file with new, not yet supported extensions
    
    Lots of renames to increase readability:
    
    randomize() -> my_rnd_init()
    st_maria_info -> st_maria_handler
    st_maria_info -> MARIA_HA
    st_maria_isaminfo -> st_maria_info
    rand_struct -> my_rand_struct
    rec_per_key_rows -> records_at_analyze
    
    
    client/mysqladmin.cc:
      rand_struct -> my_rrnd_struct
    include/maria.h:
      st_maria_info -> MARIA_HA
      st_maria_isaminfo -> st_maria_info
      Changed analyze statistics to be of double precission
      Changed offset to field to be 32bits instead of 64 (safe as a record without blobs can't be that big)
    include/my_base.h:
      Added HA_OPTION_PAGE_CHECKSUM & HA_CREATE_PAGE_CHECKSUM
      Fixed comments
      Added HA_ERR_NEW_FILE
    include/my_sys.h:
      Added prototypes and structures for my_uuid() and my_rnd()
    include/myisamchk.h:
      Changed some buffers to size_t
      Added possibility to have key statistics with double precission
    include/mysql_com.h:
      Move rand functions to mysys
    libmysql/Makefile.shared:
      Added my_rnd
    mysql-test/r/maria.result:
      Updated results
    mysql-test/t/maria.test:
      More tests for checksum
    mysys/Makefile.am:
      Added my_rnd.c and my_uuid.c
    server-tools/instance-manager/listener.cc:
      Fixed include order (my_global.h should always be first)
    server-tools/instance-manager/mysql_connection.cc:
      Fixed include order (my_global.h should always be first)
      Use my_rnd_init()
    server-tools/instance-manager/mysql_connection.h:
      rand_struct -> my_rand_struct
    sql/handler.h:
      Added flag for page checksums
    sql/item_func.cc:
      Use new my_rnd() interface
    sql/item_func.h:
      Use new my_rnd() interface
    sql/item_strfunc.cc:
      Use new my_rnd() interface
    sql/lex.h:
      Added PAGE_CHECKSUM and TABLE_CHECKSUM
    sql/mysql_priv.h:
      Use new my_rnd() interface
    sql/mysqld.cc:
      Use new my_rnd() interface
    sql/password.c:
      Move my_rnd() to mysys
      Use new my_rnd() interface
    sql/sql_class.cc:
      Use new my_rnd() interface
    sql/sql_class.h:
      Use new my_rnd() interface
    sql/sql_crypt.cc:
      Use new my_rnd() interface
    sql/sql_crypt.h:
      Use new my_rnd() interface
    sql/sql_show.cc:
      Simpler handling of ha_choice_values
      Added PAGE_CHECKSUM
    sql/sql_table.cc:
      Enable correct checksum handling (for now) if not running in compatible mode
    sql/sql_yacc.yy:
      Added table option PAGE_CHECKSUM
      Added future compatible table option TABLE_CHECKSUM (alias for CHECKSUM)
      Added 'choice' target to simplify code
    sql/table.cc:
      Store flag for PAGE_CHECKSUM
    sql/table.h:
      Added support for PAGE_CHECKSUM
    storage/maria/ha_maria.cc:
      Remove protection for incompatbile frm and MAI
      (Slow, not needed test)
      Rec_per_key is now in double
      Remember row type for table
      Give warning if one Maria uses another row type than requested
      Removed some old ASK_MONTY entries (added comments instead)
      Added handling of PAGE_CHECKSUM flags
    storage/maria/ma_bitmap.c:
      Added page checksums to bitmap pages
      Added special bitmap marker for bitmap pages
      (Used to find bugs when running without page checksums)
    storage/maria/ma_blockrec.c:
      Added a free-link list over directory entries. This makes insert of small rows faster as we don't
      have to scan the whole directory to find a not used entry.
      Moved SANITY_CHECKS to maria_def.h
      Simplify code by introducing dir_entry_pos()
      Added support for PAGE_CHECKSUM
    storage/maria/ma_blockrec.h:
      Added DIR_FREE_SIZE (linked list of free directory entries)
      Added PAGE_CHECKSUM
      Added 'dir_entry_pos()'
    storage/maria/ma_check.c:
      Check that index pages has correct index number
      Calculate rec_per_key with double precission
      Simplify code by using '_ma_get_used_and_node()'
      Check free directory list
      Remove wrong end \n from messages
      maria_data_on_page() -> _ma_get_page_used()
      maria_putint() -> _ma_store_page_used()
      rec_per_key_rows -> records_at_analyze
    storage/maria/ma_checksum.c:
      Calculate checksum in original column order
    storage/maria/ma_create.c:
      Store original column order in index file
      Reserve place for nulls_per_key_part (future)
      Added support for PAGE_CHECKSUM
    storage/maria/ma_dbug.c:
      Fixed wrong debug output of key of type 'ulong'
    storage/maria/ma_delete.c:
      maria_data_on_page() -> _ma_get_used_and_node()
      maria_data_on_page() -> _ma_get_page_used()
      maria_putint() -> _ma_store_page_used()
      Added page header (index key number) to all index pages
      Reserved page for checksum on index pages
      Use keypage_header
    storage/maria/ma_ft_update.c:
      maria_putint() -> _ma_store_page_used()
      Store key number at start of page
    storage/maria/ma_loghandler.h:
      st_maria_info -> MARIA_HA
    storage/maria/ma_open.c:
      rec_per_key is now in double precission
      Added 'nulls_per_key_part'
      Added 'extra_options' (flags for future)
      Added support for PAGE_CHECKSUM
      Give error HA_ERR_NEW_FILE when using unsupported maria extensions
      Added comments
      Add maria_uuid to index file
      Added functions to store and read column_nr map.
      Changed some functions to return my_bool instead of uint
    storage/maria/ma_page.c:
      Added checks that pages has correct key nr
      Store 0xffffffff in checksum position if page checksums are not enabled
      Moved key-page-delete link to take into account keypage header
    storage/maria/ma_preload.c:
      Remove old MyISAM dependent code
      When scanning pages, only add pages to page cache for the requested index
    storage/maria/ma_range.c:
      maria_data_on_page() -> _ma_get_used_and_node()
      Use keypage_header
    storage/maria/ma_rt_index.c:
      Fixed indentation
    storage/maria/ma_rt_index.h:
      Added support for dynamic index page header
      Reserved place for PAGE_CHECKSUM
    storage/maria/ma_rt_key.c:
      Fixed indentation
      maria_data_on_page() -> _ma_get_page_used()
      maria_putint() -> maria_store_page_used()
    storage/maria/ma_rt_mbr.c:
      Fixed indentation
    storage/maria/ma_rt_split.c:
      Fixed indentation
      maria_data_on_page () -> _ma_get_page_used()
    storage/maria/ma_rt_test.c:
      Fixed indentation
    storage/maria/ma_search.c:
      Remove support of using -1 as 'last used index' to _ma_check_index()
      maria_data_on_page() -> _ma_get_page_used()
      maria_data_on_page() -> _ma_get_used_and_node()
      Use keypage_header
    storage/maria/ma_sort.c:
      Changed some buffers to size_t
      Changed rec_per_key_part to double
    storage/maria/ma_static.c:
      Removed NEAR
      Added maria_uuid
    storage/maria/ma_test2.c:
      Moevd testflag == 2 to correct place
      Remove test of reading with index number -1 (not supported anymore)
    storage/maria/ma_test_recovery.expected:
      Updated results
    storage/maria/ma_test_recovery:
      Changed tmp table names so that one can run maria_chk on them
    storage/maria/ma_write.c:
      Fixed indentation
      Use keypage_header
      Store index number on index pages
      maria_putint() -> _ma_store_page_used()
      maria_data_on_page() -> ma_get_used_and_node()
      maria_data_on_page() -> _ma_get_page_used()
      Added PAGE_CHECKSUM
      Added Maria handler to some functions
      Removed some not needed casts
    storage/maria/maria_chk.c:
      Added error handling for HA_ERR_NEW_FILE
      Added information about page checksums
      rec_per_key_part changed to double
      maria_data_on_page() -> _ma_get_page_used()
      Use keypage_header
    storage/maria/maria_def.h:
      Added IDENTICAL_PAGES_AFTER_RECOVERY and SANITY_CHECKS
      Changed rec_per_key_part to double
      Added nulls_per_key_part
      rec_per_key_rows -> records_at_analyze
      st_maria_info -> MARIA_HA
      Reserve place for new statistics variables, uuid, checksums per page etc.
      Removed NEAR tags
      Changed some prototypes to use my_bool and size_t
    storage/maria/maria_pack.c:
      st_maria_info -> MARIA_HA
      Fixed indentation
    storage/myisam/mi_dbug.c:
      Fix wrong debug output for ULONG
    mysys/my_rnd.c:
      New BitKeeper file ``mysys/my_rnd.c''
    mysys/my_uuid.c:
      New BitKeeper file ``mysys/my_uuid.c''
    496741d5
maria_chk.c 63.2 KB