1. 10 Apr, 2008 1 commit
    • unknown's avatar
      Added versioning of row data · 126c1228
      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''
      126c1228
  2. 04 Apr, 2008 1 commit
    • unknown's avatar
      Store maximum transaction id into control file at clean shutdown. · 722a8ebe
      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
      722a8ebe
  3. 03 Apr, 2008 2 commits
    • unknown's avatar
      fix for compiler warning · 42f970de
      unknown authored
      
      mysys/my_handler.c:
        compiler warning
      42f970de
    • unknown's avatar
      Injecting more "const" declarations into code which does not change · f094eff1
      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
      f094eff1
  4. 02 Apr, 2008 1 commit
    • unknown's avatar
      Fix for BUG#35570 "CHECKSUM TABLE unreliable if LINESTRING field (same content... · 50808b21
      unknown authored
      Fix for BUG#35570 "CHECKSUM TABLE unreliable if LINESTRING field (same content / differen checksum)"
      This will be back-ported to 5.x trees but the work for R-tree logging critically needs this patch in Maria now.
      
      
      mysql-test/r/myisam.result:
        checksums are identical; without the code fix they were all different
      mysql-test/t/myisam.test:
        test that same tables give same checksums
      sql/sql_table.cc:
        Type GEOMETRY is implemented on top of type BLOB, so, just like for BLOB, its 'field' contains pointers
        which it does not make sense to include in the checksum; it rather has to be converted to a string and
        then we can compute the checksum.
      50808b21
  5. 01 Apr, 2008 1 commit
    • unknown's avatar
      Merge of changes in MyISAM since December 16 -> April 1 · 3651e328
      unknown authored
      Fixes bugs:
      Bug#28837  MyISAM storage engine error (134) doing delete with self-join
      Bug#31277  myisamchk --unpack corrupts table
      Bug#4692   DISABLE/ENABLE KEYS waste a space
      Bug#31305  myisam tables crash when they are near capacity
      
      
      BitKeeper/etc/ignore:
        added unittest/tmp/*
      mysql-test/r/maria.result:
        Moved missing tests from myisam.test to maria.test
      mysql-test/t/maria.test:
        Moved missing tests from myisam.test to maria.test
      storage/maria/ha_maria.cc:
        Merge of changes in MyISAM since December 16 -> April 1
        Fixes bug in self join (Bug#28837: MyISAM storage engine error (134) doing delete with self-join)
      storage/maria/ha_maria.h:
        Merge of changes in MyISAM since December 16 -> April 1
      storage/maria/ma_blockrec.c:
        Merge of changes in MyISAM since December 16 -> April 1
        Fixes bug in self join (Bug#28837: MyISAM storage engine error (134) doing delete with self-join)
        The problem is that we may be using a cached key page with old information. Versioning will fix this
      storage/maria/ma_check.c:
        Merge of changes in MyISAM since December 16 -> April 1
        This fixes a problem with pack_reclength not beeing big enough (Bug #31277 myisamchk --unpack corrupts table)
        BUG#4692 - DISABLE/ENABLE KEYS waste a space
      storage/maria/ma_delete.c:
        Indentation fixes
      storage/maria/ma_dynrec.c:
        Merge of changes in MyISAM since December 16 -> April 1
        Fixes Bug#31305 myisam tables crash when they are near capacity.
        (This uses a simpler fix than in MyISAM by remembering the length of the current row)
      storage/maria/ma_ft_boolean_search.c:
        Merge of all changes from myisam/ft_boolean_search.c (This file had not been kept up to date)
      storage/maria/ma_open.c:
        Merge of changes in MyISAM since December 16 -> April 1
        Calculate default_rec_buff_size more exact to be sure it's always big enough
      storage/maria/ma_packrec.c:
        Merge of changes in MyISAM since December 16 -> April 1
        Update default_rec_buff_size to be big enough to hold one packed row
        Related to Bug#31277 myisamchk --unpack corrupts table
      storage/maria/ma_rnext_same.c:
        Indentation fixes
      storage/maria/ma_rt_index.c:
        Merge of changes in MyISAM since December 16 -> April 1
      storage/maria/ma_rt_mbr.c:
        Merge of changes in MyISAM since December 16 -> April 1
        (Added comment)
      storage/maria/ma_search.c:
        Merge of changes in MyISAM since December 16 -> April 1
        (Added comment)
      storage/maria/ma_sort.c:
        Merge of changes in MyISAM since December 16 -> April 1
      storage/maria/ma_statrec.c:
        Indentation fixes
      storage/maria/ma_test2.c:
        Indentation fixes
      storage/maria/maria_chk.c:
        Indentation fixes
      storage/maria/maria_pack.c:
        Merge of changes in MyISAM since December 16 -> April 1
      3651e328
  6. 23 Mar, 2008 1 commit
  7. 21 Mar, 2008 1 commit
    • unknown's avatar
      Fix for pushbuild problems: innocuous Valgrind error (uninitialized · b8c56780
      unknown authored
      bytes in unimportant, unused pieces of index pages) and test failure
      because test requires Maria. Compiler warning.
      About Valgrind error, two of the three bzero() added here are
      needed to silence the error (the third is added for symmetry).
      
      
      mysql-test/t/maria-gis-rtree.test:
        requires Maria
      storage/maria/ma_loghandler.c:
        "uint64->uint16 possible loss of precision" on Windows
      storage/maria/ma_rt_index.c:
        We bzero the entire new page, as is done in _ma_enlarge_root()
        for B-tree pages. This silences Valgrind warnings and allows
        better compression.
      storage/maria/ma_rt_split.c:
        We bzero the entire new page, as is done in _ma_enlarge_root()
        for B-tree pages. This silences Valgrind warnings and allows
        better compression.
      b8c56780
  8. 20 Mar, 2008 2 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-maria · b29d8bd2
      unknown authored
      into  gbichot4.local:/home/mysql_src/mysql-maria-monty
      
      
      b29d8bd2
    • unknown's avatar
      Fix for BUG#35441 "Cannot change PAGE_CHECKSUM table option". · 2e22de68
      unknown authored
      A big test was written and is committed, which found 3 bugs in total:
      - ALTER TABLE PAGE_CHECKSUM=0 sometimes had no effect
      - ALTER TABLE ENGINE=MARIA sometimes changed page checksumming in
      the table
      - SHOW CREATE TABLE and 'maria_chk -dv' disagreed on the presence
      of page checksumming.
      They are all fixed here. Side-effect is that SHOW CREATE TABLE now
      always prints a PAGE_CHECKSUM clause for Maria tables.
      
      
      mysql-test/mysql-test-run.pl:
        allow calling maria_chk and maria_pack in tests
      mysql-test/r/maria.result:
        PAGE_CHECKSUM=0 is now always printed
      mysql-test/t/create.test:
        PAGE_CHECKSUM= is now always present in SHOW CREATE TABLE of Maria tables
      mysql-test/t/disabled.def:
        better bug number
      sql/sql_table.cc:
        If ALTER TABLE PAGE_CHECKSUM=#, it affects the engine's data (structure
        of data pages) so a full table rebuild is needed. We already did
        so for ROW_FORMAT=#, following same logic. This fixes disagreements
        between SHOW CREATE TABLE and 'maria_chk -dv' regarding the
        presence of page checksums after certain ALTER TABLE (as seen
        with the attached testcase).
      storage/maria/ha_maria.cc:
        In ALTER TABLE PAGE_CHECKSUM=0, ha_maria::update_create_info() started
        with create_info->page_checksum=HA_CHOICE_NO and wrongly set it
        to the table's original setting, which is HA_CHOICE_YES if the table
        had page checksums, in which case the ALTER left page checksum
        in the table.
        The fix for this bug is: only if create_info->page_checksum is
        undefined (no clause in the ALTER TABLE, or we are in SHOW CREATE TABLE)
        we may set HA_CHOICE_YES.
        The second bug in this file was that the code left HA_CHOICE_UNDEF if
        the table didn't have page checksums originally, leading ALTER TABLE
        ENGINE=MARIA to change the table's page checksum to the value of
        maria_page_checksum.
        This is fixed by setting create_info->page_checksum to HA_CHOICE_NO
        if UNDEF and table does not have page checksum.
        The side-effect of this last fix, because ha_maria::update_create_info()
        is also called by SHOW CREATE TABLE, is that:
        SET GLOBAL maria_page_checksum=0;
        CREATE TABLE t(a INT) ENGINE=MARIA;
        SHOW CREATE TABLE t;
        which used to not show a PAGE_CHECKSUM= clause, now shows PAGE_CHECKSUM=0.
        I consider this side-effect good:
        - clearer for users: it eliminates the differences between the
        above and this:
        SET GLOBAL maria_page_checksum=0;
        CREATE TABLE t(a INT) ENGINE=MARIA PAGE_CHECKSUM=0;
        SHOW CREATE TABLE t;
        which already showed PAGE_CHECKSUM=0; difference which is not easy
        to explain.
        - if using mysqldump to copy from one server to another, it eliminates
        the dependency on the value of maria_page_checksum being the same on
        original server and new server.
      mysql-test/r/maria-page-checksum.result:
        Result. If you undo the code fixes and run the test, the new result
        file will show bugs at:
        error lineno 56 : expected PAGE_CHECKSUM=1, got Page checksums are not used
        error lineno 73 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        error lineno 110 : expected PAGE_CHECKSUM=1, got Page checksums are not used
        error lineno 164 : expected PAGE_CHECKSUM=1, got Page checksums are not used
        error lineno 181 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        error lineno 218 : expected PAGE_CHECKSUM=1, got Page checksums are not used
        error lineno 253 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        error lineno 307 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        error lineno 361 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        error lineno 415 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        error lineno 488 : expected PAGE_CHECKSUM=1, got Page checksums are not used
        error lineno 505 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        error lineno 542 : expected PAGE_CHECKSUM=1, got Page checksums are not used
        error lineno 577 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        error lineno 631 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
        (lineno is line number in the result file)
      mysql-test/t/maria-page-checksum.test:
        Test for the 3 bugs
      2e22de68
  9. 18 Mar, 2008 2 commits
  10. 17 Mar, 2008 2 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-maria · 86fc80d5
      unknown authored
      into  gbichot4.local:/home/mysql_src/mysql-maria-monty
      
      
      86fc80d5
    • unknown's avatar
      Fix for BUG#35273 "Corrupted table if using GIS index": · 1d791be4
      unknown authored
      when modifying R-tree indices we forgot to unpin pages (causing
      flush at-end-of-statement to fail - because page is pinned - and thus
      mark table corrupted) and also to unlock key_del (causing assertion
      failure info->used_key_del==0 at maria_close()).
      
      
      storage/maria/ma_rt_index.c:
        When modifying pages of R-tree indices we keep them pinned, and
        lock key_del, so we here make sure to unpin and unlock at the end
        of the modification. I checked all functions which add to info->pinned_pages
        or call _ma_lock_key_del(): the parent is always maria_rtree_insert()
        or maria_rtree_delete(), which thus do the unpin/unlock now.
      mysql-test/r/maria-gis-rtree.result:
        new result, which is incorrect (filed as BUG#35351) but at least
        test does not crash anymore
      mysql-test/t/maria-gis-rtree.test:
        test of Maria's GIS functionality (R-tree indices etc); copied from
        MyISAM's gis-rtree.test; used to crash without the bugfixes.
      1d791be4
  11. 16 Mar, 2008 1 commit
  12. 11 Mar, 2008 1 commit
    • unknown's avatar
      Fixed statistic calculation. · f0da1ea6
      unknown authored
      (BUG#35030 maria_pagecache_read* status
      variables updated at wrong moment)
      
      
      storage/maria/ma_pagecache.c:
        Fixed statistic calculation.
      f0da1ea6
  13. 10 Mar, 2008 1 commit
    • unknown's avatar
      Very small changes. · 61788ff4
      unknown authored
      
      storage/maria/ma_locking.c:
        define 'share' only in block which needs it
      storage/maria/unittest/ma_test_recovery.pl:
        more straightforward way to compute file's MD5
      61788ff4
  14. 08 Mar, 2008 4 commits
    • unknown's avatar
      Maria's usage of my_stat() is unreliable on Windows. (BUG#35036) · 6ec6ae4a
      unknown authored
      %llu replaces with %s/llstr() as in other MySQL code.
      
      
      storage/maria/ma_loghandler.c:
        my_stat is not reliable under windows for determinating file
        length so it is replaced with my_seek.
        %llu replaces with %s/llstr() as in other MySQL code.
      6ec6ae4a
    • unknown's avatar
      Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-maria · 351bdaef
      unknown authored
      into  desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria-bug34712
      
      
      351bdaef
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 82b01fcd
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      82b01fcd
    • unknown's avatar
      Fix for #Bug35048 "maria table corruption reported when transactional=0 · 42455c48
      unknown authored
      Problem was that page in bitmap was marked as full even if there was free places in page directory
      
      
      mysql-test/r/maria.result:
        Test case for problem with head/tail page with 255 entries
        (Bug 35048 "maria table corruption reported when transactional=0)
      mysql-test/t/maria.test:
        Test case for problem with head/tail page with 255 entries
        (Bug 35048 "maria table corruption reported when transactional=0)
      storage/maria/ma_blockrec.c:
        Fix to ensure that bitmap is marked 'full' when the head/tail page directory is full
      storage/maria/ma_check.c:
        Better check when directory for head/tail pages are marked full (The page directory can't hold a row tail + blob tails)
      42455c48
  15. 07 Mar, 2008 2 commits
    • unknown's avatar
      Avoiding changing log on flush call · 6a3f3245
      unknown authored
      if nothing was added to the log
      (BUG#34712 maria_read_log changes log
      file content on several platforms though not needed)
      Fixed callback call (now under loghandler lock).
      
      
      storage/maria/ma_loghandler.c:
        Flag that signaling about "everythig-flushed" state of
        the log added, to avoid changing log on flush request
        if nothing was written but horizon placed on the page boarder.
        Fixed callback call (now under loghandler lock).
      6a3f3245
    • unknown's avatar
      Removed external call to md5sum and added · fe542970
      unknown authored
      an internal procedure for it. Removed my_which()
      as unneccessary.
      
      
      fe542970
  16. 05 Mar, 2008 2 commits
  17. 04 Mar, 2008 11 commits
    • unknown's avatar
      Merge desktop.sanja.is.com.ua:/home/bell/mysql/bk/mysql-maria · 555c12c1
      unknown authored
      into  desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria-bug34634
      
      
      storage/maria/ma_pagecache.c:
        Auto merged
      555c12c1
    • unknown's avatar
      Fixed problem of deleting blocks which are being evicted at · 7a6342c2
      unknown authored
      the moment. (BUG#34634)
      Fixed potential bug in pinning schema.
      
      
      storage/maria/ma_pagecache.c:
        Fixed problem of deleting blocks which are being evicted at
        the moment.
        Fixed potential bug in pinning schema.
      7a6342c2
    • unknown's avatar
      Fixed excessive assertion reported in BUG#35031 · 963cd167
      unknown authored
      "Using maria-block-size != 8192 makes Maria crash or say "error 174""
      
      
      storage/maria/ma_create.c:
        fixed excessive assertion
      963cd167
    • unknown's avatar
      have to disable test until bug is fixed · f93bfec8
      unknown authored
      f93bfec8
    • unknown's avatar
      fix for compilation failure in non-debug builds · c32e663d
      unknown authored
      
      sql/mysqld.cc:
        option -# and --debug, and default_dbug_option, do not exist in non-debug builds
      c32e663d
    • unknown's avatar
      Merge gbichot4.local:/home/mysql_src/mysql-maria-monty · 33c25353
      unknown authored
      into  gbichot4.local:/home/mysql_src/mysql-maria-clean
      
      
      storage/maria/ha_maria.cc:
        Auto merged
      storage/maria/ma_pagecache.c:
        Auto merged
      33c25353
    • unknown's avatar
      Making ma_pagecache_rwconsist_1k-t unit test build under Windows · 29b9fdff
      unknown authored
      
      storage/maria/unittest/CMakeLists.txt:
        build unit test under Windows too
      storage/maria/unittest/ma_pagecache_rwconsist.c:
        portability fix for Windows
      29b9fdff
    • unknown's avatar
      Fixed crashing bug when starting mysqld with --dbug · 09e4e954
      unknown authored
      Fixed crash when using other maria block size than 8192
      Fixed bug that caused tables to be reported as crashed if maria_log_control was deleted
      
      
      mysql-test/valgrind.supp:
        Suppress leaks on SuSE 10.3, x86 64 bit
      sql/mysqld.cc:
        Don't give warning in case of timeout for pthread_cond_timedwait
        Fixed crashing bug when starting mysqld with --dbug
      storage/maria/ha_maria.cc:
        Fixed crash when using other block size than 8192 (Crash happend later in bitmap page handling)
      storage/maria/ma_locking.c:
        When we write a new uuid for a zerofilled file, also update the lsn's
      storage/maria/ma_open.c:
        Don't update lsn on open. Wait until first time file is changed
        Fixed bug that caused tables to be reported as crashed if maria_log_control was deleted
      strings/strmake.c:
        Fixed warnings for strings without end 0 when running under valgrind.
      09e4e954
    • unknown's avatar
      copyright and license info · ea3ae3c4
      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
      ea3ae3c4
    • unknown's avatar
      Fix for BUG#34089 "Maria crash on LOAD INDEX after FLUSH TABLES". · 1bbb0981
      unknown authored
      
      storage/maria/ha_maria.cc:
        enable LOAD INDEX for Maria
      storage/maria/ma_preload.c:
        Making index preloading work for Maria.
      storage/maria/maria_def.h:
        We don't need this #define anymore, ma_test_recovery.pl uses
        zerofill to do comparisons of physical files.
      mysql-test/r/maria-preload.result:
        result. The values of maria_pagecache_reads look too high, see
        BUG#35030 "maria_pagecache_read* status variables updated at wrong moment"
      mysql-test/t/maria-preload.test:
        Test of index preloading in Maria
      1bbb0981
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 79ca1004
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      79ca1004
  18. 03 Mar, 2008 2 commits
  19. 02 Mar, 2008 2 commits