sql/sql_insert.cc:
CREATE ... IF NOT EXISTS may do nothing, but
it is still not a failure. don't forget to my_ok it.
******
CREATE ... IF NOT EXISTS may do nothing, but
it is still not a failure. don't forget to my_ok it.
sql/sql_table.cc:
small cleanup
******
small cleanup
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
http://forge.mysql.com/worklog/task.php?id=4374
new option --maria-force-start-after-recovery-failures=N; number of consecutive recovery failures (failures
of log reading or recovery processing, anything in [translog_init(),maria_recovery_from_log()])
is stored in the control file; if at a Maria start they are more than N, logs are removed. This is for automated
systems which have to run whatever happens. As tables risk staying corrupted, --maria-recover should also
be used on them: this revision makes maria-recover work (it was disabled).
Fixed bug in translog_is_log_files(). translog_init() now prints message to error log if failed.
Removed \0 in the output of SHOW ENGINE MARIA LOGS; removed hard-coded engine name there.
KNOWN_BUGS.txt:
As option --maria-force-start-after-recovery-failures is added, it corresponds to the wish "we should fix that if this happens etc".
LOAD INDEX is not ignored since a few weeks. Listed concurrency bugs have been fixed some time ago.
Recovery of fulltext and GIS indexes works since a few weeks.
mysql-test/include/maria_make_snapshot.inc:
configurable prefix in table's name (so far 't' or 't_corrupted')
mysql-test/include/maria_make_snapshot_for_comparison.inc:
configurable prefix in table's name (so far 't' or 't_corrupted')
mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc:
configurable prefix in table's name (so far 't' or 't_corrupted')
mysql-test/include/maria_verify_recovery.inc:
configurable prefix in table's name (so far 't' or 't_corrupted')
mysql-test/lib/mtr_report.pl:
new test maria-recover.test generates expected corruption warnings in the error log. maria-recovery.test's corrupted table is renamed to t_corrupted1 instead of t1.
mysql-test/r/maria-preload.result:
result update. maria_pagecache_read* values are similar to the previous version of this file, though a bit bigger
because using the information_schema and the join leads to some internal maria temp table being used, and thus some
blocks of it being read.
mysql-test/r/maria-purge.result:
engine's name in SHOW ENGINE MARIA LOGS changed.
mysql-test/r/maria-recover.result:
result for new test. We see corruption messages at first SELECT and then none at second SELECT, expected.
mysql-test/r/maria-recovery.result:
result update
mysql-test/r/maria.result:
new variables show up
mysql-test/t/disabled.def:
BUG#34911 is not fixed but the test had been made independent of the bug (workaround). A new bug (crash) has popped recently, so it has to stay
disabled (BUG#35107).
mysql-test/t/maria-preload.test:
Work around BUG#34911 "FLUSH STATUS doesn't flush what it should":
compute differences in status variables before and after relevant queries
mysql-test/t/maria-recover-master.opt:
test --maria-recover
mysql-test/t/maria-recover.test:
Test of the --maria-recover option (build a corrupted table and see if it is auto-repaired)
mysql-test/t/maria-recovery-big.test:
update for new API of include/maria*.inc
mysql-test/t/maria-recovery-bitmap.test:
update for new API of include/maria*.inc
mysql-test/t/maria-recovery.test:
update for new API of include/maria*.inc. Corrupted table t1 renamed to t_corrupted1, so that mtr_report.pl
does not blindly remove all corruption messages for t1 which is
a common name.
storage/maria/ha_maria.cc:
Enabling maria-recover.
Adding option and global variable --maria_force_start_after_recovery_failures: ha_maria_init()
calls mark_recovery_start() and mark_recovery_success() to keep track of failed consecutive recoveries
and remove logs if needed.
Removed \0 in the output of SHOW ENGINE MARIA LOGS; removed hard-coded engine name there.
storage/maria/ma_checkpoint.c:
new prototype
storage/maria/ma_control_file.c:
Storing in one byte in the control file, the number of consecutive recovery failures.
storage/maria/ma_control_file.h:
new prototype
storage/maria/ma_init.c:
new prototype
storage/maria/ma_locking.c:
Need to update open_count on disk at first write and close for transactional tables, like we already did for
non-transactional tables, otherwise we cannot notice that the table is dubious.
storage/maria/ma_loghandler.c:
translog_is_log_files() is made more generic to serve either to search or to delete logs (the latter is
for --maria-force-start-after-recovery-failures). It also had a bug (always returned FALSE).
storage/maria/ma_loghandler.h:
export function because ha_maria::mark_recovery_start() needs it
storage/maria/ma_recovery.c:
changing name of maria_recover() to distinguish from the maria-recover option.
storage/maria/ma_recovery.h:
changing name of maria_recover() to distinguish from the maria-recover option.
storage/maria/ma_test_force_start.pl:
Test of --maria-force-start-after-recovery-failures (and also, to be realistic, of --maria-recover).
This is standalone because mysql-test-run does not support testing that multiple mysqld restarts expectedly failed.
I'll have to run it on my machine and also on a Windows machine.
storage/maria/unittest/ma_control_file-t.c:
adding recovery_failures to the test
storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
fix for compiler warning (unused variable in non-debug build)
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''
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
include/maria.h:
mac compiler warnings fixed.
storage/maria/ma_bitmap.c:
mac compiler warnings fixed.
storage/maria/ma_blockrec.c:
mac compiler warnings fixed.
storage/maria/ma_check.c:
mac compiler warnings fixed.
storage/maria/ma_control_file.c:
mac compiler warnings fixed.
storage/maria/ma_create.c:
mac compiler warnings fixed.
storage/maria/ma_delete.c:
mac compiler warnings fixed.
storage/maria/ma_ft_boolean_search.c:
mac compiler warnings fixed.
storage/maria/ma_page.c:
mac compiler warnings fixed.
storage/maria/ma_pagecache.c:
mac compiler warnings fixed.
storage/maria/ma_recovery.c:
mac compiler warning fixed.
storage/maria/ma_rt_test.c:
mac compiler warnings fixed.
storage/maria/ma_search.c:
mac compiler warning fixed.
storage/maria/ma_write.c:
mac compiler warnings fixed.
storage/maria/unittest/ma_control_file-t.c:
mac compiler warnings fixed.
storage/maria/unittest/ma_pagecache_consist.c:
mac compiler warnings fixed.
storage/maria/unittest/ma_pagecache_single.c:
mac compiler warnings fixed.
storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
mac compiler warning fixed.
storage/maria/unittest/test_file.c:
mac compiler warning fixed.
Don't give warnings when opening a wrong control file in ma_control_file_t (unit test)
BitKeeper/deleted/.del-ma_key_redo.c:
Delete: storage/maria/ma_key_redo.c
storage/maria/ma_blockrec.c:
Don't give warnings when reading blocks when we know the block may not exist
storage/maria/ma_pagecache.c:
Keep a convinience copy of readwrite_flags
storage/maria/ma_pagecache.h:
Keep a convinience copy of readwrite_flags
storage/maria/unittest/ma_control_file-t.c:
Don't give warnings when opening a wrong control file
Fix of unit tests.
2 new tests for new features.
storage/maria/ma_control_file.c:
Getting the definition from the file for unit-test.
storage/maria/ma_loghandler.c:
Fix bug with skipped syncing.
storage/maria/unittest/ma_control_file-t.c:
Fix of unit test of control file.
2 new tests for new features of control file.
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
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()
- 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.
4 bytes, using my_checksum() (the old checksum was one byte and just
a sum of the bytes - that was before I saw we have my_checksum :)
storage/maria/ma_control_file.c:
stronger checksum (4 bytes instead of 1, and using CRC instead of
simple byte sum).
storage/maria/unittest/ma_control_file-t.c:
Checksum is now 4 bytes (total length of control file is now 23),
so LSN and LAST_LOGNO move.
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)
into desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria-pagecache
mysys/Makefile.am:
Auto merged
mysys/mf_keycache.c:
Auto merged
storage/maria/Makefile.am:
Auto merged
storage/maria/unittest/ma_control_file-t.c:
Auto merged
storage/maria/unittest/mf_pagecache_consist.c:
Auto merged
storage/maria/unittest/mf_pagecache_single.c:
Auto merged
storage/maria/unittest/test_file.h:
Auto merged
include/pagecache.h:
merge
mysys/mf_pagecache.c:
merge
storage/maria/maria_def.h:
merge
storage/maria/unittest/Makefile.am:
merge
unittest/mysys/Makefile.am:
merge
storage/maria/unittest/test_file.c:
Rename: unittest/mysys/test_file.c -> storage/maria/unittest/test_file.c
storage/maria/unittest/test_file.h:
Rename: unittest/mysys/test_file.h -> storage/maria/unittest/test_file.h
include/pagecache.h:
A waiting queue mechanism moved to separate file wqueue.*
Pointer name changed for compatibility
mysys/Makefile.am:
A waiting queue mechanism moved to separate file wqueue.*
mysys/mf_keycache.c:
fixed unsigned comparison
mysys/mf_pagecache.c:
A waiting queue mechanism moved to separate file wqueue.*
Fixed bug in unregistering block during write
storage/maria/Makefile.am:
The loghandler files added
storage/maria/ma_control_file.h:
Now we have loghandler and can compile control file
storage/maria/maria_def.h:
Including files need for compilation of maria
storage/maria/unittest/Makefile.am:
unit tests of loghandler
storage/maria/unittest/ma_control_file-t.c:
Used maria def
storage/maria/unittest/mf_pagecache_consist.c:
fixed memory overrun
storage/maria/unittest/mf_pagecache_single.c:
fixed used uninitialized memory
unittest/mysys/Makefile.am:
unittests of pagecache moved to maria becase pagecache need loghandler
include/wqueue.h:
New BitKeeper file ``include/wqueue.h''
mysys/wqueue.c:
New BitKeeper file ``mysys/wqueue.c''
storage/maria/ma_loghandler.c:
New BitKeeper file ``storage/maria/ma_loghandler.c''
storage/maria/ma_loghandler.h:
New BitKeeper file ``storage/maria/ma_loghandler.h''
storage/maria/ma_loghandler_lsn.h:
New BitKeeper file ``storage/maria/ma_loghandler_lsn.h''
storage/maria/unittest/ma_test_loghandler-t.c:
New BitKeeper file ``storage/maria/unittest/ma_test_loghandler-t.c''
storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_multigroup-t.c''
storage/maria/unittest/ma_test_loghandler_multithread-t.c:
New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_multithread-t.c''
storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_pagecache-t.c''
Removed compiler warnings
Fixed clashing function name in maria
Disable maria tests from MySQL level for now
BitKeeper/deleted/.del-ha_maria.cc:
Rename: libmysqld/ha_maria.cc -> BitKeeper/deleted/.del-ha_maria.cc
BitKeeper/etc/ignore:
added libmysqld/ha_maria.cc
---
added storage/maria/unittest/maria_control unittest/maria_control
---
added *.Tpo
---
added unittest/page_cache_test_file_1
---
added unittest/pagecache_debug.log
---
added unittest/mysys/mf_pagecache_consist_1k-t-big unittest/mysys/mf_pagecache_consist_1kHC-t-big unittest/mysys/mf_pagecache_consist_1kRD-t-big unittest/mysys/mf_pagecache_consist_1kWR-t-big unittest/mysys/mf_pagecache_consist_64k-t-big unittest/mysys/mf_pagecache_consist_64kHC-t-big unittest/mysys/mf_pagecache_consist_64kRD-t-big unittest/mysys/mf_pagecache_consist_64kWR-t-big
---
added unittest/mysys/mf_pagecache_single_64k-t-big
Makefile.am:
Don't run 'test-unit' by default (takes too long time)
client/mysqldump.c:
Fixed compiler warning
include/lf.h:
Remove compiler warnings about not used require_pins constant
include/pagecache.h:
LSN should be of type ulonglong
(This fixes some compiler warnings)
mysql-test/r/events_logs_tests.result:
Make test predictable
mysql-test/r/view.result:
Make test results predictable
mysql-test/t/disabled.def:
Disable maria tests for a while
mysql-test/t/events_logs_tests.test:
Make test predictable
mysql-test/t/view.test:
Make test results predictable
mysys/lf_alloc-pin.c:
#warning ->QQ
mysys/lf_hash.c:
#warning ->QQ
Removed compiler warnings
mysys/mf_pagecache.c:
Removed compiler warnings
mysys/my_rename.c:
Removed compiler warnings
plugin/daemon_example/daemon_example.c:
Remove compiler warning
sql/ha_ndbcluster.cc:
Remove compiler warning
sql/udf_example.c:
Remove compiler warning
storage/maria/lockman.c:
Changed #warnings to QQ comment
Removed compiler warnings
storage/maria/ma_blockrec.c:
Removed compiler warnings
storage/maria/ma_check.c:
After merge fixes
storage/maria/ma_key.c:
After merge fixes
storage/maria/ma_packrec.c:
After merge fixes
storage/maria/ma_rkey.c:
After merge fixes
storage/maria/ma_sort.c:
After merge fixes
storage/maria/ma_sp_defs.h:
Rename clashing function name
storage/maria/ma_sp_key.c:
Rename clashing function name
storage/maria/ma_test_all.res:
New test results
storage/maria/ma_unique.c:
Fixed compiler warning
storage/maria/tablockman.c:
#warning -> QQ
storage/maria/tablockman.h:
#warning -> QQ
storage/maria/trnman.c:
#warning -> QQ
storage/maria/unittest/lockman2-t.c:
Removed compiler warnings
storage/maria/unittest/ma_control_file-t.c:
Removed warning for 'maria_control' file not found
storage/maria/unittest/trnman-t.c:
Removed compiler warnings
storage/ndb/src/mgmapi/mgmapi.cpp:
Remove compiler warnings
unittest/mysys/mf_pagecache_consist.c:
Removed compiler warnings
unittest/mysys/my_atomic-t.c:
Removed compiler warnings
the unit test of the control file module.
storage/maria/trnman.c:
fix for a bug (i has to be in [1..SHORT_TRID_MAX])
storage/maria/unittest/ma_control_file-t.c:
corrupted checksum is in buffer[0], not in buffer[1]
Fixes after Brian's and Serg's comments: storage engine's unit tests
are now in storage/<engine>/unittest instead of unittest/storage/<engine>
BitKeeper/deleted/.del-Makefile.am~78ea2e42d44d121f:
Delete: unittest/storage/maria/Makefile.am
BitKeeper/deleted/.del-Makefile.am~80497dbf1a80bdf3:
Delete: unittest/storage/Makefile.am
storage/maria/unittest/ma_control_file-t.c:
Rename: unittest/storage/maria/ma_control_file-t.c -> storage/maria/unittest/ma_control_file-t.c
config/ac-macros/plugins.m4:
we change from unittest/storage/<engine>/ to storage/<engine>/unittest:
if the engine is enabled has such a directory, build this directory,
and add it to the list of unit tests to run.
configure.in:
this dir does not exist anymore
storage/maria/Makefile.am:
to build Maria unittests, libmaria must be built.
unittest/Makefile.am:
unittest/storage is removed. target "unitests" is defined at
"configure" time based on enabled engines.
storage/maria/unittest/Makefile.am:
simple Makefile.am to build ma_control_file-t
2006-09-12 15:52:01 +02:00
Renamed from unittest/storage/maria/ma_control_file-t.c (Browse further)