An error occurred fetching the project authors.
  1. 13 May, 2011 1 commit
    • Michael Widenius's avatar
      Made test-unit run in parlallel. This was achived by having all aria tests... · ef652044
      Michael Widenius authored
      Made test-unit run in parlallel. This was achived by having all aria tests that uses temporary files to create the temporary file in an unique tempdirectory.
      aria_chk now returns 1 if one got any warnings during check and 2 if one got errors.
      lp:728919 maria_chk should fail on all detected corruptions
      
      mysql-test/lib/My/SafeProcess.pm:
        Removed ^M lines from the file
      storage/maria/ma_check.c:
        Fixed indentation
      storage/maria/maria_chk.c:
        aria_chk now returns 1 if one got any warnings during check and 2 if one got errors.
      storage/maria/unittest/ma_control_file-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_maria_log_cleanup.c:
        Added help function create_tmpdir()
      storage/maria/unittest/ma_pagecache_consist.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_pagecache_rwconsist.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_pagecache_rwconsist2.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_pagecache_single.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_all-t:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Use unique sub directory for test results
        remove delete of files that are already deleted by maria_log_remove()
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Use unique sub directory for test results
        remove delete of files that are already deleted by maria_log_remove()
      storage/maria/unittest/ma_test_loghandler_nologs-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Use unique sub directory for test results
        remove delete of files that are already deleted by maria_log_remove()
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Use unique sub directory for test results
      support-files/compiler_warnings.supp:
        Supress some warnings
      unittest/unit.pl:
        Run 4 unittests in parallel
      ef652044
  2. 05 May, 2011 1 commit
    • Michael Widenius's avatar
      Improved 'make test-unit' time slightly · def5a2b4
      Michael Widenius authored
      storage/maria/unittest/ma_test_loghandler-t.c:
        Don't sync during test
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Don't sync during test
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Don't sync during test
      unittest/mysys/bitmap-t.c:
        Don't test all bit combinations (not needed)
      unittest/mysys/thr_template.c:
        Remove sleep as old bug should be fixed nowadays
      unittest/mysys/waiting_threads-t.c:
        Only run test with --big
      unittest/mytap/tap.c:
        Print total time at end of test.
      unittest/unit.pl:
        Use TAP::Harness instead of Test::Harness (recommended according to manual)
        Add times to tests.
      def5a2b4
  3. 26 Oct, 2009 1 commit
    • Michael Widenius's avatar
      Fixed compiler warning message · a46bb97d
      Michael Widenius authored
      - Added checking of return value for system(), freopen(), fgets() and chown()
      - Ensure that calls that require a format strings gets a format string
      - Other trivial things
      Updated test suite results (especially for pbxt and embedded server)
      Removed warning for "Invalid (old?) table or database name 'mysqld.1'" from pbxt tests
      Speed up some pbxt tests by inserting begin ; commit; around "while loops with inserts"
      Added mysqld startup option '--debug-flush'
      Create maria_recovery.trace in data directory instead of current directory
      
      client/mysql.cc:
        Check return value from system()
      client/mysql_upgrade.c:
        Check return value from fgets()
      client/mysqladmin.cc:
        Check return value from fgets()
      client/mysqlslap.c:
        Check return value from system() (but ignore it, as it's not critical)
      extra/yassl/src/crypto_wrapper.cpp:
        Check return value from fgets() (but ignore it, as it's internal file)
      extra/yassl/taocrypt/src/aes.cpp:
        Added extra {} to remove compiler warning
      extra/yassl/taocrypt/src/blowfish.cpp:
        Added extra {} to remove compiler warning
      extra/yassl/taocrypt/src/misc.cpp:
        Ifdef not used code
      include/mysys_err.h:
        Added error message for failing chown()
      mysql-test/mysql-test-run.pl:
        Don't give warning for skipping ndbcluster (never enabled in MariaDB)
      mysql-test/suite/funcs_1/r/is_columns_is_embedded.result:
        Update with new information schema information
      mysql-test/suite/funcs_1/r/is_tables_is_embedded.result:
        New test
      mysql-test/suite/funcs_1/r/is_tables_myisam_embedded.result:
        Update test results (has not been tested for a long time)
      mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result:
        Update test results (has not been tested for a long time)
      mysql-test/suite/funcs_1/t/is_tables_is.test:
        Don't run with embedded server (as results differ)
        I added a new test for embedded server
      mysql-test/suite/funcs_1/t/is_tables_is_embedded.test:
        New test
      mysql-test/suite/pbxt/my.cnf:
        Allow one to run pbxt tests without having to specify --mysqld=--default-storage-engine=pbxt
      mysql-test/suite/pbxt/t/count_distinct3.test:
        Speed up test by inserting begin; ... commit;
      mysql-test/suite/pbxt/t/subselect.test:
        Speed up test by inserting begin; ... commit;
      mysys/errors.c:
        Added error message for failing chown()
      mysys/my_copy.c:
        Added error message for failing chown()
      mysys/my_redel.c:
        Added error message for failing chown()
      mysys/safemalloc.c:
        Added cast to get rid of compiler warning
      sql/ha_partition.cc:
        Fixed wrong argument to sql_print_error() (it requires a format string)
      sql/log.cc:
        Test return value of freopen()
      sql/mysqld.cc:
        Test return value of freopen()
        Added startup option '--debug-flush' to be used when one gets a core dump (easy to explain to people on IRC)
      sql/rpl_rli.cc:
        Fixed wrong argument to sql_print_error() (it requires a format string)
      sql/set_var.cc:
        Added {} to get rid of compiler warnings
      sql/slave.cc:
        Fixed wrong argument to mi->report() and sql_print...() (they require a format string)
      sql/sql_cache.cc:
        Fixed wrong argument to sql_printinformation() (it requires a format string)
      sql/sql_parse.cc:
        Test return value of fgets()
      sql/sql_plugin.cc:
        Fixed wrong argument to sql_print_error() (it requires a format string)
      sql/sql_select.cc:
        Use unique table name for internal temp tables instead of full path
        (Simple speed & space optimization)
      sql/udf_example.c:
        Removed compiler warning about not used variable
      storage/maria/ha_maria.cc:
        Fixed wrong argument to sql_print_error() and ma_check_print_error() (they require a format string)
      storage/maria/ma_recovery.c:
        Create maria_recovery.trace in data directory instead of current directory
      storage/maria/unittest/ma_test_loghandler-t.c:
        Fixed wrong argument to ok();  Requires a format string
      storage/pbxt/src/strutil_xt.cc:
        Detect temporary tables by checking if that path for the table is in the mysql data directory.
        The database for temporary tables is after this patch, from PBXT point of view, ""
        This is needed to stop PBXT from calling filename_to_tablename() with the base directory as an argument, which caused
        ERROR: Invalid (old?) table or database name 'mysqld.1'" in the log when running the test suite.
      tests/mysql_client_test.c:
        Fixed compiler warnings
      unittest/mysys/base64-t.c:
        Fixed wrong argument to diag() (it requires a format string)
        Added a comment that the current 'print' of differing buffers doesn't print the right thing,
        but didn't fix this as it's not important (unless we find a bug in the real code)
      a46bb97d
  4. 04 Aug, 2008 1 commit
    • Sergei Golubchik's avatar
      compiler warnings · 9dc11507
      Sergei Golubchik authored
      trnman: remove old lockman code
      trnman: replace trid_to_committed_trn hash with trid_to_trn
      
      storage/maria/ma_blockrec.c:
        compiler warnings
      storage/maria/ma_loghandler.c:
        compiler warnings
      storage/maria/ma_write.c:
        compiler warnings
      storage/maria/trnman.c:
        remove old lockman code
        replace trid_to_committed_trn hash with trid_to_trn
      storage/maria/trnman.h:
        remove old lockman code
        replace trid_to_committed_trn hash with trid_to_trn
      storage/maria/unittest/ma_test_loghandler-t.c:
        compiler warnings
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        compiler warnings
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        compiler warnings
      9dc11507
  5. 10 Apr, 2008 1 commit
    • unknown's avatar
      Added versioning of row data · 716a3493
      unknown authored
      Will in future changeset (soon) av versioning of status variables (number of rows) and index
      Changed some LEX_STRING to LEX_CUSTRING to avoid casts and warnings
      Removed some not needed variables (as noticed by Guilhem)
      
      
      include/maria.h:
        Added prototypes for maria_chk_init_for_check(), maria_versioning() and maria_ignore_trids()
      include/my_base.h:
        Add new error HA_ERR_ROW_NOT_VISIBLE
      include/myisamchk.h:
        Added variables for checking visibility of rows during maria_chk
      include/thr_lock.h:
        Changed argument type from int to my_bool for get_status
        Added variable allow_multiple_concurrent_insert, to signal if table supports multiple concurrent inserts
      mysql-test/r/maria-page-checksum.result:
        Added missing drop table
      mysql-test/t/maria-page-checksum.test:
        Added missing drop table
      mysys/my_handler.c:
        Added new error messages
      mysys/thr_lock.c:
        Added support for multiple concurrent inserts, if table handler supports it
      sql/sql_yacc.yy:
        Added LOCK TABLE table_name WRITE CONCURRENT
        This was added (temporarly?) to be able to check versioning with Maria
      storage/csv/ha_tina.cc:
        Updated parameter for get_status
      storage/maria/ha_maria.cc:
        Added calls to maria_chk_init_status()
        Fixed call to ma_control_file_open()
      storage/maria/ma_blockrec.c:
        Changed some LEX_STRING to LEX_CUSTRING to avoid casts and warnings
        Changed back some 'header' parameters to const char*
        Removed some casts
        
        Added support for versioning:
        - If info->row_flag & ROW_FLAG_TRANSID is set, store transaction id together with the row
        - When reading rows, check if rows are visible. Give error if not
        - When scanning table, ignore not visible rows
        - Added function parameters to some functions, to be able to call _ma_compact_block_page() with different parameters depending of if the page is a HEAD or TAIL page
        - _ma_compact_block_page() deletes transaction id's that are visible by all running transactions
        - Added functions for thr_lock() to enable multiple concurrent inserts
        - Added helper function 'mysql_versioning()' to enable/disable versioning
        - Added helper function maria_ignore_trids(), used by maria_chk and maria_pack to see all rows.
      storage/maria/ma_blockrec.h:
        Updated parameters for some functions.
        Added new functions to read/store state with thr_lock
      storage/maria/ma_check.c:
        Enable handling of transaction id's in rows
        Give a readable error if a table contains a transation id that makes rows not visible
      storage/maria/ma_control_file.c:
        Added option to not give warning if control file doesn't exists.
      storage/maria/ma_control_file.h:
        Updated parameter lists for ma_control_file_open()
      storage/maria/ma_delete.c:
        Removed not used variable (suggestion by Guilhem)
      storage/maria/ma_locking.c:
        Changed type of argument from int -> my_bool
      storage/maria/ma_open.c:
        Removed not used variables 'key_write_undo_lsn' and 'key_delete_undo_lsn'
        Added new thr_lock interface functions for BLOCK_RECORD to enable multiple concurrent insert
      storage/maria/ma_test1.c:
        Added option --versioning (-C) to check versioning
      storage/maria/ma_test2.c:
        Added option -C to check versioning
      storage/maria/ma_test_recovery:
        Forward argumetns to ma_test_recovery.pl
      storage/maria/ma_write.c:
        Removed not used variable key_write_undo_lsn
      storage/maria/maria_chk.c:
        Always read control file (if exist) at start
        Initialize checking of tables by calling maria_chk_init_for_check()
        In verbose mode and in case of error, print max found transaction id
      storage/maria/maria_def.h:
        Added Trid to MARIA_ROW to be able to check transaction id for found row
        Moved 'base_length' from MARIA_ROW to MARIA_HA to be able to handle different base length (with and without TRANSID) without if's
        Added default row_flag to MARIA_HA for the same reason
        Changed LEX_STRING -> LEX_CUSTRING to avoid casts in ma_blockrec.c
        Removed not needed variables key_write_undo_lsn and key_delete_undo_lsn
        Added prototypes for new functions and fixed those that had changed
      storage/maria/maria_pack.c:
        Ensure we can read all rows from the file, independent of the used transaction id
      storage/maria/maria_read_log.c:
        Updated arguments to ma_control_file_open()
      storage/maria/trnman.c:
        If we have only one transaction, fixed that min_read_from contains current transaction
        Fixed that trnman_can_read_from() returns that row is readable if it was written by current transaction
      storage/maria/unittest/ma_control_file-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_all-t:
        Added test of versioning
        Removed printing of one extra space
      storage/maria/unittest/ma_test_loghandler-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_loghandler_nologs-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Updated arguments to ma_control_file_open()
      storage/maria/unittest/ma_test_recovery.expected:
        Updated file with result from new tests
      storage/maria/unittest/ma_test_recovery.pl:
        Added options --abort-on-error and --verbose
        In case of --verbose, print all excuted shell commands
        Added test of versioning
      storage/myisam/mi_locking.c:
        Updated type of parameter
      storage/myisam/myisamdef.h:
        Updated type of parameter
      mysql-test/r/maria-mvcc.result:
        New BitKeeper file ``mysql-test/r/maria-mvcc.result''
      mysql-test/t/maria-mvcc.test:
        New BitKeeper file ``mysql-test/t/maria-mvcc.test''
      716a3493
  6. 04 Apr, 2008 1 commit
    • unknown's avatar
      Store maximum transaction id into control file at clean shutdown. · 1f566172
      unknown authored
      This can serve to maria_chk to check that trids found in rows and keys
      are not too big. Also used by Recovery when logs are lost.
      Options --require-control-file, --datadir, --log-dir (yes, the dashes are
      inconsistent but I imitated mysqld --datadir and --maria-log-dir) for
      maria_chk.
      Lock control file _before_ reading its content.
      
      
      storage/maria/ha_maria.cc:
        new prototype
      storage/maria/ma_check.c:
        A function to find the max trid in the system (consults transaction
        manager and control file), to check tables.
      storage/maria/ma_checkpoint.c:
        new prototype
      storage/maria/ma_control_file.c:
        Store max trid into control file, in a backward-compatible way
        (can still read old control files).
        Parameter to ma_control_file_open(), to not create the log if it's
        missing (maria_chk needs that).
        Lock control file _before_ reading its content.
        Fix for a segfault when reading an old control file (bzero() with a
        negative second argument)
      storage/maria/ma_control_file.h:
        changes to the control file module's API
      storage/maria/ma_init.c:
        When Maria shuts down cleanly, store max trid into control file.
      storage/maria/ma_loghandler.c:
        new prototype
      storage/maria/ma_recovery.c:
        During recovery, consult max trid stored in control file, in case it is
        bigger than what we found in log (case of logs manually removed by user).
      storage/maria/ma_test1.c:
        new prototype
      storage/maria/ma_test2.c:
        new prototype
      storage/maria/maria_chk.c:
        New option --require-control-file (abort if control file not found),
        --datadir (path for control file (and for logs if --log-dir not specified)),
        --log-dir (path for logs).
        Try to open control file when maria_chk starts.
      storage/maria/maria_read_log.c:
        new prototype
      storage/maria/trnman.c:
        A new function to know max trid in transaction manager
      storage/maria/trnman_public.h:
        New function
      storage/maria/unittest/ma_control_file-t.c:
        new prototypes. Testing storing and retrieving the max trid to/from
        control file
      storage/maria/unittest/ma_test_loghandler-t.c:
        new prototype
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        new prototype
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        new prototype
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        new prototype
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        new prototype
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        new prototype
      storage/maria/unittest/ma_test_loghandler_nologs-t.c:
        new prototype
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        new prototype
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        new prototype
      1f566172
  7. 03 Apr, 2008 1 commit
    • unknown's avatar
      Injecting more "const" declarations into code which does not change · d68922e6
      unknown authored
      pointed data.
      I ran gcc -Wcast-qual on storage/maria, this identified un-needed casts,
      a couple of functions which said they had a const parameter though
      they changed the pointed content! This is fixed here. Some suspicious
      places receive a comment.
      The original intention of running -Wcast-qual was to find what code
      changes R-tree keys: I added const words, but hidden casts
      like those of int2store (casts target to (uint16*)) removed const
      checking; -Wcast-qual helped find those hidden casts.
      Log handler does not change the content pointed by LEX_STRING::str it
      receives, so we now use a struct which has a const inside, to emphasize
      this and be able to pass "const uchar*" buffers to log handler
      without fear of their content being changed by it.
      One-line fix for a merge glitch (when merging from MyISAM).
      
      
      include/m_string.h:
        As Maria's log handler uses LEX_STRING but never changes the content
        pointed by LEX_STRING::str, and assigns uchar* into this member most
        of the time, we introduce a new struct LEX_CUSTRING
        (C const U unsigned) for the log handler.
      include/my_global.h:
        In macros which read pointed content: use const pointers so that
        gcc -Wcast-qual does not warn about casting a const pointer to non-const.
      include/my_handler.h:
        In macros which read pointed content: use const pointers so that
        gcc -Wcast-qual does not warn about casting a const pointer to non-const.
        ha_find_null() does not change *a.
      include/my_sys.h:
        insert_dynamic() does not change *element.
      include/myisampack.h:
        In macros which read pointed content: use const pointers so that
        gcc -Wcast-qual does not warn about casting a const pointer to non-const.
      mysys/array.c:
        insert_dynamic() does not change *element
      mysys/my_handler.c:
        ha_find_null() does not change *a
      storage/maria/ma_bitmap.c:
        Log handler receives const strings now
      storage/maria/ma_blockrec.c:
        Log handler receives const strings now.
        _ma_apply_undo_row_delete/update() do change *header.
      storage/maria/ma_blockrec.h:
        correct prototype
      storage/maria/ma_check.c:
        Log handler receives const strings now. Un-needed casts
      storage/maria/ma_checkpoint.c:
        Log handler receives const strings now
      storage/maria/ma_checksum.c:
        unneeded cast
      storage/maria/ma_commit.c:
        Log handler receives const strings now
      storage/maria/ma_create.c:
        Log handler receives const strings now
      storage/maria/ma_dbug.c:
        fixing warning of gcc -Wcast-qual
      storage/maria/ma_delete.c:
        Log handler receives const strings now
      storage/maria/ma_delete_all.c:
        Log handler receives const strings now
      storage/maria/ma_delete_table.c:
        Log handler receives const strings now
      storage/maria/ma_dynrec.c:
        fixing some warnings of gcc -Wcast-qual. Unneeded casts removed.
        Comment about function which lies.
      storage/maria/ma_ft_parser.c:
        fix for warnings of gcc -Wcast-qual, removing unneeded casts
      storage/maria/ma_ft_update.c:
        less casts, comment
      storage/maria/ma_key.c:
        less casts, stay const (warnings of gcc -Wcast-qual)
      storage/maria/ma_key_recover.c:
        Log handler receives const strings now
      storage/maria/ma_loghandler.c:
        Log handler receives const strings now
      storage/maria/ma_loghandler.h:
        Log handler receives const strings now
      storage/maria/ma_loghandler_lsn.h:
        In macros which read pointed content: use const pointers so that
        gcc -Wcast-qual does not warn about casting a const pointer to non-const.
      storage/maria/ma_page.c:
        Log handler receives const strings now; more const
      storage/maria/ma_recovery.c:
        Log handler receives const strings now
      storage/maria/ma_rename.c:
        Log handler receives const strings now
      storage/maria/ma_rt_index.c:
        more const, to emphasize that functions don't change pointed content.
        best_key= NULL was forgotten during merge from MyISAM a few days ago,
        was causing a Valgrind warning
      storage/maria/ma_rt_index.h:
        new proto
      storage/maria/ma_rt_key.c:
        more const
      storage/maria/ma_rt_key.h:
        new proto
      storage/maria/ma_rt_mbr.c:
        more const for functions which deserve it
      storage/maria/ma_rt_mbr.h:
        new prototype
      storage/maria/ma_rt_split.c:
        make const what is not changed.
      storage/maria/ma_search.c:
        un-needed casts, more const
      storage/maria/ma_sp_key.c:
        more const
      storage/maria/ma_unique.c:
        un-needed casts.
      storage/maria/ma_write.c:
        Log handler receives const strings now
      storage/maria/maria_def.h:
        some more const
      storage/maria/unittest/ma_test_loghandler-t.c:
        Log handler receives const strings now
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Log handler receives const strings now
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Log handler receives const strings now
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Log handler receives const strings now
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Log handler receives const strings now
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Log handler receives const strings now
      storage/maria/unittest/ma_test_loghandler_nologs-t.c:
        Log handler receives const strings now
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Log handler receives const strings now
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Log handler receives const strings now
      d68922e6
  8. 04 Mar, 2008 1 commit
    • unknown's avatar
      copyright and license info · f139350c
      unknown authored
      storage/maria/Makefile.am:
        copyright
      storage/maria/ma_pagecache.c:
        copyright
      storage/maria/ma_pagecache.h:
        copyright
      storage/maria/ma_pagecaches.c:
        copyright
      storage/maria/ma_pagecrc.c:
        copyright
      storage/maria/unittest/Makefile.am:
        copyright
      storage/maria/unittest/lockman-t.c:
        copyright
      storage/maria/unittest/lockman1-t.c:
        copyright
      storage/maria/unittest/lockman2-t.c:
        copyright
      storage/maria/unittest/ma_control_file-t.c:
        copyright
      storage/maria/unittest/ma_loghandler_examples.c:
        copyright
      storage/maria/unittest/ma_maria_log_cleanup.c:
        copyright
      storage/maria/unittest/ma_pagecache_consist.c:
        copyright
      storage/maria/unittest/ma_pagecache_rwconsist.c:
        copyright
      storage/maria/unittest/ma_pagecache_single.c:
        copyright
      storage/maria/unittest/ma_test_loghandler-t.c:
        copyright
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        copyright
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        copyright
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        copyright
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        copyright
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        copyright
      storage/maria/unittest/ma_test_loghandler_nologs-t.c:
        copyright
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        copyright
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        copyright
      storage/maria/unittest/test_file.c:
        copyright
      storage/maria/unittest/test_file.h:
        copyright
      storage/maria/unittest/trnman-t.c:
        copyright
      f139350c
  9. 19 Feb, 2008 1 commit
  10. 31 Jan, 2008 1 commit
    • unknown's avatar
      Small changes for unit tests. · bf575436
      unknown authored
      storage/maria/unittest/Makefile.am:
        fixed names of tests.
      storage/maria/unittest/ma_pagecache_consist.c:
        Some of pagecache multi-thread tests are not big.
        Fixed reporting of tests end (now under mutex protection).
      storage/maria/unittest/ma_test_loghandler-t.c:
        fixed layout to make blocks nof parameters more visible.
      bf575436
  11. 30 Jan, 2008 1 commit
    • unknown's avatar
      Compiler warnings fixed. · d05cdd25
      unknown authored
      storage/maria/ma_loghandler.c:
        Compiler warning fixed.
      storage/maria/ma_test1.c:
        Compiler warning fixed.
      storage/maria/ma_test2.c:
        Compiler warning fixed.
      storage/maria/maria_chk.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_control_file-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler_nologs-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Compiler warning fixed.
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Compiler warning fixed.
      d05cdd25
  12. 29 Jan, 2008 1 commit
    • unknown's avatar
      changes for big unit tests · 7780d5e1
      unknown authored
      Makefile.am:
        make test-unit-big
      storage/maria/unittest/Makefile.am:
        support big unit tests
      storage/maria/unittest/ma_pagecache_consist.c:
        support big unit tests and other changes
      storage/maria/unittest/ma_pagecache_single.c:
        support big unit tests
      storage/maria/unittest/ma_test_all-t:
        support big unit tests and sub skip()
      storage/maria/unittest/ma_test_loghandler-t.c:
        support big unit tests
      unittest/unit.pl:
        don't ignore existing $MYTAP_CONFIG
      7780d5e1
  13. 10 Jan, 2008 1 commit
    • unknown's avatar
      Windows fixes · 0ac29796
      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
      0ac29796
  14. 21 Dec, 2007 1 commit
  15. 15 Dec, 2007 2 commits
    • unknown's avatar
      Pagecache callbacks support added. · fce0e6a0
      unknown authored
      Page CRC check based on pagecache support added.
      Loghandler pagecache callbacks support added.
      Loghandler filecache rewritten.
      Support of deletting all logs added.
      
      
      storage/maria/Makefile.am:
        New file with functions for CRC calculation.
      storage/maria/ma_bitmap.c:
        Page CRC support.
      storage/maria/ma_blockrec.c:
        Removed code replaced by pagecache callbacks.
      storage/maria/ma_check.c:
        Page CRC support.
      storage/maria/ma_create.c:
        Page CRC support.
      storage/maria/ma_loghandler.c:
        Pagecache callbacks support.
        New file cache support.
        Removing log files support.
      storage/maria/ma_loghandler.h:
        CRC_LENGTH replaced with CRC_SIZE
      storage/maria/ma_open.c:
        Page CRC support.
      storage/maria/ma_page.c:
        Page CRC support.
      storage/maria/ma_pagecache.c:
        Pagecache callbacks support.
      storage/maria/ma_pagecache.h:
        Pagecache callbacks support.
      storage/maria/ma_panic.c:
        Page CRC support.
      storage/maria/maria_chk.c:
        Page CRC support.
      storage/maria/maria_def.h:
        Page CRC support.
      storage/maria/unittest/Makefile.am:
        New test of removing logs.
      storage/maria/unittest/ma_maria_log_cleanup.c:
        Memory leack fixed.
      storage/maria/unittest/ma_pagecache_consist.c:
        Pagecache callbacks support.
      storage/maria/unittest/ma_pagecache_single.c:
        Pagecache callbacks support.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Fixed the test error processing.
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Fixed the test error processing.
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Fixed the test error processing.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Fixed the test error processing.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Fixed the test error processing.
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Fixed the test error processing.
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Pagecache callbacks support.
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Fixed the test error processing.
      storage/maria/unittest/test_file.c:
        Removed unneeded sync.
      fce0e6a0
    • unknown's avatar
      Transaction log behaviour in case of write · 3a913bdf
      unknown authored
        error fixed (switching to the read only mode).
      Added read only mode of transactions log handler.
      
      
      storage/maria/ha_maria.cc:
        Transaction log initialization parameters change.
      storage/maria/ma_check.c:
        New status variable of transactional log.
      storage/maria/ma_create.c:
        New status variable of transactional log.
      storage/maria/ma_loghandler.c:
        - New status variable added.
        - Checking the status variable in the loghandler
        interface functions added
        - All fails of loghandler functions revised.
        - UNRECOVERABLE_ERROR() removed.
        - Switching to read only mode added where it nead.
        - Checking of log state added before writes log content
          and changing status variables like sent_to_file, n_buffers_only, flushed.
        - Readonly loghandler initialization added.
        - Fixed problem with example table transactional log initialization.
      storage/maria/ma_loghandler.h:
        Readonly loghandler initialization added.
        Fixed problem with example table transactional log initialization.
        New status variable added.
      storage/maria/ma_open.c:
        New status variable of transactional log.
      storage/maria/ma_test1.c:
        Transaction log initialization parameters change.
      storage/maria/ma_test2.c:
        Transaction log initialization parameters change.
      storage/maria/maria_read_log.c:
        Transaction loghandler initialization in read only mode in
        case of only dysplay parameter.
      storage/maria/unittest/Makefile.am:
        Test of readonly mode added.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Transaction log initialization parameters change.
        Fixed problem with example table transactional log initialization.
        Fixed incorrect fprintf call parameters.
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Transaction log initialization parameters change.
        Fixed problem with example table transactional log initialization.
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Transaction log initialization parameters change.
        Fixed problem with example table transactional log initialization.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Useing this test also as read only loghandler test.
        Transaction log initialization parameters change.
        Fixed problem with example table transactional log initialization.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Transaction log initialization parameters change.
        Fixed problem with example table transactional log initialization.
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Transaction log initialization parameters change.
        Fixed problem with example table transactional log initialization.
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Transaction log initialization parameters change.
        Fixed problem with example table transactional log initialization.
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Transaction log initialization parameters change.
        Fixed problem with example table transactional log initialization.
      3a913bdf
  16. 11 Dec, 2007 1 commit
    • unknown's avatar
      Post review fix (serg). · 7917e8cc
      unknown authored
      Added more checks.
      
      
      storage/maria/ha_maria.cc:
        Let control size to my_get_opts().
      storage/maria/ma_loghandler.c:
        Let control size to my_get_opts().
        Removed unused function.
        Assert to check log file size.
        Additional compilation warnings.
      storage/maria/ma_loghandler.h:
        New log size bounds.
        Removed unused function.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Fixed test to confirm new log size bounds.
      7917e8cc
  17. 06 Dec, 2007 1 commit
    • unknown's avatar
      Trivial postreview changes. · 79fab2f1
      unknown authored
      storage/maria/ma_blockrec.c:
        Layout fix.
      storage/maria/ma_loghandler.c:
        Renamed struct variable 'class' to avoid problems with c++ compiler.
        Renamed translog_init_scanner to fit othere init functions naming pattern.
        translog_relative_LSN_encode can't return error for now.
        Other trivial postreview changes.
      storage/maria/ma_loghandler_lsn.h:
        trivial postreview changes.
      storage/maria/ma_recovery.c:
        Renamed translog_init_scanner to fit othere init functions naming pattern.
      storage/maria/unittest/ma_loghandler_examples.c:
        Renamed struct variable 'class' to avoid problems with c++ compiler.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Renamed translog_init_scanner to fit othere init functions naming pattern.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Renamed translog_init_scanner to fit othere init functions naming pattern.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Renamed translog_init_scanner to fit othere init functions naming pattern.
      79fab2f1
  18. 04 Dec, 2007 1 commit
    • unknown's avatar
      Added error HA_ERR_FILE_TOO_SHORT to be used when files are shorter than... · 47348f6f
      unknown authored
      Added error HA_ERR_FILE_TOO_SHORT to be used when files are shorter than expected (by my_read/my_pread)
      Added debugger hook _my_dbug_put_break_here() that is called if we get a CRC that matches --debug-crc-break (my_crc_dbug_break)
      Fixed REDO_REPAIR to use all repair modes (repair, repair_by_sort, repair_paralell
      REDO_REPAIR now also logs used key map
      Fixed some bugs in REDO logging of key pages
      Better error messages from maria_read_log
      Added my_readwrite_flags to init_pagecache() to be able to get better error messages and simplify code.
      Don't allow pagecaches with less than 8 blocks (Causes strange crashes)
      Added EXTRA_DEBUG_KEY_CHANGES. When this is defined some REDO_INDEX entries contains page checksums (these are calculated and checked in DBUG mode, ignored otherwise)
      Fixed bug in ma_pagecache unit tests that caused program to sometimes fail
      Added some missing calls to MY_INIT() that caused some unit tests to fail
      Fixed that TRUNCATE works properly on temporary MyISAM files
      Updates some result files to new table checksums results (checksum when NULL fields are ignored)
      perl test-insert can be replayed with maria_read_log!
      
      
      sql/share/Makefile.am:
        Change mode to -rw-rw-r--
      BitKeeper/etc/ignore:
        added storage/maria/unittest/page_cache_test_file_1 storage/maria/unittest/pagecache_debug.log
      include/maria.h:
        Added maria_tmpdir
      include/my_base.h:
        Added error HA_ERR_FILE_TOO_SHORT
      include/my_sys.h:
        Added variable my_crc_dbug_check
        Added function my_dbug_put_break_here()
      include/myisamchk.h:
        Added org_key_map (Needed for writing REDO record for REPAIR)
      mysql-test/r/innodb.result:
        Updated to new checksum algorithm (NULL ignored)
      mysql-test/r/mix2_myisam.result:
        Updated to new checksum algorithm (NULL ignored)
      mysql-test/r/myisam.result:
        Updated to new checksum algorithm (NULL ignored)
      mysql-test/t/myisam.test:
        Added used table
      mysys/checksum.c:
        Added DBUG for checksum results
        Added debugger hook so that _my_dbug_put_break_here() is called if we get matching CRC
      mysys/lf_alloc-pin.c:
        Fixed compiler warning
      mysys/my_handler.c:
        Added new error message
      mysys/my_init.c:
        If my_progname is not given, use 'unknown' form my_progname_short
        Added debugger function my_debug_put_break_here()
      mysys/my_pread.c:
        In case of too short file when MY_NABP or MY_FNABP is specified, give error HA_ERR_FILE_TO_SHORT
      mysys/my_read.c:
        In case of too short file when MY_NABP or MY_FNABP is specified, give error HA_ERR_FILE_TO_SHORT
      sql/mysqld.cc:
        Added debug option --debug-crc-break
      sql/sql_parse.cc:
        Trivial optimization
      storage/maria/ha_maria.cc:
        Renamed variable to be more logical
        Ensure that param.testflag is correct when calling repair
        Added extra argument to init_pagecache
        Set default value for maria_tempdir
      storage/maria/ma_blockrec.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/maria/ma_cache.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/maria/ma_check.c:
        Set param->testflag to match how repair is run (needed for REDO logging)
        Simple optimization
        Moved flag if page is node from pagelength to keypage-flag byte
        Log used key map in REDO log.
      storage/maria/ma_delete.c:
        Remember previous UNDO entry when writing undo (for future CLR records)
        Moved flag if page is node from pagelength to keypage-flag byte
        Fixed some bugs in redo logging
        Added CRC for some translog REDO_INDEX entries
      storage/maria/ma_dynrec.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/maria/ma_ft_update.c:
        Fixed call to _ma_store_page_used()
      storage/maria/ma_key_recover.c:
        Added CRC for some translog REDO_INDEX entries
        Removed not needed pagecache_write() in _ma_apply_redo_index()
      storage/maria/ma_locking.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/maria/ma_loghandler.c:
        Added used key map to REDO_REPAIR_TABLE
      storage/maria/ma_loghandler.h:
        Added operation for checksum of key pages
      storage/maria/ma_open.c:
        Allocate storage for undo lsn pointers
      storage/maria/ma_pagecache.c:
        Remove not needed include file
        Change logging to use fd: for file descritors as other code
        Added my_readwrite_flags to init_pagecache() to be able to get better error messages for maria_chk/maria_read_log
        Don't allow pagecaches with less than 8 blocks
        Remove wrong DBUG_ASSERT()
      storage/maria/ma_pagecache.h:
        Added readwrite_flags
      storage/maria/ma_recovery.c:
        Better error messages for maria_read_log:
        - Added eprint() for printing error messages
        - Print extra \n before error message if we are printing %0 %10 ...
        
        Added used key_map to REDO_REPAIR log entry
        More DBUG
        Call same repair method that was used by mysqld
      storage/maria/ma_rt_index.c:
        Moved flag if page is node from pagelength to keypage-flag byte
      storage/maria/ma_rt_key.c:
        Fixed call to _ma_store_page_used()
      storage/maria/ma_rt_split.c:
        Moved flag if page is node from pagelength to keypage-flag byte
      storage/maria/ma_static.c:
        Added maria_tmpdir
      storage/maria/ma_test1.c:
        Updated call to init_pagecache()
      storage/maria/ma_test2.c:
        Updated call to init_pagecache()
      storage/maria/ma_test3.c:
        Updated call to init_pagecache()
      storage/maria/ma_write.c:
        Removed #ifdef NOT_YET
        Moved flag if page is node from pagelength to keypage-flag byte
        Fixed bug in  _ma_log_del_prefix()
      storage/maria/maria_chk.c:
        Fixed wrong min limit for page_buffer_size
        Updated call to init_pagecache()
      storage/maria/maria_def.h:
        Added EXTRA_DEBUG_KEY_CHANGES. When this is defined some REDO_INDEX entries contains page checksums
        Moved flag if page is node from pagelength to keypage-flag byte
      storage/maria/maria_ftdump.c:
        Updated call to init_pagecache()
      storage/maria/maria_pack.c:
        Updated call to init_pagecache()
        Reset share->state.create_rename_lsn & share->state.is_of_horizon
      storage/maria/maria_read_log.c:
        Better error messages
        Added --tmpdir option (needed to set temporary directory for REDO_REPAIR)
        Added --start-from-lsn
        Changed option for --display-only to 'd' (wanted to use -o for 'offset')
      storage/maria/unittest/lockman2-t.c:
        Added missing call to MY_INIT()
      storage/maria/unittest/ma_pagecache_consist.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_pagecache_single.c:
        Fixed bug that caused program to sometimes fail
        Added some DBUG_ASSERTS()
        Changed some calls to malloc()/free() to my_malloc()/my_free()
        Create extra file to expose original hard-to-find bug
      storage/maria/unittest/ma_test_loghandler-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/test_file.c:
        Changed malloc()/free() to my_malloc()/my_free()
        Fixed memory leak
        Changd logic a bit while trying to find bug in reset_file()
      storage/maria/unittest/trnman-t.c:
        Added missing call to MY_INIT()
      storage/myisam/mi_cache.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/myisam/mi_create.c:
        Removed O_EXCL to get TRUNCATE to work for temporary files
      storage/myisam/mi_dynrec.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/myisam/mi_locking.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      mysql-test/r/old-mode.result:
        New BitKeeper file ``mysql-test/r/old-mode.result''
      mysql-test/t/old-mode-master.opt:
        New BitKeeper file ``mysql-test/t/old-mode-master.opt''
      mysql-test/t/old-mode.test:
        New BitKeeper file ``mysql-test/t/old-mode.test''
      47348f6f
  19. 03 Dec, 2007 1 commit
    • unknown's avatar
      Added variable to control log directory syncs. · 58044b8c
      unknown authored
      Part of postreview fixes added.
      
      
      mysql-test/r/maria.result:
        Added variable to control log directory syncs.
      storage/maria/ha_maria.cc:
        Added variable to control log directory syncs.
      storage/maria/ma_loghandler.h:
        Added variable to control log directory syncs.
      storage/maria/ma_loghandler_lsn.h:
        postreview fix
      storage/maria/unittest/Makefile.am:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_test_loghandler-t.c:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        New file with logrecord descriptors for tests.
      storage/maria/unittest/ma_loghandler_examples.c:
        New BitKeeper file ``storage/maria/unittest/ma_loghandler_examples.c''
      58044b8c
  20. 20 Nov, 2007 1 commit
    • unknown's avatar
      Fixes for redo/undo logging of key pages · ea6ec89e
      unknown authored
      New extendable format for maria_log_control file
      Fixed some compiler warnings
      
      
      include/maria.h:
        Added maria_disable_logging() and maria_enable_logging()
      mysql-test/include/maria_verify_recovery.inc:
        Updated tests now when key redo/undo works
      mysql-test/r/maria-recovery.result:
        Updated tests now when key redo/undo works
      storage/maria/ma_blockrec.c:
        Use unified CLR code
        Added rec_lsn for full pages
        Moved clr write hook to ma_key_recover.c
        Changed REDO code to keep pages pinned until undo
        Mark page_link's as changed
      storage/maria/ma_blockrec.h:
        Moved write_hook_for_clr_end() to ma_key_recover.c
      storage/maria/ma_check.c:
        Changed key check code to use PAGECACHE_READ_UNKNOWN_PAGE
        Fixed wrong warning when checking files after maria_pack
        When unpacking files, we have to use new keypos_to_recpos method
        When doing repair, we can disregard index key file pages in page cache
      storage/maria/ma_commit.c:
        Added simple enable/disable logging functions
        (Needed for recovery)
      storage/maria/ma_control_file.c:
        Make maria control file extendable without having to make it incompatible for older versions
      storage/maria/ma_control_file.h:
        New error messages
        Added CONTROL_FILE_VERSION
      storage/maria/ma_delete.c:
        Added redo/undo for key pages
        change_length -> changed_length to make things similar
        More comments & more DBUG
      storage/maria/ma_key_recover.c:
        Unified CLR method
        Moved here write_hook_for_clr_end() and common keypage log functions
        Changed REDO to keep pages pinned until undo
        Changed UNDO code to change key_root under log mutex
      storage/maria/ma_key_recover.h:
        New structures and functions
      storage/maria/ma_loghandler.c:
        Include needed files
      storage/maria/ma_open.c:
        Change maria_open() to use pread() instead of read()
      storage/maria/ma_page.c:
        Fixed bug in key_del handling
        Clear pages if IDENTICAL_PAGES_AFTER_RECOVERY is defined
      storage/maria/ma_pagecache.c:
        Indentation and spelling fixes
        More DBUG
        Added helper function: pagecache_block_link_to_buffer()
      storage/maria/ma_pagecache.h:
        Added pagecache_block_link_to_buffer()
      storage/maria/ma_recovery.c:
        Fixed state.changed
        Fixed that REDO keeps pages pinned until UNDO
        Some bug fixes from previous commit
        Fixes for UNDO/REDO of key pages
      storage/maria/ma_search.c:
        Fixed packing and storing of keys to provide more information to caller so
        that we can do efficent REDO logging of the changes.
      storage/maria/ma_test1.c:
        Fixed bug with not initialized variable
      storage/maria/ma_test2.c:
        Removed not used code
      storage/maria/ma_test_all.res:
        Updated results
      storage/maria/ma_test_all.sh:
        Changed one test to test more
        Removed timing tests as not relevant here
      storage/maria/ma_test_recovery.expected:
        Updated test result after redo/undo if key pages works
      storage/maria/ma_test_recovery:
        Updated test after redo/undo if key pages works
      storage/maria/ma_write.c:
        Moved some general log functions to ma_key_recover.c
        Fixed some bugs in undo
        Moved ma_log_split() to _ma_split_page()
        Small changes in some function arguments to be able to do redo logging
      storage/maria/maria_chk.c:
        disable logging while doing repair table
      storage/maria/maria_def.h:
        New function prototypes
        Move some structs and functions to ma_key_recover.c
      storage/maria/unittest/ma_control_file-t.c:
        Updated with patch from Sanja
        NOTE: This is not complete and need to be updated to new control file format
      storage/maria/unittest/ma_test_loghandler-t.c:
        Fixed compiler warning
      ea6ec89e
  21. 09 Nov, 2007 1 commit
    • unknown's avatar
      Infinite loop in case of given address more then last LSN fixed. · 5ddc4d8f
      unknown authored
      storage/maria/ma_loghandler.c:
        Infinite loop in case of given address more then last LSN fixed
        (now it means just flush all log).
        Removed unneeded ASSERT.
      storage/maria/unittest/ma_test_loghandler-t.c:
        The test case of flushing all log added.
      5ddc4d8f
  22. 02 Oct, 2007 1 commit
    • unknown's avatar
      WL#3072 - Maria recovery. · 198a1b6f
      unknown authored
      * Recovery of the table's live checksum (CREATE TABLE ... CHECKSUM=1)
      is achieved in this patch. The table's live checksum
      (info->s->state.state.checksum) is updated in inwrite_rec_hook's
      under the log mutex when writing UNDO_ROW_INSERT|UPDATE|DELETE
      and REDO_DELETE_ALL. The checksum variation caused by the operation
      is stored in these UNDOs, so that the REDO phase, when it sees such
      UNDOs, can update the live checksum if it is older (state.is_of_lsn is
      lower) than the record. It is also used, as a nice add-on with no
      cost, to do less row checksum computation during the UNDO phase
      (as we have it in the record already).
      Doing this work, it became pressing to move in-write hooks
      (write_hook_for_redo() et al) to ma_blockrec.c.
      The 'parts' argument of inwrite_rec_hook is unpredictable (it comes
      mangled at this stage, for example by LSN compression) so it is
      replaced by a 'void* hook_arg', which is used to pass down information,
      currently only to write_hook_for_clr_end() (previous undo_lsn and
      type of undone record).
      * If from ha_maria, we print to stderr how many seconds (with one
      fractional digit) the REDO phase took, same for UNDO phase and for
      final table close. Just to give an indication for debugging and maybe
      also for Support.
      
      
      storage/maria/ha_maria.cc:
        question for Monty
      storage/maria/ma_blockrec.c:
        * log in-write hooks (write_hook_for_redo() etc) move from
        ma_loghandler.c to here; this is natural: the hooks are coupled
        to their callers (functions in ma_blockrec.c).
        * translog_write_record() now has a new argument "hook_arg";
        using it to pass down to write_hook_for_clr_end() the transaction's
        previous_undo_lsn and the type of the being undone record, and also
        to pass down to all UNDOs the live checksum variation caused by the
        operation.
        * If table has live checksum, store in UNDO_ROW_INSERT|UPDATE|DELETE
        and in CLR_END the checksum variation ("delta") caused by the
        operation. For example if a DELETE caused the table's live checksum
        to change from 123 to 456, we store in the UNDO_ROW_DELETE, in 4 bytes,
        the value 333 (456-123).
        * Instead of hard-coded "1" as length of the place where we store
        the undone record's type in CLR_END, use a symbol CLR_TYPE_STORE_SIZE;
        use macros clr_type_store and clr_type_korr.
        * write_block_record() has a new parameter 'old_record_checksum'
        which is the pre-computed checksum of old_record; that value is used
        to update the table's live checksum when writing UNDO_ROW_UPDATE|CLR_END.
        * In allocate_write_block_record(), if we are executing UNDO_ROW_DELETE
        the row's checksum is already computed.
        * _ma_update_block_record2() now expect the new row's checksum into
        cur_row.checksum (was already true) and the old row's checksum into
        new_row.checksum (that's new). Its two callers, maria_update() and
        _ma_apply_undo_row_update(), honour this.
        * When executing an UNDO_ROW_INSERT|UPDATE|DELETE in UNDO phase, pick
        up the checksum delta from the log record. It is then used to update
        the table's live checksum when writing CLR_END, and saves us a
        computation of record.
      storage/maria/ma_blockrec.h:
        in-write hooks move from ma_loghandler.c
      storage/maria/ma_check.c:
        more straightforward size of buffer
      storage/maria/ma_checkpoint.c:
        <= is enough
      storage/maria/ma_commit.c:
        new prototype of translog_write_record()
      storage/maria/ma_create.c:
        new prototype of translog_write_record()
      storage/maria/ma_delete.c:
        The row's checksum must be computed before calling(*delete_record)(),
        not after, because it must be known inside _ma_delete_block_record()
        (to update the table's live checksum when writing UNDO_ROW_DELETE).
        If deleting from a transactional table, live checksum was already updated
        when writing UNDO_ROW_DELETE.
      storage/maria/ma_delete_all.c:
        @todo is now done (in ma_loghandler.c)
      storage/maria/ma_delete_table.c:
        new prototype of translog_write_record()
      storage/maria/ma_loghandler.c:
        * in-write hooks move to ma_blockrec.c.
        * translog_write_record() gets a new argument 'hook_arg' which is
        passed down to pre|inwrite_rec_hook. It is more useful that 'parts'
        for those hooks, because when those hooks are called, 'parts' has
        possibly been mangled (like with LSN compression) and is so
        unpredictable.
        * fix for compiler warning (unused buffer_start when compiling without
        debug support)
        * Because checksum delta is stored into UNDO_ROW_INSERT|UPDATE|DELETE
        and CLR_END, but only if the table has live checksum, these records
        are not PSEUDOFIXEDLENGTH anymore, they are now VARIABLE_LENGTH (their
        length is X if no live checksum and X+4 otherwise).
        * add an inwrite_rec_hook for UNDO_ROW_UPDATE, which updates the
        table's live checksum. Update it also in hooks of UNDO_ROW_INSERT|
        DELETE and REDO_DELETE_ALL and CLR_END.
        * Bugfix: when reading a record in translog_read_record(), it happened
        that "length" became negative, because the function assumed that
        the record extended beyond the page's end, whereas it may be shorter.
      storage/maria/ma_loghandler.h:
        * Instead of hard-coded "1" and "4", use symbols and macros
        to store/retrieve the type of record which the CLR_END corresponds
        to, and the checksum variation caused by the operation which logs the
        record
        * translog_write_record() gets a new argument 'hook_arg' which is
        passed down to pre|inwrite_rec_hook. It is more useful that 'parts'
        for those hooks, because when those hooks are called, 'parts' has
        possibly been mangled (like with LSN compression) and is so
        unpredictable.
      storage/maria/ma_open.c:
        fix for "empty body in if() statement" (when compiling without safemutex)
      storage/maria/ma_pagecache.c:
        <= is enough
      storage/maria/ma_recovery.c:
        * print the time that each recovery phase (REDO/UNDO/flush) took;
        this is enabled only when recovering from ha_maria. Is it printed
        n seconds with a fractional part of one digit (like 123.4 seconds).
        * In the REDO phase, update the table's live checksum by using
        the checksum delta stored in UNDO_ROW_INSERT|DELETE|UPDATE and CLR_END.
        Update it too when seeing REDO_DELETE_ALL.
        * In the UNDO phase, when executing UNDO_ROW_INSERT, if the table does
        not have live checksum then reading the record's header (as done by
        the master loop of run_undo_phase()) is enough; otherwise we
        do a translog_read_record() to have the checksum delta ready
        for _ma_apply_undo_row_insert().
        * When at the end of the REDO phase we notice that there is an unfinished
        group of REDOs, don't assert in debug binaries, as I verified that it
        can happen in real life (with kill -9)
        * removing ' in #error as it confuses gcc3
      storage/maria/ma_rename.c:
        new prototype of translog_write_record()
      storage/maria/ma_test_recovery.expected:
        Change in output of ma_test_recovery: now all live checksums of
        original tables equal those of tables recreated by the REDO phase
        and those of tables fixed by the UNDO phase. I.e. recovery of
        the live checksum looks like working (which was after all the only
        goal of this changeset).
        I checked by hand that it's not just all live checksums which are
        now 0 and that's why they match. They are the old values like
        3757530372. maria.test has hard-coded checksum values in its result
        file so checks this too.
      storage/maria/ma_update.c:
        * It's useless to put up HA_STATE_CHANGED in 'key_changed',
        as we put up HA_STATE_CHANGED in info->update anyway.
        * We need to compute the old and new rows' checksum before calling
        (*update_record)(), as checksum delta must be known when logging
        UNDO_ROW_UPDATE which is done by _ma_update_block_record(). Note that
        some functions change the 'newrec' record (at least _ma_check_unique()
        does) so we cannot move the checksum computation too early in the
        function.
      storage/maria/ma_write.c:
        If inserting into a transactional table, live's checksum was
        already updated when writing UNDO_ROW_INSERT. The multiplication
        is a trick to save an if().
      storage/maria/unittest/ma_test_loghandler-t.c:
        new prototype of translog_write_record()
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        new prototype of translog_write_record()
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        new prototype of translog_write_record()
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        new prototype of translog_write_record()
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        new prototype of translog_write_record()
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        new prototype of translog_write_record()
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        new prototype of translog_write_record()
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        new prototype of translog_write_record()
      storage/myisam/sort.c:
        fix for compiler warnings in pushbuild (write_merge_key* functions
        didn't have their declaration match MARIA_HA::write_key).
      198a1b6f
  23. 27 Sep, 2007 1 commit
    • unknown's avatar
      Remove SAFE_MODE for opt_range as it disables UPDATE to use keys · e914e469
      unknown authored
      REDO optimization (Bascily avoid moving blocks from/to pagecache)
      More command line arguments to maria_read_log
      Fixed recovery bug when recreating table
      
      
      sql/opt_range.cc:
        Remove SAFE_MODE for opt_range as it disables UPDATE to use keys
      storage/maria/ma_blockrec.c:
        REDO optimization
        Use new interface for pagecache_reads to avoid copying page buffers
      storage/maria/ma_loghandler.c:
        Patch from Sanja:
        - Added new parameter to translog_get_page to use direct links to pagecache
        - Changed scanner to be able to use direct links
        
        This avoids a lot of calls to bmove512() in page cache.
      storage/maria/ma_loghandler.h:
        Added direct link to pagecache objects
      storage/maria/ma_open.c:
        Added const to parameter
        Added missing braces
      storage/maria/ma_pagecache.c:
        From Sanja:
        - Added direct links to pagecache (from pagecache_read())
          Dirrect link means that on pagecache_read we get back a pointer to the pagecache buffer
        
        
        From Monty:
        - Fixed arguments to init_page_cache to handle big page caches
        - Fixed compiler warnings
        - Replaced PAGECACHE_PAGE_LINK with PAGECACHE_BLOCK_LINK * to catch errors
      storage/maria/ma_pagecache.h:
        Changed block numbers from int to long to be able to handle big page caches
        Changed some PAGECACHE_PAGE_LINK to PAGECACHE_BLOCK_LINK
      storage/maria/ma_recovery.c:
        Fixed recovery bug when recreating table (table was kept open)
        Moved some variables to function start (portability)
        Added space to some print messages
      storage/maria/maria_chk.c:
        key_buffer_size -> page_buffer_size
      storage/maria/maria_def.h:
        Changed default page_buffer_size to 10M
      storage/maria/maria_read_log.c:
        Added more startup options:
        --version
        --undo (apply undo)
        --page_cache_size (to run with big cache sizes)
        --silent (to not get any output from --apply)
      storage/maria/unittest/ma_control_file-t.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler-t.c:
        Added new argument to translog_init_scanner()
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Added new argument to translog_init_scanner()
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Added new argument to translog_init_scanner()
      e914e469
  24. 13 Sep, 2007 1 commit
    • unknown's avatar
      Fixes of the empty log problem. · 75685941
      unknown authored
      storage/maria/ma_checkpoint.c:
        The new macro for easier printing LSN added.
      storage/maria/ma_loghandler.c:
        The assertion returned.
        The new macro for easier printing LSN added.
      storage/maria/ma_loghandler_lsn.h:
        The new macro for easier printing LSN added.
      storage/maria/ma_pagecache.c:
        The new macro for easier printing LSN added.
      storage/maria/ma_recovery.c:
        Recovery checks empty log state.
        RECHEADER_READ_ERROR means some real error.
      storage/maria/maria_read_log.c:
        Read log starts from real beggining of the log and precess
        error and empty log states.
        The new macro for easier printing LSN added.
      storage/maria/unittest/ma_test_loghandler-t.c:
        The new macro for easier printing LSN added.
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        The new macro for easier printing LSN added.
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        The new macro for easier printing LSN added.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        The new macro for easier printing LSN added.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        The new macro for easier printing LSN added.
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        The new macro for easier printing LSN added.
      75685941
  25. 04 Sep, 2007 1 commit
    • unknown's avatar
      Check of transaction log descriptor table consistance added. · cedf65fb
      unknown authored
      Small fixes made.
      
      
      storage/maria/ma_loghandler.c:
        Check of transaction log descriptor table consistance added.\
        Incorrect record description fixed.
        Compiler warning fixed.
      storage/maria/ma_loghandler.h:
        fixed ident.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Suppressing of automatic record writing
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Suppressing of automatic record writing
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Suppressing of automatic record writing
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Suppressing of automatic record writing
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Suppressing of automatic record writing
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Suppressing of automatic record writing
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Suppressing of automatic record writing
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Suppressing of automatic record writing
      cedf65fb
  26. 13 Aug, 2007 1 commit
    • unknown's avatar
      Ability to read unflushed data added (only problem with CRC left and have to be fixed). · c3ec82e1
      unknown authored
      Already written pages injection to the cache fixed.
      
      
      storage/maria/ma_loghandler.c:
        Ability to read unflushed data added.
      storage/maria/ma_page.c:
        Parameters added
      storage/maria/ma_pagecache.c:
        Already written pages injection to the cache fixed.
        Validator for case of page content injection added.
      storage/maria/ma_pagecache.h:
        Validator for case of page content injection added.
      storage/maria/unittest/Makefile.am:
        Test of reading unflushed data
      storage/maria/unittest/ma_test_loghandler-t.c:
        Define fixed.
        Restart of the log removed.
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_noflush-t.c''
      c3ec82e1
  27. 03 Aug, 2007 1 commit
    • unknown's avatar
      Log handler's unit test were broken by me on June 22, fixing this: · b9816651
      unknown authored
      don't auto-log LOGREC_LONG_TRANSACTION_ID in log handler's unit tests,
      as they read their log and expect to find only the records they asked
      for, and so not LOGREC_LONG_TRANSACTION_ID. All log handler's unit
      tests pass. A way to run them faster: when their LONG_BUFFER_SIZE is
      too big (1GB) I divide it by ten and then I can run them on /dev/shm
      - they are then "instant".
      By the way, pushbuild was not displaying anymore "unit: failed" in
      the list of all pushes, which participates to the reasons why I didn't
      notice the breakage earlier. The other reason being that I was too lazy
      to run log handler unit tests on my machine as they took long (hadn't
      yet thought about the /dev/shm idea) and so I relied on pushbuild;
      Danny has now quickly fixed pushbuild - thanks :)
      
      
      storage/maria/unittest/ma_test_loghandler-t.c:
        don't auto-log LOGREC_LONG_TRANSACTION_ID in log handler's unit tests,
        as they read their log and expect to find only the records they asked
        for
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        don't auto-log LOGREC_LONG_TRANSACTION_ID in log handler's unit tests,
        as they read their log and expect to find only the records they asked
        for
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        don't auto-log LOGREC_LONG_TRANSACTION_ID in log handler's unit tests,
        as they read their log and expect to find only the records they asked
        for
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        don't auto-log LOGREC_LONG_TRANSACTION_ID in log handler's unit tests,
        as they read their log and expect to find only the records they asked
        for
      b9816651
  28. 30 Jul, 2007 1 commit
    • unknown's avatar
      Applying Sanja's patch which makes the log handler not issue · 2f96fe74
      unknown authored
      errors when reading a log record which has a 0-length header
      (like LOGREC_REDO_DROP_TABLE).
      
      
      storage/maria/ma_loghandler.c:
        Functions reading record's header now don't use 0 to indicate error,
        as some valid records have a 0-length header (like REDO_DROP_TABLE).
        Instead, negative values are used for EOF and error.
      storage/maria/ma_loghandler.h:
        functions to read record's header now return an int
        (either the length of this header (>=0) or some negative values
        for EOF or error).
      storage/maria/ma_recovery.c:
        update to the new log handler's behaviour. Note the @todo.
      storage/maria/maria_read_log.c:
        inform when program failed
      storage/maria/unittest/ma_test_loghandler-t.c:
        update to new log handler's API
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        update to new log handler's API
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        update to new log handler's API
      2f96fe74
  29. 02 Jul, 2007 1 commit
    • unknown's avatar
      Merged with mysql-5.1 main tree. · 3f4faedb
      unknown authored
      BUILD/compile-pentium-debug-max:
        Added definition after macro was removed from main tree. This will
        be fixed back in main tree later.
      3f4faedb
  30. 26 Jun, 2007 1 commit
    • unknown's avatar
      WL#3072 Maria Recovery · 35536366
      unknown authored
      - new program maria_read_log to display and apply log records
      found in a Maria log (see file's revision comment)
      - minor, misc fixes
      
      
      storage/maria/Makefile.am:
        new program maria_read_log
      storage/maria/ha_maria.cc:
        create control file if missing
      storage/maria/ma_blockrec.c:
        0 -> LSN_IMPOSSIBLE; comments
      storage/maria/ma_checkpoint.h:
        preparations for Checkpoint module
      storage/maria/ma_close.c:
        comment
      storage/maria/ma_control_file.c:
        renaming constants.
        Possibility to say "open control file but don't create it if it's
        missing" (used by maria_read_log which does not want to create
        anything)
      storage/maria/ma_control_file.h:
        renaming constants
      storage/maria/ma_create.c:
        I had duplicated "linkname" and "linkname_ptr", now I see it's not
        needed, reverting. Indeed those variables don't contain interesting
        information; fixing log record accordingly (the links are in
        ci->data/index_file_name). Storing keystart in log record is needed,
        to know at which size we must extend the file if we replay
        LOGREC_CREATE_TABLE.
      storage/maria/ma_loghandler.c:
        some structures need to be known to maria_read_log.c, taking
        them to ma_loghandler.h
      storage/maria/ma_loghandler.h:
        we have page_store, adding page_korr.
        translog_lock() made public, because Checkpoint will need it (to
        write to control file).
        Some structures moved from ma_loghandler.c because maria_read_log.c
        needs them (needs to know the execute-in-REDO-phase hooks of each
        record).
      storage/maria/ma_loghandler_lsn.h:
        constants defined in ma_control_file.h serve everywhere,
        and they relate to LSNs, so putting them in ma_loghandler_lsn.h.
        Stronger constraints in LSN_VALID().
      storage/maria/ma_pagecache.c:
        renaming constants
      storage/maria/ma_recovery.h:
        copyright
      storage/maria/ma_test1.c:
        new prototype
      storage/maria/ma_test2.c:
        new prototype
      storage/maria/trnman_public.h:
        double-inclusion safe
      storage/maria/unittest/ma_control_file-t.c:
        constants renamed, new prototype
      storage/maria/unittest/ma_test_loghandler-t.c:
        constants renamed, new prototype
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        constants renamed, new prototype
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        constants renamed, new prototype
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        constants renamed, new prototype
      storage/myisam/mi_close.c:
        comment
      storage/maria/maria_read_log.c:
        program to read and print log records from a Maria transaction log,
        and optionally apply them to tables. Very basic, early version.
        Should serve as a base for Recovery's code. Designed to be idempotent.
        Create a log by running maria.test, then cd to var/master-data
        and run "maria_read_log --only-display" to see info about records;
        run "maria_read_log --display-and-apply" to also apply the records
        to tables (it's more interesting if you first wipe out the
        tables in var/master-data/test, to see how they get re-created).
        Only a few records are handled by now: LONG_TRANSACTION_ID,
        COMMIT, FILE_ID, REDO_CREATE_TABLE; place is ready for
        REDO_INSERT_ROW_HEAD where I could use Monty's help (search for
        "Monty" in the file). Note: changes to the index pages, index's header
        and bitmap pages are not properly logged yet, so don't expect
        the program to work with that.
      35536366
  31. 22 Jun, 2007 1 commit
    • unknown's avatar
      - WL#3239 "log CREATE TABLE in Maria" · de28fd57
      unknown authored
      - WL#3240 "log DROP TABLE in Maria"
      - similarly, log RENAME TABLE, REPAIR/OPTIMIZE TABLE, and
      DELETE no_WHERE_clause (== the DELETE which just truncates the files)
      - create_rename_lsn added to MARIA_SHARE's state
      - all these operations (except DROP TABLE) also update the table's
      create_rename_lsn, which is needed for the correctness of
      Recovery (see function comment of _ma_repair_write_log_record()
      in ma_check.c)
      - write a COMMIT record when transaction commits.
      - don't log REDOs/UNDOs if this is an internal temporary table
      like inside ALTER TABLE (I expect this to be a big win). There was
      already no logging for user-created "CREATE TEMPORARY" tables.
      - don't fsync files/directories if the table is not transactional
      - in translog_write_record(), autogenerate a 2-byte-id for the table
      and log the "id->name" pair (LOGREC_FILE_ID); log
      LOGREC_LONG_TRANSACTION_ID; automatically store
      the table's 2-byte-id in any log record.
      - preparations for Checkpoint: translog_get_horizon(); pausing Checkpoint
      when some dirty pages are unknown; capturing trn->rec_lsn,
      trn->first_undo_lsn for Checkpoint and log's low-water-mark computing.
      - assertions, comments.
      
      
      storage/maria/Makefile.am:
        more files to build
      storage/maria/ha_maria.cc:
        - logging a REPAIR log record if REPAIR/OPTIMIZE was successful.
        - ha_maria::data_file_type does not have to be set in every info()
        call, just do it once in open().
        - if caller said that transactionality can be disabled (like if
        caller is ALTER TABLE) i.e. thd->transaction.on==FALSE, then we
        temporarily disable transactionality of the table in external_lock();
        that will ensure that no REDOs/UNDOs are logged for this possibly
        massive write operation (they are not needed, as if any write fails,
        the table will be dropped). We re-enable in external_lock(F_UNLCK),
        which in ALTER TABLE happens before the tmp table replaces the original
        one (which is good, as thus the final table will have a REDO RENAME
        and a correct create_rename_lsn).
        - when we commit we also have to write a log record, so
        trnman_commit_trn() calls become ma_commit() calls
        - at end of engine's initialization, we are potentially entering a
        multi-threaded dangerous world (clients are going to be accepted)
        and so some assertions of mutex-owning become enforceable, for that
        we set maria_multi_threaded=TRUE (see ma_control_file.c)
      storage/maria/ha_maria.h:
        new member ha_maria::save_transactional (see also ha_maria.cc)
      storage/maria/ma_blockrec.c:
        - fixing comments according to discussion with Monty
        - if a table is transactional but temporarily non-transactional
        (like in ALTER TABLE), we need to give a sensible LSN to the pages
        (and, if we give 0, pagecache asserts).
        - translog_write_record() now takes care of storing the share's
        2-byte-id in the log record
      storage/maria/ma_blockrec.h:
        fixing comment according to discussion with Monty
      storage/maria/ma_check.c:
        When REPAIR/OPTIMIZE modify the data/index file, if this is a
        transactional table, they must sync it; if they remove files or rename
        files, they must sync the directory, so that everything is durable.
        This is just applying to REPAIR/OPTIMIZE the logic already implemented
        in CREATE/DROP/RENAME a few months ago.
        Adding a function to write a LOGREC_REPAIR_TABLE at end of
        REPAIR/OPTIMIZE (called only by ha_maria, not by maria_chk), and
        to update the table's create_rename_lsn.
      storage/maria/ma_close.c:
        fix for a future bug
      storage/maria/ma_control_file.c:
        ensuring that if Maria is running in multi-threaded mode, anybody
        wanting to write to the control file and update
        last_checkpoint_lsn/last_logno owns the log's lock.
      storage/maria/ma_control_file.h:
        see ma_control_file.c
      storage/maria/ma_create.c:
        when creating a table:
        - sync it and its directory only if this is a transactional table
        and there is a log (no point in syncing in maria_chk)
        - decouple the two uses of linkname/linkname_ptr (for index file and
        for data file) into more variables, as we need to know all links
        until the moment we write the LOGREC_CREATE_TABLE.
        - set share.data_file_type early so that _ma_initialize_data_file()
        knows it (Monty's bugfix so that a table always has at least a bitmap
        page when it is created; so data-file is not 0 bytes anymore).
        - log a LOGREC_CREATE_TABLE; it contains the bytes which we have
        just written to the index file's header. Update table's
        create_rename_lsn.
        - syncing of kfile had been bugified in a previous merge, correcting
        - syncing of dfile is now needed as it's not empty anymore
        - in _ma_initialize_data_file(), use share's block_size and not the
        global one. This is a gratuitous change, both variables are equal,
        just that I find it more future-proof to use share-bound variable
        rather than global one.
      storage/maria/ma_delete_all.c:
        log a LOGREC_DELETE_ALL record when doing ma_delete_all_rows();
        update create_rename_lsn then.
      storage/maria/ma_delete_table.c:
        - logging LOGREC_DROP_TABLE; knowing if this is needed, requires
        knowing if the table is transactional, which requires opening the
        table.
        - we need to sync directories only if the table is transactional
      storage/maria/ma_extra.c:
        questions
      storage/maria/ma_init.c:
        when maria_end() is called, engine is not multithreaded
      storage/maria/ma_loghandler.c:
        - translog_inited has to be visible to ma_create() (see how it is used
        in ma_create())
        - checkpoint record will be a single record, not three
        - no REDO for TRUNCATE (TRUNCATE calls ma_create() internally so will
        log a REDO_CREATE)
        - adding REDO for DELETE no_WHERE_clause (fast DELETE of all rows by
        truncating the files), REPAIR.
        - MY_WAIT_IF_FULL to wait&retry if a log write hits a full disk
        - in translog_write_record(), if MARIA_SHARE does not yet have a
        2-byte-id, generate one for it and log LOGREC_FILE_ID; automatically
        store this short id into log records.
        - in translog_write_record(), if transaction has not logged its
        long trid, log LOGREC_LONG_TRANSACTION_ID.
        - For Checkpoint, we need to know the current end-of-log: adding
        translog_get_horizon().
        - For Control File, adding an assertion that the thread owns the
        log's lock (control file is protected by this lock)
      storage/maria/ma_loghandler.h:
        Changes in log records (see ma_loghandler.c).
        new prototypes, new functions.
      storage/maria/ma_loghandler_lsn.h:
        adding a type LSN_WITH_FLAGS especially for TRN::first_undo_lsn,
        where the most significant byte is used for flags.
      storage/maria/ma_open.c:
        storing the create_rename_lsn in the index file's header (in the
        state, precisely) and retrieving it from there.
      storage/maria/ma_pagecache.c:
        - my set_if_bigger was wrong, correcting it
        - if the first_in_switch list is not empty, it means that
        changed_blocks misses some dirty pages, so Checkpoint cannot run and
        needs to wait. A variable missing_blocks_in_changed_list is added to
        tell that (should it be named missing_blocks_in_changed_blocks?)
        - pagecache_collect_changed_blocks_with_lsn() now also tells the
        minimum rec_lsn (needed for low-water mark computation).
      storage/maria/ma_pagecache.h:
        see ma_pagecache.c
      storage/maria/ma_panic.c:
        comment
      storage/maria/ma_range.c:
        comment
      storage/maria/ma_rename.c:
        - logging LOGREC_RENAME_TABLE; knowing if this is needed, requires
        knowing if the table is transactional, which requires opening the
        table.
        - update create_rename_lsn
        - we need to sync directories only if the table is transactional
      storage/maria/ma_static.c:
        comment
      storage/maria/ma_test_all.sh:
        - tip for Valgrind-ing ma_test_all
        - do "export maria_path=somepath" before calling ma_test_all,
        if you want to run ma_test_all out of storage/maria (useful
        to have parallel runs, like one normal and one Valgrind, they
        must not use the same tables so need to run in different directories)
      storage/maria/maria_def.h:
        - state now contains, in memory and on disk, the create_rename_lsn
        - share now contains a 2-byte-id
      storage/maria/trnman.c:
        preparations for Checkpoint: capture trn->rec_lsn, trn->first_undo_lsn;
        minimum first_undo_lsn needed to know log's low-water-mark
      storage/maria/trnman.h:
        using most significant byte of first_undo_lsn to hold miscellaneous
        flags, for now TRANSACTION_LOGGED_LONG_ID.
        dummy_transaction_object is already declared in ma_static.c.
      storage/maria/trnman_public.h:
        dummy_transaction_object was declared in all files including
        trnman_public.h, while in fact it's a single object.
        new prototype
      storage/maria/unittest/ma_test_loghandler-t.c:
        update for new prototype
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        update for new prototype
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        update for new prototype
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        update for new prototype
      storage/maria/ma_commit.c:
        function which wraps:
        - writing a LOGREC_COMMIT record (==commit on disk)
        - calling trnman_commit_trn() (=commit in memory)
      storage/maria/ma_commit.h:
        new header file
      .tree-is-private:
        this file is now needed to keep our tree private (don't push it
        to public trees). When 5.1 is merged into mysql-maria, we can abandon
        our maria-specific post-commit trigger; .tree_is_private will take
        care of keeping commit mails private. Don't push this file to public
        trees.
      de28fd57
  32. 15 Jun, 2007 1 commit
    • unknown's avatar
      Postmerge changes · ba72e2d6
      unknown authored
      storage/maria/unittest/ma_test_loghandler-t.c:
        Spaces at the end of the line removed.
        Parameters of translog_write_record() fixed.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Parameters of translog_write_record() fixed.
      ba72e2d6
  33. 14 Jun, 2007 1 commit
    • unknown's avatar
      Fixed LSN codding to allow code all · cfe18321
      unknown authored
        relative LSN independed on "distance".
      Added support for test record descriptors to avoid
        interfere woth real record descriptors.
      Fixed descriptor of pseudofixed length record length,
        now it is length of record passed from/to client of
        the loghandler.
      
      
      BitKeeper/etc/ignore:
        Added storage/maria/unittest/ma_test_loghandler_long-t-big to the ignore list
      storage/maria/ma_init.c:
        Removed loghandler_init call because it is present in translog_init()
      storage/maria/ma_loghandler.c:
        Fixed LSN codding to allow code all
          relative LSN independed on "distance".
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
        Fixed length of LOGREC_REDO_INSERT_ROW_TAIL.
        Fixed descriptor of pseudofixed length record length,
          now it is length of record passed from/to client of
          the loghandler.
      storage/maria/ma_loghandler.h:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      storage/maria/unittest/Makefile.am:
        Made new test for log with reference over 63 files.
        Layout fixed.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      cfe18321
  34. 11 Jun, 2007 1 commit
    • unknown's avatar
      - moving pagecache.h from include/ to storage/maria as it is Maria- · f159c6cf
      unknown authored
      specific
      - adding TRN::first_undo_lsn, needed to know when a log can be deleted;
      this variable must be set under log's mutex and that leads to setting
      TRN::rec_lsn, TRN::undo_lsn and TRN::first_undo_lsn in a
      inwrite_rec_hook; adding implementation of one hook for REDOs and one
      for UNDOs. Thus translog_write_record() always uses TRN and so does
      not need a short_id argument, can find it from TRN.
      - Monty's patch for the last Valgrind error in the tree.
      - Log handler's unit tests fail but Sanja says it's known
      
      
      include/Makefile.am:
        pagecache.h moved and renamed
      include/maria.h:
        pagecache.h moved and renamed
      sql/handler.h:
        pagecache.h moved and renamed
      storage/maria/Makefile.am:
        pagecache.h moved and renamed
      storage/maria/ha_maria.cc:
        adding an assertion which sounds logical
      storage/maria/ma_blockrec.c:
        trn->rec_lsn and trn->undo_lsn are now set via hooks inside the log
        record's writing; this allows to also set trn->first_undo_lsn
        needed to compute the log's low-water mark.
        The PAGERANGE_STORE_SIZE -> PAGE_STORE_SIZE is Monty's fix to a
        Valgrind error.
      storage/maria/ma_loghandler.c:
        "tcb" renamed to "trn". Log handler now knows what is a transaction,
        and finds short_id from trn. trn's rec_lsn, undo_lsn, first_undo_lsn
        are now set by some inwrite_rec_hookS (one for REDOs, one for UNDOs).
        The HAVE_purify blocks are Monty's fix to a Valgrind error.
      storage/maria/ma_loghandler.h:
        Log handler functions use TRN, that needs a forward declaration
      storage/maria/ma_pagecache.c:
        pagecache.h was moved and renamed
      storage/maria/ma_pagecache.h:
        pagecache.h was moved and renamed
      storage/maria/ma_pagecaches.c:
        pagecache.h was moved and renamed
      storage/maria/trnman.c:
        initializing some members of TRN.
      storage/maria/trnman.h:
        TRN::first_undo_lsn needed for log's low-water mark calculation
        (which will serve to know which logs can be deleted)
      storage/maria/unittest/ma_test_loghandler-t.c:
        translog_write_record() now needs a valid TRN
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        translog_write_record() now needs a valid TRN
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        translog_write_record() now needs a valid TRN
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        translog_write_record() now needs a valid TRN
      storage/maria/unittest/test_file.h:
        pagecache.h was moved and renamed
      f159c6cf
  35. 09 Jun, 2007 1 commit
    • unknown's avatar
      Fixed compiler warnings · e68b3e5f
      unknown authored
      Fixed bug in ma_dbug.c that gave valgrind warning (only relevant when using --debug)
      Fixed bug in blob logging (Fixes valgrind warning)
      maria_getint() -> maria_data_on_page()
      
      
      mysys/safemalloc.c:
        Added debug function to print out where a piece of memory was allocated
      sql/opt_range.cc:
        Remove DBUG_PRINT of unitailized memory
      storage/maria/ma_blockrec.c:
        Fixed bug in blob logging
      storage/maria/ma_check.c:
        Fixed compiler warning
      storage/maria/ma_dbug.c:
        Added missed end++; Caused usage of unitialized memory for nullable keys that was not NULL
      storage/maria/ma_delete.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_init.c:
        Added header file to get rid of warning
      storage/maria/ma_key.c:
        More debugging
      storage/maria/ma_loghandler.c:
        Removed some wrong ';' to get rid of compiler errors when compiling without debugging
        Indentation fixes
        Removed not needed 'break's
        Fixed some compiler warnings
        Added code to detect logging of unitialized memory
      storage/maria/ma_page.c:
        maria_getint() -> maria_data_on_page()
        Clear rest of index page before writing when used with valgrind
        (Fixes warning of writing pages with unitialized data)
      storage/maria/ma_range.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_rt_index.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_rt_index.h:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_rt_key.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_rt_split.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_search.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_test1.c:
        Fixed compiler warning
      storage/maria/ma_write.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/maria_chk.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/maria_def.h:
        maria_getint() -> maria_data_on_page()
      storage/maria/unittest/ma_pagecache_consist.c:
        Fixed compiler warning
      storage/maria/unittest/ma_pagecache_single.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler-t.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Fixed compiler warning
      storage/myisam/mi_dbug.c:
        Added missed end++; Caused usage of unitialized memory for nullable keys that was not NULL
      e68b3e5f
  36. 29 May, 2007 1 commit
    • unknown's avatar
      This patch is a collection of patches from from Sanja, Sergei and Monty. · de6183fd
      unknown authored
      Added logging and pinning of pages to block format.
      Integration of transaction manager, log handler.
      Better page cache intergration
      Split trnman.h into two files, so that we don't have to include my_atomic.h into C++ programs.
      Renaming of structures, more comments, more debugging etc.
      Fixed problem with small head block + long varchar.
      Added extra argument to delete_record() and update_record() (needed for UNDO logging)
      Small changes to interface of pagecache and log handler.
      Change initialization of log_record_type_descriptors to not be depending on enum order.
      Use array of LEX_STRING's to send data to log handler
      Added 'dummy' transaction option to MARIA_INFO so that we can always assume 'trn' exists.
      
      
      include/lf.h:
        Interface fixes
        Rename of structures
        (Patch from Sergei via Sanja)
      include/my_atomic.h:
        More comments
      include/my_global.h:
        Added MY_ERRPTR
      include/pagecache.h:
        Added undo LSN when unlocking pages
      mysql-test/r/maria.result:
        Updated results
      mysql-test/t/maria.test:
        Added autocommit around lock tables
        (Patch from Sanja)
      mysys/lf_alloc-pin.c:
        Post-review fixes, simple optimizations
        More comments
        Struct slot renames
        Check amount of memory on stack
        (Patch from Sergei)
      mysys/lf_dynarray.c:
        More comments
      mysys/lf_hash.c:
        More comments
        After review fixes
        (Patch from Sergei)
      storage/maria/ha_maria.cc:
        Split trnman.h into two files, so that we don't have to include my_atomic.h into the .cc program.
        (Temporary fix to avoid bug in gcc)
        Move out all deferencing of the transaction structure.
        Transaction manager integrated (Patch from Sergei)
      storage/maria/ha_maria.h:
        Added prototype for start_stmt()
      storage/maria/lockman.c:
        Function call rename
      storage/maria/ma_bitmap.c:
        Mark deleted pages free from page cache
      storage/maria/ma_blockrec.c:
        Offset -> rownr
        More debugging
        Fixed problem with small head block + long varchar
        Added logging of changed pages
        Added logging of undo (Including only loggging of changed fields in case of update)
        Added pinning/unpinning of all changed pages
        More comments
        Added free_full_pages() as the same code was used in several places.
        fill_rows_parts() renamed as fill_insert_undo_parts()
        offset -> rownr
        Added some optimization of not transactional tables
        _ma_update_block_record() has new parameter, as we need original row to do efficent undo for update
      storage/maria/ma_blockrec.h:
        Added ROW_EXTENTS_ON_STACK
        Changed prototype for update and delete of row
      storage/maria/ma_check.c:
        Added original row to delete_record() call
      storage/maria/ma_control_file.h:
        Added ifdefs for C++
      storage/maria/ma_delete.c:
        Added original row to delete_record() call
        (Needed for efficent undo logging)
      storage/maria/ma_dynrec.c:
        Added extra argument to delete_record() and update_record()
        Removed not used variable
      storage/maria/ma_init.c:
        Initialize log handler
      storage/maria/ma_loghandler.c:
        Removed not used variable
        Change initialization of log_record_type_descriptors to not be depending on enum order
        Use array of LEX_STRING's to send data to log handler
      storage/maria/ma_loghandler.h:
        New defines
        Use array of LEX_STRING's to send data to log handler
      storage/maria/ma_open.c:
        Added 'dummy' transaction option to MARIA_INFO so that we can always assume 'trn' exists.
        Store in MARIA_SHARE->page_type if pages will have up to date LSN's
      storage/maria/ma_pagecache.c:
        Don't decrease number of readers when using pagecache_write()/pagecache_read()
        In pagecache_write() decrement request count if page was left pinned
        Added pagecache_delete_pages()
        Removed some casts
        Make trace output consistent with rest of code
        Simplify calling of DBUG_ASSERT(0)
        Only update LSN if the LSN is bigger than what's already on the page
        Added LSN parameter pagecache_unpin_page(), pagecache_unpin(), and pagecache_unlock()
        (Part of patch from Sanja)
      storage/maria/ma_static.c:
        Added 'dummy' transaction option to MARIA_INFO so that we can always assume 'trn' exists.
        Added default page cache
      storage/maria/ma_statrec.c:
        Added extra argument to delete_record() and update_record()
      storage/maria/ma_test1.c:
        Added option -T for transactions
      storage/maria/ma_test2.c:
        Added option -T for transactions
      storage/maria/ma_test_all.sh:
        Test with transactions
      storage/maria/ma_update.c:
        Changed prototype for update of row
      storage/maria/maria_def.h:
        Changed prototype for update & delete of row as block records need to access the old row
        Store in MARIA_SHARE->page_type if pages will have up to date LSN's
        Added MARIA_MAX_TREE_LEVELS to allow us to calculate the number of possible pinned pages we may need.
        Removed not used 'empty_bits_buffer'
        Added pointer to transaction object
        Added array for pinned pages
        Added log_row_parts array for logging of field data.
        Added MARIA_PINNED_PAGE to store pinned pages
      storage/maria/trnman.c:
        Added accessor functions to transaction object
        Added missing DBUG_RETURN()
        More debugging
        More comments
        Changed // comment of code to #ifdef NOT_USED
        Transaction manager integrated.
        Post review fixes
        Part of patch originally from Sergei
      storage/maria/trnman.h:
        Split trnman.h into two files, so that we don't have to include my_atomic.h into the .cc program.
        (Temporary fix to avoid bug in gcc)
      storage/maria/unittest/ma_pagecache_single.c:
        Added missing argument
        Added SKIP_BIG_TESTS
        (Patch from Sanja)
      storage/maria/unittest/ma_test_loghandler-t.c:
        Test logging with new LEX_STRING parameter
        (Patch from Sanja)
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Test logging with new LEX_STRING parameter
        (Patch from Sanja)
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Test logging with new LEX_STRING parameter
        (Patch from Sanja)
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Test logging with new LEX_STRING parameter
        (Patch from Sanja)
      storage/maria/unittest/trnman-t.c:
        Stack overflow detection
        (Patch from Sergei)
      unittest/unit.pl:
        Command-line options --big and --verbose
        (Patch from Sergei)
      unittest/mytap/tap.c:
        Detect --big
        (Patch from Sergei)
      unittest/mytap/tap.h:
        Skip_big_tests and SKIP_BIG_TESTS
        (Patch from Sergei)
      storage/maria/trnman_public.h:
        New BitKeeper file ``storage/maria/trnman_public.h''
      de6183fd
  37. 21 Feb, 2007 1 commit
    • unknown's avatar
      unittest fixed · 193f2f14
      unknown authored
      storage/maria/unittest/Makefile.am:
        Unittest cleunup added
      storage/maria/unittest/ma_control_file-t.c:
        Unittest fixed according new file format
      storage/maria/unittest/ma_test_loghandler-t.c:
        Unittest cleunup added
        Unittest progress report added
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Unittest cleunup added
        Unittest progress report added
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Unittest cleunup added
        Unittest progress report added
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Unittest cleunup added
        Unittest progress report added
      storage/maria/unittest/ma_maria_log_cleanup.c:
        New BitKeeper file ``storage/maria/unittest/ma_maria_log_cleanup.c''
      193f2f14
  38. 19 Feb, 2007 1 commit
    • unknown's avatar
      Postreview changes. · 8e49d20d
      unknown authored
      Fixed befaviour when loghandler flags changed from one
      run to another one.
      Description of maria transaction log and control file
      added to the file commandÍs magic number file.
      
      
      mysys/mf_pagecache.c:
        postreview changes
      storage/maria/ma_control_file.c:
        Postreview changes.
      storage/maria/ma_control_file.h:
        Postreview changes.
      storage/maria/ma_loghandler.c:
        Postreview changes.
        Fixed befaviour when loghandler flags changed from
        one run to another one.
      storage/maria/ma_loghandler.h:
        Postreview changes.
        Functions comment left only near the function body.
      storage/maria/ma_loghandler_lsn.h:
        Postreview changes.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Postreview changes.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Postreview changes.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Postreview changes.
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Postreview changes.
      support-files/magic:
        Description of maria transaction log and control file
        added to the file commandÕs magic number file.
      8e49d20d
  39. 12 Feb, 2007 1 commit
    • unknown's avatar
      Postmerge fix (including changing type of LSN) · 1f59a95c
      unknown authored
      Some debug info and comments added
      
      
      include/pagecache.h:
        postmerge fix
      mysys/mf_pagecache.c:
        Postmerge fix (including changing type of LSN)
        Additional DBUG_ASSERTs added
        Comment about pinning mechanism added
      storage/maria/ma_control_file.c:
        Used the same LSN storing procedure everywhere
        Postmerge fix (including changing type of LSN)
      storage/maria/ma_control_file.h:
        Postmerge fix (including changing type of LSN)
      storage/maria/ma_loghandler.c:
        Postmerge fix (including changing type of LSN)
      storage/maria/ma_loghandler.h:
        Postmerge fix (including changing type of LSN)
      storage/maria/ma_loghandler_lsn.h:
        Postmerge fix (including changing type of LSN)
      storage/maria/unittest/Makefile.am:
        Postmerge fix
      storage/maria/unittest/ma_control_file-t.c:
        Postmerge fix (including changing type of LSN)
      storage/maria/unittest/ma_test_loghandler-t.c:
        Postmerge fix (including changing type of LSN)
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Postmerge fix (including changing type of LSN)
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Postmerge fix (including changing type of LSN)
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Postmerge fix (including changing type of LSN)
      storage/maria/unittest/mf_pagecache_consist.c:
        Postmerge fix (including changing type of LSN)
      storage/maria/unittest/mf_pagecache_single.c:
        Postmerge fix (including changing type of LSN)
      1f59a95c