1. 12 Jan, 2008 5 commits
    • unknown's avatar
      maria_dump_log - log interpreter added. · 83b6f696
      unknown authored
      
      storage/maria/Makefile.am:
        maria_dump_log build.
      storage/maria/ma_loghandler.c:
        Fixed page size in the log header to be independent of #defines.
        maria_dump_log - log interpreter added.
      83b6f696
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 0cccfe30
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      storage/maria/ma_loghandler.c:
        Auto merged
      0cccfe30
    • unknown's avatar
      Fixes to bugs and compiler warnings detected by pushbuild · 978f3e3c
      unknown authored
      Don't compare uuid's on maria_open() if table is not transactional
      Fixed that my_microtime() works on windows (patch added from 5.1)
      
      
      mysql-test/r/create.result:
        Portability fix
      mysql-test/t/create.test:
        Portability fix
      mysql-test/t/maria.test:
        Remove warnings, to make test portable to windows
      mysys/my_getsystime.c:
        Add missed merge from 5.1
        This fixes that timing works on windows and fixes that that failed becasuse slow_query_log didn't get any queries
      storage/maria/ma_check.c:
        Removed not needed setting of variable
      storage/maria/ma_loghandler.c:
        Fixed compiler warnings
      storage/maria/ma_open.c:
        Don't compare uuid's if table is not transactional
      KNOWN_BUGS.txt:
        New BitKeeper file ``KNOWN_BUGS.txt''
      978f3e3c
    • unknown's avatar
      Merge desktop.sanja.is.com.ua:/home/bell/mysql/bk/mysql-maria · ade00215
      unknown authored
      into  desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria-pin
      
      
      storage/maria/ma_loghandler.c:
        Auto merged
      storage/maria/ma_recovery.c:
        Auto merged
      ade00215
    • unknown's avatar
      Multigroup record write fixed. · c2b840be
      unknown authored
      Memory leak fixed.
      Some other small cahnges.
      
      
      mysql-test/include/wait_until_connected_again.inc:
        increased time for recovery (to be able use with --debug)
      mysql-test/r/maria-recovery.result:
        Result fixed.
      storage/maria/ma_loghandler.c:
        Multigroup record write fixed.
        Function for skipping to the next page while filling buffer with
          unlocked handler added.
        Removed possible memory leaks.
        More debug.
      storage/maria/ma_recovery.c:
        Memory leak fixed.
      c2b840be
  2. 11 Jan, 2008 4 commits
    • unknown's avatar
      Fixed compiler warnings by adding casts and changing variable types · e689fbc4
      unknown authored
      Fixed bug that caused change_user.test to fail
      Fixed bug that caused mysql_client_test to fail
      
      
      include/myisam.h:
        Fixed prototypes
      mysql-test/r/create.result:
        Fix that test works even if Maria is not used for temporary tables
      mysql-test/t/create.test:
        Fix that test works even if Maria is not used for temporary tables
      sql/mysqld.cc:
        Fixed that default value of max_join_size is set correctly; It needs to match usage in set_var.cc
      sql/set_var.cc:
        Fixed test, now when max_join_size is initialized correctly
      sql/sql_select.cc:
        Fixed that one can compile without -DUSE_MARIA_FOR_TMP_TABLES
      storage/maria/ma_blockrec.c:
        Fixed compiler warnings by adding casts
      storage/maria/ma_checkpoint.c:
        Fixed compiler warnings by adding casts
      storage/maria/ma_create.c:
        Fixed compiler warnings by adding casts
      storage/maria/ma_delete_table.c:
        Fixed compiler warnings by adding casts
      storage/maria/ma_loghandler.c:
        Fixed compiler warnings by adding casts and changing types for variables
        Changed translog_new_page_header to use changing integer instead of calling time() as time() is a slow call and will give same results when calling many times withing one second
      storage/maria/ma_pagecrc.c:
        Fixed compiler warnings by adding casts
      storage/maria/ma_recovery.c:
        Fixed indentation
      storage/myisam/ha_myisam.cc:
        Fixed wrong types for variables
        Changed chk_data_link() and repair*() functions to take my_bool as argument
      storage/myisam/mi_check.c:
        Fixes to handle that param.test_flag is now ulonglong
      storage/myisam/myisamchk.c:
        Fixes to handle that param.test_flag is now ulonglong
      support-files/compiler_warnings.supp:
        Fixed line numbers
      e689fbc4
    • unknown's avatar
      Merge vvaintroub@bk-internal.mysql.com:/home/bk/mysql-maria · 7bfb3446
      unknown authored
      into  vaio.:C:/bk/maria-wlad
      
      
      storage/maria/ma_loghandler.c:
        Auto merged
      7bfb3446
    • unknown's avatar
      Fix windows warnings using correct datatypes if possible · 45500a70
      unknown authored
      and casts if not.
      Add optional WITH_MARIA_TMP_TABLES parameter to configure.js. This 
      parameter defaults to true, if  WITH_MARIA_STORAGE_ENGINE is present.
      
      
      CMakeLists.txt:
        Add WITH_MARIA_TMP_TABLES config parameter.
      storage/maria/ma_blockrec.c:
        Fix windows warning - use the correct datatype.
      storage/maria/ma_loghandler.c:
        Fix windows warnings by adding casts.
      storage/maria/ma_pagecache.c:
        Fix windows warning - use the correct datatype.
      storage/maria/ma_recovery.c:
        Fix windows warning by adding casts.
      win/configure.js:
        Add WITH_MARIA_TMP_TABLES. If WITH_MARIA_STORAGE_ENGINE is present,
        it defaults to TRUE. To unset, pass  WITH_MARIA_TMP_TABLES=FALSE to 
        configure.js
      45500a70
    • unknown's avatar
      The assert fixed. · 2a9d6a0c
      unknown authored
      2a9d6a0c
  3. 10 Jan, 2008 8 commits
    • unknown's avatar
      Added --loose-skip-maria to MYSQLD_BOOTSTRAP_CMD to get bootstrap.test to work · 266fde77
      unknown authored
      Allow one to run bootstrap even if --skip-maria is used (needed for bootstrap.test)
      Fixed lots of compiler warnings
      
      NOTE:
      maria-big and maria-recover tests failes becasue of bugs in transaction log handling.
      Sanja knows about this and is working on it!
      
      
      mysql-test/mysql-test-run.pl:
        Added --loose-skip-maria to MYSQLD_BOOTSTRAP_CMD to get bootstrap.test to work
      mysql-test/r/maria-recovery.result:
        Updated results
      mysql-test/t/bootstrap.test:
        Removed not needed empty line
      mysql-test/t/change_user.test:
        Fixed results for 32 bit systems
      mysql-test/t/maria-big.test:
        Only run this when you use --big
      mysql-test/t/maria-recovery.test:
        Added test case for recovery with big blobs
      mysys/my_uuid.c:
        Fixed compiler warning
      sql/mysqld.cc:
        Allow one to run bootstrap even if --skip-maria is used (needed for bootstrap.test)
      sql/set_var.cc:
        Compare max_join_size with ULONG_MAX instead of HA_POS_ERROR as we set max_join_size to ULONG_MAX by default
      storage/maria/ma_bitmap.c:
        Added __attribute((unused)) to fix compiler warning
      storage/maria/ma_blockrec.c:
        Added casts to remove compiler warnings
        Change variable types to avoid compiler warnings
      storage/maria/ma_check.c:
        Added casts to remove compiler warnings
      storage/maria/ma_checkpoint.c:
        Change variable types to avoid compiler warnings
      storage/maria/ma_create.c:
        Change variable types to avoid compiler warnings
      storage/maria/ma_delete.c:
        Added casts to remove compiler warnings
      storage/maria/ma_key_recover.c:
        Added casts to remove compiler warnings
      storage/maria/ma_loghandler.c:
        Moved initiazation of prev_buffer first as this could otherwise not be set in case of errors
      storage/maria/ma_page.c:
        Added casts to remove compiler warnings
      storage/maria/ma_pagecache.c:
        Added __attribute((unused)) to fix compiler warning
      storage/maria/ma_pagecrc.c:
        Added #ifndef DBUG_OFF to remove compiler warning
      storage/maria/ma_recovery.c:
        Added casts to remove compiler warnings
      storage/maria/ma_write.c:
        Added casts to remove compiler warnings
      storage/maria/maria_chk.c:
        Split long string into two to avoid compiler warnings
      storage/myisam/ft_boolean_search.c:
        Added LINT_INIT() to remove compiler warning
      support-files/compiler_warnings.supp:
        Suppress wrong compiler warning
      unittest/mytap/tap.c:
        Fixed declaration to match prototypes to remove compiler warnings
      266fde77
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 674f0198
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      sql/mysqld.cc:
        Auto merged
      storage/maria/ma_check.c:
        Auto merged
      storage/maria/ma_create.c:
        Auto merged
      storage/maria/ma_recovery.c:
        Auto merged
      storage/maria/ma_test2.c:
        Auto merged
      storage/maria/maria_def.h:
        Auto merged
      storage/maria/maria_pack.c:
        Auto merged
      storage/myisam/mi_test2.c:
        Auto merged
      storage/maria/ma_pagecache.c:
        Auto merged
      storage/maria/ha_maria.cc:
        Manual (trival) merge
      674f0198
    • unknown's avatar
      Added --with-maria-tmp-tables (default one) to allow on to configure if Maria... · 5ad477f6
      unknown authored
      Added --with-maria-tmp-tables (default one) to allow on to configure if Maria should be used for internal temporary tables
      Abort mysqld if Maria engine didn't start and we are using Maria for temporary tables
      Fixed bug that caused update of big blobs to crash
      Use pagecache_page_no_t as type for pages (to get rid of compiler warnings)
      Added cast to get rid of compiler warning
      Fixed wrong types of variables and arguments that caused lost information
      Fixed wrong DBUG_ASSERT() that caused REDO of big blobs to fail
      Removed some historical ifdefs that caused problem with windows compilations
      
      
      BUILD/SETUP.sh:
        Added --with-maria-tmp-tables
      include/maria.h:
        Use pagecache_page_no_t as type for pages
        Use my_bool as parameter for 'rep_quick' option
      include/my_base.h:
        Added comment
      mysql-test/r/maria-big.result:
        Added test that uses big blobs
      mysql-test/t/maria-big.test:
        Added test that uses big blobs
      sql/mysqld.cc:
        Abort mysqld if Maria engine didn't start and we are using Maria for temporary tables
      sql/sql_class.h:
        Don't use Maria for temporary tables if --with-maria-tmp-tables is not defined
      sql/sql_select.cc:
        Don't use Maria for temporary tables if --with-maria-tmp-tables is not defined
      storage/maria/ha_maria.cc:
        Fixed compiler warnings reported by MCC
        - Fixed usage of wrong types that caused data loss
        - Changed parameter for rep_quick to my_bool
        - Added safe casts
        
        Fixed indentation
      storage/maria/ma_bitmap.c:
        Use pagecache_page_no_t as type for pages
        Fixed compiler warnings
        Fixed bug that caused update of big blobs to crash
      storage/maria/ma_blockrec.c:
        Use pagecache_page_no_t as type for pages
        Use my_bool as parameter for 'rep_quick' option
        Fixed compiler warnings
        Fixed wrong DBUG_ASSERT()
      storage/maria/ma_blockrec.h:
        Use pagecache_page_no_t as type for pages
      storage/maria/ma_check.c:
        Fixed some wrong parameters where we didn't get all bits for test_flag
        Changed rep_quick to be of type my_bool
        Use pagecache_page_no_t as type for pages
        Added cast's to get rid of compiler warnings
        Changed type of record_pos to get rid of compiler warning
      storage/maria/ma_create.c:
        Added safe cast's to get rid of compiler warnings
      storage/maria/ma_dynrec.c:
        Fixed usage of wrong type
      storage/maria/ma_key.c:
        Fixed compiler warning
      storage/maria/ma_key_recover.c:
        Use pagecache_page_no_t as type for pages
      storage/maria/ma_loghandler_lsn.h:
        Added cast's to get rid of compiler warnings
      storage/maria/ma_page.c:
        Changed variable name from 'page' to 'pos' as it was an offset and not a page address
        Moved page_size inside block to get rid of compiler warning
      storage/maria/ma_pagecache.c:
        Fixed compiler warnings
        Replaced compile time assert with TODO
      storage/maria/ma_pagecache.h:
        Use pagecache_page_no_t as type for pages
      storage/maria/ma_pagecrc.c:
        Allow bitmap pages that is all zero
      storage/maria/ma_preload.c:
        Added cast to get rid of compiler warning
      storage/maria/ma_recovery.c:
        Changed types to get rid of compiler warnings
        Use bool for quick_repair to get rid of compiler warning
        Fixed some variables that was wrongly declared (not enough precission)
        Added cast to get rid of compiler warning
      storage/maria/ma_test2.c:
        Remove historical undefs
      storage/maria/maria_chk.c:
        Changed rep_quick to bool
        Fixed wrong parameter to maria_chk_data_link()
      storage/maria/maria_def.h:
        Use pagecache_page_no_t as type for pages
      storage/maria/maria_pack.c:
        Renamed isam -> maria
      storage/maria/plug.in:
        Added option --with-maria-tmp-tables
      storage/maria/trnman.c:
        Added cast to get rid of compiler warning
      storage/myisam/mi_test2.c:
        Remove historical undefs
      5ad477f6
    • unknown's avatar
      Merge vvaintroub@bk-internal.mysql.com:/home/bk/mysql-maria · 65395ead
      unknown authored
      into  vaio.:C:/bk/maria-wlad
      
      
      65395ead
    • unknown's avatar
      7ecafcd1
    • unknown's avatar
      Merge desktop.sanja.is.com.ua:/home/bell/mysql/bk/mysql-maria · 73c29e82
      unknown authored
      into  desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria-pin
      
      
      storage/maria/ma_loghandler.c:
        Auto merged
      73c29e82
    • unknown's avatar
      Fixed syncronization of buffer flush. · 9dd2d08c
      unknown authored
      Debug asserts/prints from Monty.
      No check of mutex operations (by Monty).
      
      
      storage/maria/ma_control_file.c:
        New external function to check mutex ownership.
      storage/maria/ma_loghandler.h:
        No check of mutex operations (by Monty).
        New external function to check mutex ownership.
      9dd2d08c
    • unknown's avatar
      Windows fixes · ce8de7af
      unknown authored
      -new option WITH_MARIA_STORAGE_ENGINE for config.js
      -correct build errors
      -build test executables
      -downport changes for atomic functions from 5.2
      -remove LOCK_uuid_generator from C++ files to avoid linker errors
      -new function my_uuid2str()
      
      
      BitKeeper/deleted/.del-x86-msvc.h:
        Delete: include/atomic/x86-msvc.h
      CMakeLists.txt:
        Windows fixes:
        -New option WITH_MARIA_STORAGE_ENGINE
        -Add unit tests
      include/Makefile.am:
        replace x86-msvc.h with generic-msvc.h
      include/config-win.h:
        my_chmod() support
      include/my_atomic.h:
        Downport my_atomic from 5.2 tree
      include/my_bit.h:
        Correct unresolved symbol errors on Windows
      include/my_pthread.h:
        pthread_mutex_unlock now returns 0 (was void previously)
        defined PTHREAD_STACK_MIN
      include/my_sys.h:
        New function my_uuid2str()
        define MY_UUID_STRING_LENGTH
      include/atomic/nolock.h:
        Downport my_atomic from 5.2 tree
      libmysqld/CMakeLists.txt:
        New option WITH_MARIA_STORAGE_ENGINE
      mysys/CMakeLists.txt:
        Add missing files
      mysys/lf_dynarray.c:
        Fix compiler errors on Windows
      mysys/my_getncpus.c:
        Windows port
      mysys/my_uuid.c:
        Windows fixes: there is no random() on Windows, use ANSI rand()
        New function my_uuid2str()
      mysys/my_winthread.c:
        Downport from 5.2 tree
        -Call my_thread_end() before pthread_exit()
        -Avoid crash if pthread_create is called with NULL attributes
      sql/CMakeLists.txt:
        Link mysqld with Maria storage engine
      sql/item_func.cc:
        Remove LOCK_uuid_generator from C++ to avoid linker errors.
        Use dedicated mutex for short uuids
      sql/item_strfunc.cc:
        Use my_uuid() and my_uuid2str() functions from mysys.
      sql/item_strfunc.h:
        Define MY_UUID_STRING_LENGTH in my_sys.h
      sql/mysql_priv.h:
        LOCK_uuid_generator must be declared as extern "C"
      sql/mysqld.cc:
        Init and destroy LOCK_uuid_short mutex
      storage/maria/CMakeLists.txt:
        -Use the same source files as in Makefile.am
        -Build test binaries
      storage/maria/ha_maria.cc:
        snprintf->my_snprintf
      storage/maria/lockman.c:
        Fix compiler error on Windows
      storage/maria/ma_check.c:
        Fix compiler error on Windows
      storage/maria/ma_loghandler.c:
        Fix compile errors
        my_open()/my_sync() do not work for directories on Windows
      storage/maria/ma_recovery.c:
        Fix compile error on Windows
      storage/maria/ma_test2.c:
        Rename variable to avoid naming conflict with Microsoft C runtime 
        function
      storage/maria/ma_test3.c:
        Fix build errors on Windows
      storage/maria/tablockman.c:
        Fix build errors on Windows
      storage/maria/unittest/Makefile.am:
        Add CMakeLists.txt
      storage/maria/unittest/ma_pagecache_consist.c:
        Fix build errors on Windows
        remove loop from get_len()
      storage/maria/unittest/ma_pagecache_single.c:
        Fix build errors on Windows
      storage/maria/unittest/ma_test_loghandler-t.c:
        Windows fixes
        -Avoid division by 0 in expressions like
        x/(RAND_MAX/y), where y is larger than RAND_MAX(==0x7fff on Windows)
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Windows fixes
        -Avoid division by 0 in expressions like
        x/(RAND_MAX/y), where y is larger than RAND_MAX(==0x7fff on Windows)
        -remove loop in get_len()
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Windows fixes
        -Avoid division by 0 in expressions like
        x/(RAND_MAX/y), where y is larger than RAND_MAX(==0x7fff on Windows)
        -remove loop in get_len()
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Fix build errors on Windows
      storage/maria/unittest/test_file.c:
        Correct the code to get file size on Windows. 
        stat() information can be outdated and thus cannot be trusted.
        On Vista,stat() returns file size=0 until the file is closed at the
        first time.
      storage/myisam/CMakeLists.txt:
        Fix compiler errors on Windows
        Build test executables
      storage/myisam/mi_test2.c:
        Rename variable to avoid naming conflict with Microsoft C runtime 
        function
      storage/myisam/mi_test3.c:
        Fix build errors on Windows
      strings/CMakeLists.txt:
        Add missing file
      unittest/unit.pl:
        Windows:
        downport unittest changes from 5.2 bk tree
      unittest/mysys/Makefile.am:
        Windows:
        downport unittest changes from 5.2 bk tree
      unittest/mysys/my_atomic-t.c:
        Windows:
        downport unittest changes from 5.2 bk tree
      unittest/mytap/Makefile.am:
        Windows:
        downport unittest changes from 5.2 bk tree
      unittest/mytap/tap.c:
        Windows:
        downport unittest changes from 5.2 bk tree
      win/configure.js:
        Add WITH_MARIA_STORAGE_ENGINE configure option
      unittest/mytap/CMakeLists.txt:
        Add missing file
      unittest/mysys/CMakeLists.txt:
        Add missing file
      storage/maria/unittest/CMakeLists.txt:
        Add missing file
      BitKeeper/etc/ignore:
        Added comments maria-win.patch to the ignore list
      include/atomic/generic-msvc.h:
        Implement atomic operations with MSVC intrinsics
      ce8de7af
  4. 09 Jan, 2008 4 commits
  5. 08 Jan, 2008 5 commits
    • unknown's avatar
      New version of ma_test_all · 4bfd35c1
      unknown authored
      
      storage/maria/ma_test_all.sh:
        Added possibility to call ma_test_all-t directly with the old script.
        If any options were passed (such as --verbose) the script will
        be called directly.
      storage/maria/unittest/ma_test_all-t:
        Added new options --number-of-tests and --run-tests=...
        
        More verbose output
      4bfd35c1
    • unknown's avatar
      Added unlocking without unpinning to page cache. · 62d9e3eb
      unknown authored
      
      storage/maria/ma_pagecache.c:
        Support of unpinning unlocked file.
      storage/maria/unittest/ma_pagecache_single.c:
        Fixed layout.
        Added test of new schema of using pagecache:
          unlocking without unpinning.
      62d9e3eb
    • unknown's avatar
      5d68fbc1
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 543071b2
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      543071b2
    • unknown's avatar
      Use LOGREC_REDO_NEW_ROW_HEAD and LOGREC_REDO_NEW_ROW_TAIL when writing to a new page · e6bdb11f
      unknown authored
      This makes REDO safer as we then know when it's safe to ignore HA_ERR_WRONG_CRC from page cache
      Removed not used logged data for LOGREC_UNDO_ROW_DELETE and LOGREC_UNDO_ROW_UPDATE
      
      
      storage/maria/ma_blockrec.c:
        Use LOGREC_REDO_NEW_ROW_HEAD and LOGREC_REDO_NEW_ROW_TAIL when writing to a new page
        This makes REDO safer as we then know when it's safe to ignore HA_ERR_WRONG_CRC from page cache
      storage/maria/ma_blockrec.h:
        Fixed prototype
      storage/maria/ma_key_recover.c:
        Removed not used logged data for LOGREC_UNDO_ROW_DELETE and LOGREC_UNDO_ROW_UPDATE
      storage/maria/ma_loghandler.c:
        Use LOGREC_REDO_NEW_ROW_HEAD and LOGREC_REDO_NEW_ROW_TAIL when writing to a new page
      storage/maria/ma_loghandler.h:
        Added LOGREC_REDO_NEW_ROW_HEAD and LOGREC_REDO_NEW_ROW_TAIL
      storage/maria/ma_recovery.c:
        Added support for LOGREC_REDO_NEW_ROW_HEAD and LOGREC_REDO_NEW_ROW_TAIL
      e6bdb11f
  6. 07 Jan, 2008 5 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · b8416bce
      unknown authored
      into  janus.mylan:/usr/home/serg/Abk/mysql-maria
      
      
      dbug/dbug.c:
        Auto merged
      include/my_dbug.h:
        Auto merged
      storage/maria/ha_maria.cc:
        Auto merged
      storage/maria/ma_check.c:
        Auto merged
      storage/maria/ma_open.c:
        Auto merged
      storage/maria/maria_def.h:
        Auto merged
      b8416bce
    • unknown's avatar
      cleanup · 0bbccfde
      unknown authored
      
      include/my_dbug.h:
        formatting
      0bbccfde
    • unknown's avatar
      3c44bca6
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 7e7c534b
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      scripts/mysql_fix_privilege_tables.sh:
        Manual merge
      storage/maria/unittest/ma_test_all-t:
        Manual merge
      7e7c534b
    • unknown's avatar
      Bugs fixed: · b5df1d34
      unknown authored
      - If not in autocommit mode, delete rows one by one so that we can roll back if necessary
      - bitmap->used_size was not correctly set, which caused bitmap pages to be overwritten
      - Fixed bug in bitmap handling when allocation tail pages
      - Ensure we reserve place for directory entry when calculation place for head and tail pages
      - Fixed wrong value in bitmap->size[0]
      - Fixed wrong assert in flush_log_for_bitmap
      - Fixed bug in _ma_bitmap_release_unused() where tail blocks could be wrongly reset
      - Mark new pages as changed (Required to get repair() to work)
      - Fixed problem with advancing log horizon pointer within one page bounds
      - Fixed DBUG_ASSERT() when enable_indexes failes for end_bulk_insert()
      - Fixed bug in logging of rows with more than one big blob
      - Fixed DBUG_ASSERTS() in pagecache to allow change of WRITE_LOCK to READ_LOCK in unlock() calls
      - Flush pagecache when we change from logging to not logging (if not, pagecache code breaks)
      - Ensure my_errno is set on return from write/delete/update
      - Fixed bug when using FIELD_SKIP_PRESPACE
      
      New features:
      - mysql_fix_privilege_tables now first uses binaries and scripts from source distribution, then in installed distribution
      - Fix that optimize works for Maria tables
      - maria_check --zerofill now also clear freed blob pages
      - maria_check -di now prints more information about record page utilization
      
      Optimizations:
      - Use pagecache_unlock_by_link() instead of pagecache_write() if possible. (Avoids a memory copy and a find_block)
      - Simplify code to abort when we found optimal bit pattern
      - Skip also full head page bit patterns when searching for tail
      - Increase default repair buffer to 128M for maria_chk and maria_read_log
      - Increase default sort buffer for maria_chk to 64M
      - Increase size of sortbuffer and pagecache for mysqld to 64M
      - VARCHAR/CHAR fields are stored in increasing length order for BLOCK_RECORD tables
      
      Better reporting:
      - Fixed test of error condition for flush (for better error code)
      - More error messages to mysqld if Maria recovery fails
      - Always print warning if rows are deleted in repair
      - Added global function _db_force_flush() that is usable when doing debugging in gdb
      - Added call to my_debug_put_break_here() in case of some errors (for debugging)
      - Remove used testfiles in unittest as these was written in different directories depending on from where the test was started
      
      This should fix the bugs found when importing a big table with many varchars and one/many blobs to Maria
      
      
      dbug/dbug.c:
        Added global function _db_force_flush() that is usable when doing debugging in gdbine
      extra/replace.c:
        Fixed memory leak
      include/my_dbug.h:
        Prototype for _db_force_flush()
      include/my_global.h:
        Added stdarg.h as my_sys.h now depends on it.
      include/my_sys.h:
        Make my_dbug_put_break_here() a NOP if not DBUG build
        Added my_printv_error()
      include/myisamchk.h:
        Added entry 'lost' to be able to count space that is lost forever
      mysql-test/r/maria.result:
        Updated results
      mysql-test/t/maria.test:
        Reset autocommit after test
        New test to check if delete_all_rows is used (verified with --debug)
      mysys/my_error.c:
        Added my_printv_error()
      scripts/mysql_fix_privilege_tables.sh:
        First use binaries and scripts from source distribution, then in installed distribution
        This ensures that a development branch doesn't pick up wrong scripts)
      sql/mysqld.cc:
        Fix that one can break maria recovery with ^C when debugging
      sql/sql_class.cc:
        Removed #ifdef that has no effect
        (The preceeding DBUG_ASSERT() ensures that the following code will not be exectued)
      storage/maria/ha_maria.cc:
        Increase size of sortbuffer and pagecache to 64M
        Fix that optimize works for Maria tables
        Fixed DBUG_ASSERT() when enable_indexes failes for end_bulk_insert()
        If not in autocommit mode, delete rows one by one so that we can roll back if necessary
        Fixed variable comments
      storage/maria/ma_bitmap.c:
        More ASSERTS to detect overwrite of bitmap pages
        bitmap->used_size was not correctly set, which caused bitmap pages to be overwritten
        Ensure we reserve place for directory entry when calculation place for head and tail pages
        bitmap->size[0] should not include space for directory entry
        Simplify code to abort when we found optimal bit pattern
        Skip also full head page bit patterns when searching for tail (should speed up some common cases)
        Fixed bug in allocate_tail() when block->used was not aligned on 6 bytes
        Fixed wrong assert in flush_log_for_bitmap
        Fixed bug in _ma_bitmap_release_unused() where tail blocks could be wrongly reset
      storage/maria/ma_blockrec.c:
        Ensure my_errno is set on return
        Fixed not optimal setting of row->min_length if we don't have variable length fields
        Use pagecache_unlock_by_link() instead of pagecache_write() if possible. (Avoids a memory copy and a find_block)
        Added DBUG_ASSERT() if we read or write wrong VARCHAR data
        Added DBUG_ASSERT() to find out if row sizes are calculated wrong
        Fixed bug in logging of rows with more than one big blob
      storage/maria/ma_check.c:
        Disable logging while normal repair is done to avoid logging of index changes
        Fixed bug that caused CHECKSUM part of key page to be used
        Fixed that deleted of wrong records also works for BLOCK_RECORD
        Clear unallocated pages:
        - BLOB pages are not automaticly cleared on delete, so we need to use the bitmap to know if page is used or not
        Better error reporting
        More information about record page utilization
        Change printing of file position to printing of pages to make output more readable
        Always print warning if rows are deleted
      storage/maria/ma_create.c:
        Calculate share.base_max_pack_length more accurately for BLOCK_RECORD pages (for future)
        Fixed that FIELD_SKIP_PRESPACE is recorded as FIELD_NORMAL; Fixed bug where fields could be used in wrong order
        Store FIELD_SKIP_ZERO fields before CHAR and VARCHAR fields (optimization)
        Store other fields in length order (to get better utilization of head block)
      storage/maria/ma_delete.c:
        Ensure my_errno is set on return
      storage/maria/ma_dynrec.c:
        Indentation fix
      storage/maria/ma_locking.c:
        Set changed if open_count is counted down.
        (To avoid getting error "client is using or hasn't closed the table properly" with transactional tables
      storage/maria/ma_loghandler.c:
        Fixed problem with advancing log horizon pointer within one page bounds (Patch from Sanja)
        Added more DBUG
        Indentation fixes
      storage/maria/ma_open.c:
        Removed wrong casts
      storage/maria/ma_page.c:
        Fixed usage of PAGECACHE_LOCK_WRITE_UNLOCK with _ma_new()
        Mark new pages as changed (Required to get repair() to work)
      storage/maria/ma_pagecache.c:
        Fixed test of error condition for flush
        Fixed problem when using PAGECACHE_LOCK_WRITE_TO_READ with unlock()
        Added call to my_debug_put_break_here() in case of errors (for debugging)
      storage/maria/ma_pagecrc.c:
        Ensure we get same crc for 32 and 64 bit systems by forcing argument to maria_page_crc to uint32
      storage/maria/ma_recovery.c:
        Call my_printv_error() from eprint() to get critical errors to mysqld log
        Removed \n from error strings to eprint() to get nicer output in mysqld
        Added simple test in _ma_reenable_logging_for_table() to not do any work if not needed
      storage/maria/ma_update.c:
        Ensure my_errno is set on return
      storage/maria/ma_write.c:
        Ensure my_errno is set on return
      storage/maria/maria_chk.c:
        Use DEBUGGER_OFF if --debug is not use (to get slightly faster execution for debug binaries)
        Added option --skip-safemalloc
        Don't write exponents for rec/key
      storage/maria/maria_def.h:
        Increase default repair buffer to 128M for maria_chk and maria_read_log
        Increase default sort buffer for maria_chk to 64M
      storage/maria/unittest/Makefile.am:
        Don't update files automaticly from bitkeeper
      storage/maria/unittest/ma_pagecache_consist.c:
        Remove testfile at end
      storage/maria/unittest/ma_pagecache_single.c:
        Remove testfile at end
      storage/maria/unittest/ma_test_all-t:
        More tests
        Safer checking if test caused error
      b5df1d34
  7. 04 Jan, 2008 1 commit
    • unknown's avatar
      Bug fixes and new features to ma_test_all-t · cab8a363
      unknown authored
      
      scripts/mysql_fix_privilege_tables.sh:
        Fix a problem with events table not getting updated correctly.
        This happens when you run scripts/mysql_fix_privilege_tables and
        you have an old version of mysql_fix_privilege_tables.sql in
        the actual installation directory. This patch makes it look for
        the file inside the source dir first.
      storage/maria/unittest/ma_test_all-t:
        Added several new options for ma_test_all-t
        
        --verbose is handy, if you want to run the tests separately on the
        screen.
        
        Added functions for counting tests and a possibility to
        separate a group of tests inside an array of test.
      unittest/Makefile.am:
        Fixed a problem with make test not executing
        ma_test_all-t properly from the top source dir.
      cab8a363
  8. 03 Jan, 2008 1 commit
    • unknown's avatar
      Added wrapper for chmod(): my_chmod() · c719e1fd
      unknown authored
      Automaticly disable ma_test_recovery if not compiled with debugging. This fixes that make test works in Maria.
      Fixed wrong merge of ma_init.c from 5.1
      Portability fixes:
      - Use my_chmod() instead of my_chmod()
      - Use my_access() instead of my_stat() to test if file exists
      - Don't test result value of pthread_mutex_lock() and pthread_mutex_unlock() as this is not portable
      - No reason to test if file exists before we delete it
      
      
      
      include/my_sys.h:
        Added my_chmod
      include/mysys_err.h:
        Added error for my_chmod
      mysys/Makefile.am:
        Added my_chmod
      mysys/errors.c:
        Added error for my_chmod
      mysys/my_init.c:
        Syncronize with 5.1 to fix setting of QueryPerformanceFrequency()
      storage/maria/ma_test1.c:
        Changed short option of --skip-delete and --skip-update to be more logical
      storage/maria/ma_test_recovery.expected:
        Updated results after adding more tests
      storage/maria/ma_test_recovery:
        Abort test nicely if we are runnning without debugging
        Added more tests
        Changed temporary file names so that one can run maria_chk on them
        Removed some old comments
      storage/maria/maria_read_log.c:
        Added note if maria_read_log will not be able to create byte-to-byte identical tables compared to normal execution
      storage/maria/unittest/ma_pagecache_consist.c:
        Removed wrong setting of buff that caused memory overwrite
        Use my_chmod() instead of chmod()
        Don't test result value of pthread_mutex_lock() and pthread_mutex_unlock() as this is not portable
      storage/maria/unittest/ma_pagecache_single.c:
        Use my_chmod() instead of chmod()
        Don't test result value of pthread_mutex_lock() and pthread_mutex_unlock() as this is not portable
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        No reason to test if file exists before we delete it
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Don't test result value of pthread_mutex_lock() and pthread_mutex_unlock() as this is not portable
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        No reason to test if file exists before we delete it
      storage/maria/unittest/ma_test_loghandler_nologs-t.c:
        Use my_access() instead of my_stat() to test if file exists
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        No reason to test if file exists before we delete it
        chmod -> my_chmod
      mysys/my_chmod.c:
        Added wrapper for chmod()
      c719e1fd
  9. 02 Jan, 2008 1 commit
    • unknown's avatar
      Disable logging of index pages during repair · f8b3e118
      unknown authored
      Fixed failure in unittest/ma_test_loghandler_pagecache-t
      Initialize pagecache callbacks explictily, not with pagecache_init().
      This is to make things more readable and for the future to make more choices with callbacks
      
      
      storage/maria/ha_maria.cc:
        Disable logging of index pages during repair
      storage/maria/ma_bitmap.c:
        Initialize callbacks explictily, not with pagecache_init(), to make things more readable and for future to have more choices with callbacks
        Use new interface to flush logs from pagecache
      storage/maria/ma_check.c:
        Fixed test for wrong keyblocks
        Use default functions to setup callbacks for pagecache
      storage/maria/ma_loghandler.c:
        Use dummy functions for log flush callback (NULL doesn't work anymore)
      storage/maria/ma_open.c:
        Initialize callbacks explictily, not with pagecache_init(), to make things more readable and for future to have more choices with callbacks
        Prefix external functions with _ma_
      storage/maria/ma_pagecache.c:
        Use new simpler interface to flush logs if needed
      storage/maria/ma_pagecache.h:
        Changed interface to a faster, simpler one to flush logs.
        Now we have a function that takes care of flushing logs, instead of a function to get lsn address
      storage/maria/ma_pagecrc.c:
        Add functions for flushing logs
      storage/maria/ma_recovery.c:
        Rename functions
      storage/maria/maria_chk.c:
        Use default functions to setup callbacks for pagecache
      storage/maria/maria_def.h:
        Prefixd global functions with _ma_
      storage/maria/unittest/ma_pagecache_consist.c:
        Use dummy functions for log flush callback (NULL doesn't work anymore)
      storage/maria/unittest/ma_pagecache_single.c:
        Use dummy functions for log flush callback (NULL doesn't work anymore)
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Use maria_flush_log_for_page to flush log pages. Fixes failure in unittest
      f8b3e118
  10. 01 Jan, 2008 2 commits
    • unknown's avatar
      after-merge fixes and comments · 98aad88f
      unknown authored
      
      mysql-test/include/maria_empty_logs.inc:
        At one moment in maria-recovery.test the first log has number 2,
        because log 1 was manually deleted.
      mysql-test/r/maria-recovery.result:
        after-merge fix
      mysql-test/t/maria-recovery.test:
        after-merge fix
      storage/maria/ma_bitmap.c:
        after-merge fix. The todo is implemented now.
      storage/maria/ma_blockrec.c:
        comment
      storage/maria/ma_open.c:
        after-merge fix. Set write_fail also for index file or a write error
        would crash.
      storage/maria/ma_pagecache.c:
        comment
      storage/maria/ma_pagecache.h:
        I prefer to use NULL for 'no callback' instead of a dummy callback
        in the special case of get_log_address; indeed for non-transactional
        tables it uses an if(), while if using a dummy callback, it would
        use a function call plus an if() (the dummy callback would need to
        return a magic value to say "don't flush" and that value would be
        tested in if()).
      storage/maria/unittest/ma_test_all-t:
        fix if running from outside storage/maria
      98aad88f
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-maria · a9c9364c
      unknown authored
      into  gbichot4.local:/home/mysql_src/mysql-maria-for-undo-phase
      
      
      a9c9364c
  11. 31 Dec, 2007 4 commits