mariadb/mysys
unknown e27890cab0 WL#3072 Maria recovery
* create page cache before initializing engine and not after, because
Maria's recovery needs a page cache
* make the creation of a bitmap page more crash-resistent
* bugfix (see ma_blockrec.c)
* back to old way: create an 8k bitmap page when creating table
* preparations for the UNDO phase: recreate TRNs
* preparations for Checkpoint: list of dirty pages, testing
of rec_lsn to know if page should be skipped during Recovery
(unused in this patch as no Checkpoint module pushed yet)
* maria_chk tags repaired table with a special LSN
* reworking all around in ma_recovery.c (less duplication)


mysys/my_realloc.c:
  noted an issue in my_realloc()
sql/mysqld.cc:
  page cache needs to be created before engines are initialized,
  because Maria's initialization may do a recovery which needs
  the page cache.
storage/maria/ha_maria.cc:
  update to new prototype
storage/maria/ma_bitmap.c:
  when creating the first bitmap page we used chsize to 8192 bytes then 
  pwrite (overwrite) the last 2 bytes (8191-8192). If crash between
  the two operations, this leaves a bitmap page full without its end
  marker. A later recovery may try to read this page and find it
  exists and misses a marker and conclude it's corrupted and fail.
  Changing the chsize to only 8190 bytes: recovery will then find
  the page is too short and recreate it entirely.
storage/maria/ma_blockrec.c:
  Fix for a bug: when executing a REDO, if the data page is created,
  data_file_length was increased before _ma_bitmap_set():
  _ma_bitmap_set() called _ma_read_bitmap_page() which, due to the
  increased data_file_length, expected to find a bitmap page on disk
  with a correct end marker; if the bitmap page didn't exist already
  in fact, this failed. Fixed by increasing data_file_length only after
  _ma_read_bitmap_page() has created the new bitmap page correctly.
  This bug could happen every time a REDO is about creating a new
  bitmap page.
storage/maria/ma_check.c:
  empty data file has a bitmap page
storage/maria/ma_control_file.c:
  useless parameter to ma_control_file_create_or_open(), just
  test if this is recovery.
storage/maria/ma_control_file.h:
  new prototype
storage/maria/ma_create.c:
  Back to how it was before: maria_create() creates an 8k bitmap page.
  Thus (bugfix) data_file_length needs to reflect this instead of being 0.
storage/maria/ma_loghandler.c:
  as ma_test1 and ma_test2 now use real transactions and not
  dummy_transaction_object, REDO for INSERT/UPDATE/DELETE are always
  about real transactions, can assert this.
  A function for Recovery to assign a short id to a table.
storage/maria/ma_loghandler.h:
  new function
storage/maria/ma_loghandler_lsn.h:
  maria_chk tags repaired tables with this LSN
storage/maria/ma_open.c:
  * enforce that DMLs on transactional tables use real transactions
  and not dummy_transaction_object.
  * test if table was repaired with maria_chk (which has to been
  seen as an import of an external table into the server), test
  validity of create_rename_lsn (header corruption detection)
  * comments.
storage/maria/ma_recovery.c:
  * preparations for the UNDO phase: recreate TRNs
  * preparations for Checkpoint: list of dirty pages, testing
  of rec_lsn to know if page should be skipped during Recovery
  (unused in this patch as no Checkpoint module pushed yet)
  * reworking all around (less duplication)
storage/maria/ma_recovery.h:
  a parameter to say if the UNDO phase should be skipped
storage/maria/maria_chk.c:
  tag repaired tables with a special LSN
storage/maria/maria_read_log.c:
  * update to new prototype
  * no UNDO phase in maria_read_log for now
storage/maria/trnman.c:
  * a function for Recovery to create a transaction (TRN), needed
  in the UNDO phase
  * a function for Recovery to grab an existing transaction, needed
  in the UNDO phase (rollback all existing transactions)
storage/maria/trnman_public.h:
  new functions
2007-08-29 16:43:01 +02:00
..
.cvsignore
array.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-06-27 17:49:12 +03:00
base64.c Fixed compiler warnings 2007-02-23 13:13:55 +02:00
ChangeLog Fix skipp -> skip once and for all. 2004-06-03 11:52:54 -05:00
charset-def.c Merge maint1.mysql.com:/data/localhome/tsmith/bk/maint/50 2007-06-21 20:55:37 +02:00
charset.c Patch for the following bugs: 2007-06-28 21:34:54 +04:00
checksum.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
CMakeLists.txt Makefile.am: 2007-03-22 16:53:37 +01:00
default.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
default_modify.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
errors.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
hash.c Merge mysql.com:/home/svoj/devel/mysql/BUG27564/mysql-5.0-engines 2007-07-05 11:47:53 +05:00
lf_alloc-pin.c This patch is a collection of patches from from Sanja, Sergei and Monty. 2007-05-29 20:13:56 +03:00
lf_dynarray.c This patch is a collection of patches from from Sanja, Sergei and Monty. 2007-05-29 20:13:56 +03:00
lf_hash.c Merged with mysql-5.1 main tree. 2007-07-02 20:45:15 +03:00
list.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
make-ccc Remove unused (and incorrect) my_lread() and my_lwrite() 2006-09-14 23:29:44 -06:00
make-conf.c Many files: 2006-12-23 20:17:15 +01:00
Makefile.am Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria 2007-07-04 12:20:53 +03:00
md5.c Many files: 2006-12-23 20:17:15 +01:00
mf_brkhant.c Many files: 2006-12-23 20:17:15 +01:00
mf_cache.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_dirname.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_fn_ext.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_format.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_getdate.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_iocache.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria 2007-07-04 12:20:53 +03:00
mf_iocache2.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_keycache.c porting Serg's fix for BUG#30094 to Maria. Now ma_test_all passes. 2007-07-27 16:11:40 +02:00
mf_keycaches.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-06-27 17:49:12 +03:00
mf_loadpath.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_pack.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_path.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_qsort.c Many files: 2006-12-23 20:17:15 +01:00
mf_qsort2.c Many files: 2006-12-23 20:17:15 +01:00
mf_radix.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_same.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_sort.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_soundex.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_strip.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_tempdir.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_tempfile.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria 2007-07-04 12:20:53 +03:00
mf_unixpath.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mf_util.c Many files: 2006-12-23 20:17:15 +01:00
mf_wcomp.c Many files: 2006-12-23 20:17:15 +01:00
mf_wfile.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mulalloc.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_access.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_aes.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
my_alarm.c Many files: 2006-12-23 20:17:15 +01:00
my_alloc.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_append.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_atomic.c Merge gbichot3.local:/home/mysql_src/mysql-5.1-for-maria 2007-02-28 17:50:51 +01:00
my_bit.c Merge gbichot3.local:/home/mysql_src/mysql-5.1-for-maria 2007-02-28 17:50:51 +01:00
my_bitmap.c Merge gbichot3.local:/home/mysql_src/mysql-5.1-for-maria 2007-02-28 17:50:51 +01:00
my_chsize.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_clock.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_compress.c Merged with mysql-5.1 main tree. 2007-07-02 20:45:15 +03:00
my_conio.c Added casts to avoid compiler warnings and fixed a wrong type. 2007-05-31 17:45:22 +03:00
my_copy.c Merge damien-katzs-computer.local:/Users/dkatz/mysql50 2007-04-30 17:47:58 -04:00
my_crc32.c Many files: 2006-12-23 20:17:15 +01:00
my_create.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-06-27 17:49:12 +03:00
my_delete.c Merge gbichot3.local:/home/mysql_src/mysql-5.1-for-maria 2007-02-28 17:50:51 +01:00
my_div.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_dup.c Fixed compiler warnings. 2007-03-22 20:32:07 +02:00
my_error.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria 2007-07-04 12:20:53 +03:00
my_file.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_fopen.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_fstream.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_gethostbyname.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
my_gethwaddr.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
my_getncpus.c Many files: 2006-12-27 02:23:51 +01:00
my_getopt.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-05-24 13:24:36 +03:00
my_getpagesize.c Many files: 2006-12-23 20:17:15 +01:00
my_getsystime.c Merge gbichot3.local:/home/mysql_src/mysql-5.1-for-maria 2007-02-28 17:50:51 +01:00
my_getwd.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_handler.c Fixed REPAIR/CHECK/ANALYZE TABLE for tables with new BLOCK-ROW format. 2007-07-01 16:20:57 +03:00
my_init.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria 2007-07-04 12:20:53 +03:00
my_largepage.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_lib.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_libwrap.c Many files: 2006-12-23 20:17:15 +01:00
my_lock.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_lockmem.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_malloc.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_memmem.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_messnc.c Many files: 2006-12-23 20:17:15 +01:00
my_mkdir.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_mmap.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_net.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_netware.c Many files: 2006-12-23 20:17:15 +01:00
my_new.cc Many files: 2006-12-23 20:17:15 +01:00
my_once.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_open.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria 2007-07-04 12:20:53 +03:00
my_port.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
my_pread.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-06-27 17:49:12 +03:00
my_pthread.c Portability fix to work around OS X -x86 toolchain bug with common (uninitialized data) symbols 2007-04-04 11:41:43 +02:00
my_quick.c Added casts to avoid compiler warnings and fixed a wrong type. 2007-05-31 17:45:22 +03:00
my_read.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_realloc.c WL#3072 Maria recovery 2007-08-29 16:43:01 +02:00
my_redel.c Merge mysql.com:/home/svoj/devel/mysql/BUG25521/mysql-5.0-engines 2007-03-29 22:01:51 +05:00
my_rename.c Merged with mysql-5.1 main tree. 2007-07-02 20:45:15 +03:00
my_safehash.c Merged with mysql-5.1 main tree. 2007-07-02 20:45:15 +03:00
my_safehash.h Merged with mysql-5.1 main tree. 2007-07-02 20:45:15 +03:00
my_seek.c Merge mysql.com:/home/svoj/devel/mysql/BUG27141/mysql-5.0-engines 2007-06-05 03:43:11 +05:00
my_sleep.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
my_static.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-05-24 15:26:10 +03:00
my_static.h WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_symlink.c Merge gbichot3.local:/home/mysql_src/mysql-5.1-for-maria 2007-02-28 17:50:51 +01:00
my_symlink2.c Fixed REPAIR/CHECK/ANALYZE TABLE for tables with new BLOCK-ROW format. 2007-07-01 16:20:57 +03:00
my_sync.c Merged with mysql-5.1 main tree. 2007-07-02 20:45:15 +03:00
my_thr_init.c Merge pilot.(none):/data/msvensson/mysql/bug28690/my50-bug28690 2007-06-07 09:50:53 +02:00
my_vle.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_wincond.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_windac.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
my_winthread.c Many files: 2006-12-23 20:17:15 +01:00
my_write.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mysys_priv.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
ptr_cmp.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
queues.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
rijndael.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
safemalloc.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-06-27 17:49:12 +03:00
sha1.c Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
string.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
test_charset.c Many files: 2006-12-23 20:17:15 +01:00
test_dir.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
test_fn.c Many files: 2006-12-23 20:17:15 +01:00
test_xml.c Many files: 2006-12-23 20:17:15 +01:00
testhash.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
thr_alarm.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
thr_lock.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria 2007-07-07 18:03:07 +03:00
thr_mutex.c Fixed compiler warnings 2007-02-23 13:13:55 +02:00
thr_rwlock.c Many files: 2006-12-23 20:17:15 +01:00
tree.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
trie.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
typelib.c Merged from main 5.1 2007-05-24 19:47:58 +03:00
wqueue.c postreview changes for page cache and pre review commit for loghandler 2007-02-02 09:41:32 +02:00