1. 07 Jul, 2007 1 commit
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria · 4906b5f0
      unknown authored
      into  labbari.dsl.inet.fi:/home/my/bk/mysql-maria.prod
      
      
      mysys/thr_lock.c:
        Auto merged
      storage/csv/ha_tina.cc:
        Auto merged
      storage/csv/ha_tina.h:
        Auto merged
      storage/maria/ma_blockrec.c:
        Auto merged
      storage/maria/ma_check.c:
        Auto merged
      storage/maria/ma_loghandler.c:
        Auto merged
      storage/maria/trnman.c:
        Auto merged
      storage/myisam/mi_locking.c:
        Auto merged
      sql/lock.cc:
        SCCS merged
      4906b5f0
  2. 05 Jul, 2007 1 commit
  3. 04 Jul, 2007 4 commits
    • unknown's avatar
      in mysql_unlock_tables(), do thr_unlock() AFTER external_unlock(). · 7f62d812
      unknown authored
      it means, {update,restore}_status() should be called in external_lock, 
      not in thr_unlock. Only affects storage engines that support
      TL_WRITE_CONCURRENT.
      
      7f62d812
    • unknown's avatar
      Maria: correcting assertions (should be enforced only in multi-threaded · a021c104
      unknown authored
      mode) so ma_test_all works again; more error detection in ma_test_all;
      maria_control renamed to maria_log_control (Monty's suggestion,
      so that a "rm maria_log*" removes all log-related files). Disabling
      failing wrong assertion.
      
      
      storage/maria/ma_blockrec.c:
        disabling assertion which fails because cur_block is a
        local variable not initialized
      storage/maria/ma_check.c:
        comment
      storage/maria/ma_control_file.h:
        control file renamed
      storage/maria/ma_loghandler.c:
        assertions needed only in multi-threaded mode (ma_test1 and ma_test2
        are single-threaded, it's ok for them to use dummy_transaction_object
        with transactional tables: trn->rec_lsn can be set without interfering
        with other threads).
      storage/maria/ma_test_all.sh:
        got caught by failures in some ma_test1 runs, which I didn't see
        because ma_test_all returned 0 and I didn't scroll up in the window;
        now using "set -e" to avoid that. Also testing that
        we get the errors and warnings we expect.
      storage/maria/unittest/Makefile.am:
        maria_control renamed
      a021c104
    • unknown's avatar
      Fixed bytes to uchar and gptr to uchar* · 808b8437
      unknown authored
      808b8437
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria · 3aa3cc1c
      unknown authored
      into  a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-maria.prod
      
      
      BitKeeper/etc/ignore:
        auto-union
      include/maria.h:
        Auto merged
      include/my_base.h:
        Auto merged
      mysql-test/include/ps_conv.inc:
        Auto merged
      mysql-test/r/ps_2myisam.result:
        Auto merged
      mysql-test/r/ps_3innodb.result:
        Auto merged
      mysql-test/r/ps_4heap.result:
        Auto merged
      mysql-test/r/ps_5merge.result:
        Auto merged
      mysql-test/r/ps_7ndb.result:
        Auto merged
      mysys/Makefile.am:
        Auto merged
      mysys/mf_iocache.c:
        Auto merged
      mysys/mf_tempfile.c:
        Auto merged
      mysys/my_error.c:
        Auto merged
      mysys/my_init.c:
        Auto merged
      mysys/my_open.c:
        Auto merged
      sql/handler.cc:
        Auto merged
      sql/handler.h:
        Auto merged
      sql/lex.h:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/table.cc:
        Auto merged
      sql/table.h:
        Auto merged
      storage/maria/ha_maria.cc:
        Auto merged
      storage/maria/ha_maria.h:
        Auto merged
      storage/maria/ma_bitmap.c:
        Auto merged
      storage/maria/ma_blockrec.h:
        Auto merged
      storage/maria/ma_create.c:
        Auto merged
      storage/maria/ma_dynrec.c:
        Auto merged
      storage/maria/ma_loghandler.h:
        Auto merged
      storage/maria/ma_loghandler_lsn.h:
        Auto merged
      storage/maria/ma_open.c:
        Auto merged
      storage/maria/ma_pagecache.c:
        Auto merged
      storage/maria/ma_pagecache.h:
        Auto merged
      storage/maria/ma_test1.c:
        Auto merged
      storage/maria/ma_test2.c:
        Auto merged
      storage/maria/ma_update.c:
        Auto merged
      storage/maria/maria_chk.c:
        Auto merged
      storage/maria/unittest/ma_test_loghandler-t.c:
        Auto merged
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Auto merged
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Auto merged
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Auto merged
      storage/myisam/ft_stopwords.c:
        Auto merged
      storage/myisam/mi_close.c:
        Auto merged
      support-files/compiler_warnings.supp:
        Auto merged
      mysys/mf_keycache.c:
        Pulled from mysql-maria tree, manual merge.
      mysys/my_handler.c:
        Pulled from mysql-maria tree, manual merge.
      mysys/my_symlink2.c:
        Pulled from mysql-maria tree, manual merge.
      sql/mysqld.cc:
        Pulled from mysql-maria tree, manual merge.
      sql/sql_table.cc:
        Pulled from mysql-maria tree, manual merge.
      storage/maria/ma_blockrec.c:
        Pulled from mysql-maria tree, manual merge.
      storage/maria/ma_check.c:
        Pulled from mysql-maria tree, manual merge.
      storage/maria/ma_close.c:
        Pulled from mysql-maria tree, manual merge.
      storage/maria/ma_loghandler.c:
        Pulled from mysql-maria tree, manual merge.
      storage/maria/maria_def.h:
        Pulled from mysql-maria tree, manual merge.
      3aa3cc1c
  4. 03 Jul, 2007 7 commits
    • unknown's avatar
      After merge fixes · 55bb3731
      unknown authored
      Note that ma_test_all doesn't work for the moment.
      (ma_test1 -s -M -T fails because it uses the dummy_transaction_object)
      
      
      storage/maria/ma_blockrec.c:
        After merge fixes
      55bb3731
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 92032ac3
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      storage/maria/ma_blockrec.c:
        Auto merged
      storage/maria/maria_read_log.c:
        Auto merged
      92032ac3
    • unknown's avatar
      Implement applying of REDO entries for · 8116cd23
      unknown authored
      - LOGREC_REDO_INSERT_ROW_HEAD
      - LOGREC_REDO_INSERT_ROW_TAIL
      - LOGREC_REDO_PURGE_ROW_HEAD
      - LOGREC_REDO_PURGE_ROW_TAIL
      
      
      sql/sql_yacc.yy:
        Fixed typo in previous push
      storage/maria/ma_bitmap.c:
        Ensure we flush the new bitmap on close
      storage/maria/ma_blockrec.c:
        Implement applying of REDO entries for
        - LOGREC_REDO_INSERT_ROW_HEAD
        - LOGREC_REDO_INSERT_ROW_TAIL
        - LOGREC_REDO_PURGE_ROW_HEAD
        - LOGREC_REDO_PURGE_ROW_TAIL
        Split some functions into subfunctions to be able to reuse code
      storage/maria/ma_blockrec.h:
        Added prototypes for REDO applying functions
      storage/maria/ma_loghandler.h:
        Safety fix
      storage/maria/ma_loghandler_lsn.h:
        Avoid compiler warnings
      storage/maria/maria_read_log.c:
        Added hocks for:
        - REDO_INSERT_ROW_HEAD
        - REDO_INSERT_ROW_TAIL
        - REDO_PURGE_ROW_HEAD
        - REDO_PURGE_ROW_TAIL
        
        Added dummy hooks for:
        - UNDO_ROW_INSERT
        - UNDO_ROW_DELETE
        
        Changed to use maria_pagecache instead of own pagecache (fixed problem with unitialized share->pagecache)
        Use maria_panic() at end to ensure that all files are closed properly.
        Fixed option handling for --debug
      8116cd23
    • unknown's avatar
      Verify that INSERT DELAYED is disabled only for transactional · 53218bee
      unknown authored
      Maria tables
      
      
      mysql-test/r/maria.result:
        result update (we see DELAYED is refused only for transactional
        Maria tables)
      mysql-test/t/maria.test:
        verify that INSERT DELAYED is disabled only for transactional
        Maria tables
      53218bee
    • unknown's avatar
      Marking the block dirty requires linking it into the changed_blocks[] · e3bfb897
      unknown authored
      list (for flush_pagecache*() functions and Checkpoint to see it)
      
      e3bfb897
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-maria · 4a2ce097
      unknown authored
      into  gbichot3.local:/home/mysql_src/mysql-maria-clean
      
      
      storage/maria/ma_pagecache.c:
        merge
      4a2ce097
    • unknown's avatar
      Maria: · e4c2d748
      unknown authored
      * Don't modify share->base.born_transactional; now it is a value carved
      in stone at creation time. share->now_transactional is what can be
      modified: it starts at born_transactional, can become false during
      ALTER TABLE (when we want no logging), and restored later.
      * Not resetting create_rename_lsn to 0 during delete_all or repair.
      * when we temporarily disable transactionality, we also change
      the page type to PAGECACHE_PLAIN_PAGE: it bypasses some work in the
      page cache (optimization), and avoids assertions related to LSNs.
      * Disable INSERT DELAYED for transactional tables, because
      durability could not be guaranteed (insertion may even not happen)
      
      
      mysys/mf_keycache.c:
        comment
      storage/maria/ha_maria.cc:
        * a transactional table cannot do INSERT DELAYED
        * ha_maria::save_transactional not needed anymore, as now instead
        we don't modify MARIA_SHARE::MARIA_BASE_INFO::born_transactional
        (born_transactional plays the role of save_transactional), and modify
        MARIA_SHARE::now_transactional.
        * REPAIR_TABLE log record is now logged by maria_repair()
        * comment why we rely on born_transactional to know if we should
        skipping a transaction.
        * putting together two if()s which test for F_UNLCK
      storage/maria/ha_maria.h:
        ha_maria::save_transactional not needed anymore (moved to the C layer)
      storage/maria/ma_blockrec.c:
        * For the block record's code (writing/updating/deleting records),
        all that counts is now_transactional, not born_transactional.
        * As we now set the page type to PAGECACHE_PLAIN_PAGE for tables
        which have now_transactional==FALSE, pagecache will not expect
        a meaningful LSN for them in pagecache_unlock_by_link(), so
        we can pass it LSN_IMPOSSIBLE.
      storage/maria/ma_check.c:
        * writing LOGREC_REPAIR_TABLE moves from ha_maria::repair()
        to maria_repair(), sounds cleaner (less functions to export).
        * when opening a table during REPAIR, don't use the realpath-ed name,
        as this may fail if the table has symlinked files (maria_open()
        would try to find the data and index file in the directory
        of unique_file_name, it would fail if data and index files are in
        different dirs); use the unresolved name, open_file_name, which is
        the argument which was passed to the maria_open() which created 'info'.
      storage/maria/ma_close.c:
        assert that when a statement is done with a table, it cleans up
      storage/maria/ma_create.c:
        new name
      storage/maria/ma_delete_all.c:
        * using now_transactional
        * no reason to reset create_rename_lsn during delete_all (a bug);
        also no reason to do it during repair: it was put there because
        a positive create_rename_lsn caused a call to check_and_set_lsn()
        which asserted in DBUG_ASSERT(block->type == PAGECACHE_LSN_PAGE);
        first solution was to use LSN_IMPOSSIBLE in _ma_unpin_all_pages() if
        not transactional; but then in the case of ALTER TABLE, with
        transactionality temporarily disabled, it asserted in
        DBUG_ASSERT(LSN_VALID(lsn)) in pagecache_fwrite() (PAGECACHE_LSN_PAGE
        page with zero LSN - bad). The additional solution is to use
        PAGECACHE_PLAIN_PAGE when we disable transactionality temporarily: this
        avoids checks on the LSN, and also bypasses (optimization) the "flush
        log up to LSN" call when the pagecache flushes our page (in other
        words, no WAL needed).
      storage/maria/ma_delete_table.c:
        use now_transactional
      storage/maria/ma_locking.c:
        assert that when a statement is done with a table, it cleans up.
      storage/maria/ma_loghandler.c:
        * now_transactional should be used to test if we want a log record.
        * Assertions to make sure dummy_transaction_object is not spoilt
        by its many users.
      storage/maria/ma_open.c:
        base.transactional -> base.born_transactional
      storage/maria/ma_pagecache.c:
        missing name for page's type. Comment for future.
      storage/maria/ma_rename.c:
        use now_transactional
      storage/maria/maria_chk.c:
        use born_transactional
      storage/maria/maria_def.h:
        MARIA_BASE_INFO::transactional renamed to born_transactional.
        MARIA_SHARE::now_transactional introduced.
        _ma_repair_write_log_record() is made local to ma_check.c.
        Macros to temporarily disable, and re-enable, transactionality for a
        table.
      storage/maria/maria_read_log.c:
        assertions and using the new macros. Adding a forgotten resetting
        when we finally close all tables.
      e4c2d748
  5. 02 Jul, 2007 2 commits
    • unknown's avatar
      Mark the page dirty if we store LSN on it. · 1aa9027c
      unknown authored
      New type of page in the page cache fixes.
      
      
      storage/maria/ma_pagecache.c:
        Mark the page dirty if we store LSN on it.
        Symbolic representation of new page type added (for debugging output).
        Asserts added (unknown type can't be used if we write the page).
      1aa9027c
    • 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
  6. 01 Jul, 2007 3 commits
    • unknown's avatar
      After merge fixes · 85cdbee3
      unknown authored
      
      BitKeeper/etc/ignore:
        added storage/maria/maria_read_log
      support-files/compiler_warnings.supp:
        Ignore function used when debugging (can be called from gdb)
      85cdbee3
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 1d2f1377
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      include/maria.h:
        Auto merged
      sql/handler.h:
        Auto merged
      storage/maria/ha_maria.cc:
        Auto merged
      storage/maria/ma_close.c:
        Auto merged
      storage/maria/ma_loghandler.c:
        Auto merged
      storage/maria/ma_open.c:
        Auto merged
      storage/maria/ma_pagecache.c:
        Auto merged
      storage/maria/ma_pagecache.h:
        Auto merged
      storage/maria/maria_chk.c:
        Auto merged
      storage/maria/ma_blockrec.c:
        Manual merge (No changes)
      storage/maria/ma_check.c:
        Manual merge
      storage/maria/ma_create.c:
        Manual merge
      storage/maria/ma_delete_all.c:
        Manual merge
      storage/maria/ma_init.c:
        Manual merge (no changes)
      storage/maria/ma_test_all.sh:
        Manual merge
      storage/maria/maria_def.h:
        Manual merge
      1d2f1377
    • unknown's avatar
      Fixed REPAIR/CHECK/ANALYZE TABLE for tables with new BLOCK-ROW format. · 37a0005e
      unknown authored
      Fixed maria_chk to repair BLOCK-ROW tables.
      Added CREATE options ROW_FORMAT=PAGE & TRANSACTIONAL= 0|1
      More DBUG information in a lot of functions
      Some minor code cleanups
      Enable handler errors earlier for better clear text error messages at handler startup / standalone usage.
      Don't print NULL strings in my_create_with_symlink();  Fixes core dump when used with --debug
      
      
      include/maria.h:
        Added extra variables needed for REPAIR with BLOCK records
      include/my_base.h:
        Added argument for opening copy of maria table without a shared object
      include/my_handler.h:
        Prototypes for my_handler_error_register() & my_handler_error_unregister()
      include/pagecache.h:
        Added PAGECACHE_READ_UNKNOWN_PAGE
      mysql-test/include/ps_conv.inc:
        Enforce creation of table as MyISAM (to allow one to use --default-storage-engine)
      mysql-test/r/maria.result:
        Moved some things to maria-connect.test
        Updared results as REPAIR now works
        Added tests for creation option TRANSACTIONAL
      mysql-test/r/ps_2myisam.result:
        Enforce creation of table as MyISAM (to allow one to use --default-storage-engine)
      mysql-test/r/ps_3innodb.result:
        Enforce creation of table as MyISAM (to allow one to use --default-storage-engine)
      mysql-test/r/ps_4heap.result:
        Enforce creation of table as MyISAM (to allow one to use --default-storage-engine)
      mysql-test/r/ps_5merge.result:
        Enforce creation of table as MyISAM (to allow one to use --default-storage-engine)
      mysql-test/r/ps_7ndb.result:
        Enforce creation of table as MyISAM (to allow one to use --default-storage-engine)
      mysql-test/r/ps_maria.result:
        Enforce creation of table as MyISAM (to allow one to use --default-storage-engine)
      mysql-test/t/maria.test:
        Moved some things to maria-connect.test
        Updared results as REPAIR now works
        Added tests for creation option TRANSACTIONAL
      mysys/mf_iocache.c:
        More debugging
      mysys/mf_tempfile.c:
        Added missing close()
      mysys/my_error.c:
        init_glob_errs() is now done in my_init()
      mysys/my_handler.c:
        Added functions to initialize handler error messages
      mysys/my_init.c:
        Moevd init_glob_errs() here.
      mysys/my_open.c:
        More comments
        More debugging
        Code cleanup (join multiple code paths) and indentation fixes. No change in logic.
      mysys/my_symlink2.c:
        Don't print NULL strings
      sql/handler.cc:
        Added printing of PAGE row type
        Moved out initializing of handler errors to allow handler to give better error messages at startup
      sql/handler.h:
        ROW_TYPE_PAGES -> ROW_TYPE_PAGE
      sql/lex.h:
        Added 'PAGE' and 'TRANSACTIONAL'
      sql/mysqld.cc:
        Initialize handler error messages early to get better error messages from handler startup
      sql/sql_show.cc:
        ROW_TYPE_PAGES -> ROW_TYPE_PAGE
      sql/sql_table.cc:
        Removed not needed initializer
      sql/sql_yacc.yy:
        Added CREATE options ROW_FORMAT=PAGE and TRANSACTIONAL=[0|1]
      sql/table.cc:
        Store transactional flag in .frm
        More comments
      sql-bench/example:
        Better example
      sql/table.h:
        Added transactional table option
      storage/maria/ha_maria.cc:
        More debug information
        Enable REPAIR
        Detect usage of TRANSACTIONAL table option
      storage/maria/ma_bitmap.c:
        More comments (from Guilhem)
      storage/maria/ma_blockrec.c:
        SANITY_CHECK -> SANITY_CHECKS (fixed typo)
        Write out pages on delete even if there is no rows. (Fixed problem with REPAIR)
        Removed some ASSERTS to runtime checks (for better REPAIR)
        Fixed bug when scanning rows
        More DBUG information
      storage/maria/ma_check.c:
        Partial rewrite to allow REPAIR of BLOCK/PAGE format.
        Repair of BLOCK format rows is for now only done with 'maria_repair()' (= repair through key cache)
        The new logic to repair rows with BLOCK format is:
        
        - Create new, unrelated MARIA_HA of the table
        - Create new datafile and associate it with new handler
        - Reset all statistic information in new handler
        - Copy all data to new handler with normal write operations
        - Move state of new handler to old handler
        - Close new handler
        - Close data file in old handler
        - Rename old data file to new data file.
        - Reopen data file in old handler
      storage/maria/ma_close.c:
        REmoved not needed block
      storage/maria/ma_create.c:
        Swap arguments to _ma_initialize_data_file()
      storage/maria/ma_delete_all.c:
        Split maria_delete_all_rows() to two functions to allow REPAIR to easily reset all status information.
      storage/maria/ma_dynrec.c:
        Added checksum argument to _ma_rec_check (multi-thread fix)
      storage/maria/ma_info.c:
        Indentation fix
      storage/maria/ma_init.c:
        Register error message to get better error message on init and when using as standalone module.
      storage/maria/ma_loghandler.c:
        Fixed typo that disabled some error detection by valgrind
      storage/maria/ma_open.c:
        Added 'calc_check_checksum()'
        Don't log things during repair
        Added option HA_OPEN_COPY to allow one to open a Maria table with an independent share (required by REPAIR)
      storage/maria/ma_pagecache.c:
        Fixed some compiler warnings
        Added support for PAGECACHE_READ_UNKNOWN_PAGE (used for scanning file without knowing page types)
      storage/maria/ma_test_all.sh:
        More test of REPAIR
      storage/maria/ma_update.c:
        Optimized checksum code
      storage/maria/maria_chk.c:
        Use DBUG_SET_INITIAL() to get DBUG to work with --parallel-repair
        Ensure we always use maria_repair() for BLOCK format (for now)
        More DBUG information
      storage/maria/maria_def.h:
        For now, always run with more checkings (SANITY_CHECKS)
        Added share->calc_check_checksum to be used with REPAIR / CHECK table.
        Swaped arguments to _ma_initialize_data_file()
      storage/myisam/ft_stopwords.c:
        Added DBUG information
      mysql-test/r/maria-connect.result:
        New BitKeeper file ``mysql-test/r/maria-connect.result''
      mysql-test/t/maria-connect.test:
        New BitKeeper file ``mysql-test/t/maria-connect.test''
      37a0005e
  7. 29 Jun, 2007 1 commit
  8. 28 Jun, 2007 1 commit
    • unknown's avatar
      WL#3239 "log CREATE TABLE in Maria": write the log record _before_ · 34d15a59
      unknown authored
      creating the data file, and sync this log, so that the table cannot be
      used if log record didn't reach disk. The same way, we force the log
      in DROP/RENAME TABLE. Also in REPAIR TABLE though logging in this
      case is not polished.
      Making DELETE FROM t <no WHERE> atomic: we log the record before
      starting the operation, and will finish this op at Recovery if needed.
      
      
      storage/maria/ma_check.c:
        comment. Force the log record for the log to have a complete history.
      storage/maria/ma_create.c:
        better conformance to the text of WL#3239 "log CREATE TABLE in Maria":
        write the log record before creating the data file. This ensures
        that the log can be applied to an old backup in all circumstances.
        errpos=2 was wrong.
      storage/maria/ma_delete_all.c:
        making DELETE FROM t <no WHERE> atomic: we log the record before
        starting the operation, and will finish the operation at Recovery
        if needed. Thus there is no need to force files to disk.
      storage/maria/ma_delete_table.c:
        forcing the log before dropping a table, so that the log has the
        entire history.
      storage/maria/ma_loghandler.c:
        LOGREC_REDO_DELETE_ALL needs to set trn's rec_lsn so that the log's
        low-water mark and Checkpoint retain this record until the 
        delete operation has finished.
      storage/maria/ma_rename.c:
        force the log before renaming a table, so that the log has a complete
        history.
      34d15a59
  9. 27 Jun, 2007 3 commits
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 · 9e5c1fd6
      unknown authored
      into  hynda.mysql.fi:/home/my/mysql-maria
      
      
      configure.in:
        Auto merged
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/view.test:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/net_serv.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      9e5c1fd6
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 · f2839e0f
      unknown authored
      into  hynda.mysql.fi:/home/my/mysql-maria
      
      
      BitKeeper/etc/ignore:
        auto-union
      Makefile.am:
        Auto merged
      BUILD/SETUP.sh:
        Auto merged
      BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
        Auto merged
      client/mysqldump.c:
        Auto merged
      include/Makefile.am:
        Auto merged
      include/m_string.h:
        Auto merged
      include/my_base.h:
        Auto merged
      include/my_dbug.h:
        Auto merged
      libmysql/CMakeLists.txt:
        Auto merged
      libmysql/Makefile.shared:
        Auto merged
      libmysqld/Makefile.am:
        Auto merged
      mysql-test/include/varchar.inc:
        Auto merged
      mysql-test/lib/mtr_cases.pl:
        Auto merged
      mysql-test/lib/mtr_io.pl:
        Auto merged
      mysql-test/lib/mtr_misc.pl:
        Auto merged
      mysql-test/mysql-test-run.pl:
        Auto merged
      mysql-test/lib/mtr_process.pl:
        Auto merged
      mysql-test/lib/mtr_report.pl:
        Auto merged
      mysql-test/r/events_logs_tests.result:
        Auto merged
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/disabled.def:
        Auto merged
      mysql-test/t/events_logs_tests.test:
        Auto merged
      mysql-test/t/myisam.test:
        Auto merged
      mysql-test/t/view.test:
        Auto merged
      mysys/Makefile.am:
        Auto merged
      mysys/my_create.c:
        Auto merged
      mysys/my_handler.c:
        Auto merged
      mysys/my_init.c:
        Auto merged
      mysys/my_open.c:
        Auto merged
      mysys/safemalloc.c:
        Auto merged
      plugin/daemon_example/daemon_example.cc:
        Auto merged
      sql/Makefile.am:
        Auto merged
      sql/filesort.cc:
        Auto merged
      sql/gen_lex_hash.cc:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/handler.cc:
        Auto merged
      sql/handler.h:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_func.h:
        Auto merged
      sql/log.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/opt_range.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/slave.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/sql_test.cc:
        Auto merged
      sql/udf_example.c:
        Auto merged
      sql/uniques.cc:
        Auto merged
      sql/unireg.cc:
        Auto merged
      storage/csv/ha_tina.cc:
        Auto merged
      storage/myisam/ft_boolean_search.c:
        Auto merged
      storage/myisam/ft_nlq_search.c:
        Auto merged
      storage/myisam/ft_parser.c:
        Auto merged
      storage/myisam/ft_stopwords.c:
        Auto merged
      storage/myisam/ft_update.c:
        Auto merged
      storage/myisam/fulltext.h:
        Auto merged
      storage/myisam/ha_myisam.h:
        Auto merged
      storage/myisam/mi_checksum.c:
        Auto merged
      storage/myisam/mi_create.c:
        Auto merged
      storage/myisam/mi_delete.c:
        Auto merged
      storage/myisam/mi_delete_all.c:
        Auto merged
      storage/myisam/mi_key.c:
        Auto merged
      storage/myisam/mi_log.c:
        Auto merged
      storage/myisam/mi_open.c:
        Auto merged
      storage/myisam/mi_range.c:
        Auto merged
      storage/myisam/mi_rkey.c:
        Auto merged
      storage/myisam/mi_rsamepos.c:
        Auto merged
      storage/myisam/mi_search.c:
        Auto merged
      storage/myisam/mi_test1.c:
        Auto merged
      storage/myisam/mi_test2.c:
        Auto merged
      storage/myisam/mi_unique.c:
        Auto merged
      storage/myisam/mi_update.c:
        Auto merged
      storage/myisam/myisamlog.c:
        Auto merged
      storage/myisam/myisampack.c:
        Auto merged
      storage/myisam/rt_index.c:
        Auto merged
      storage/myisam/sort.c:
        Auto merged
      storage/myisam/sp_test.c:
        Auto merged
      storage/myisammrg/ha_myisammrg.h:
        Auto merged
      storage/ndb/src/mgmapi/mgmapi.cpp:
        Auto merged
      unittest/Makefile.am:
        Auto merged
      BitKeeper/triggers/post-commit:
        Manual merge from mysql-5.1 to mysql-maria
      configure.in:
        Manual merge from mysql-5.1 to mysql-maria
      include/ft_global.h:
        Manual merge from mysql-5.1 to mysql-maria
      include/keycache.h:
        Manual merge from mysql-5.1 to mysql-maria
      include/my_atomic.h:
        Manual merge from mysql-5.1 to mysql-maria
      include/my_global.h:
        Manual merge from mysql-5.1 to mysql-maria
      include/my_sys.h:
        Manual merge from mysql-5.1 to mysql-maria
      include/myisam.h:
        Manual merge from mysql-5.1 to mysql-maria
      mysys/array.c:
        Manual merge from mysql-5.1 to mysql-maria
      mysys/mf_keycache.c:
        Manual merge from mysql-5.1 to mysql-maria
      mysys/mf_keycaches.c:
        Manual merge from mysql-5.1 to mysql-maria
      mysys/my_pread.c:
        Manual merge from mysql-5.1 to mysql-maria
      sql/mysqld.cc:
        Manual merge from mysql-5.1 to mysql-maria
      sql/net_serv.cc:
        Manual merge from mysql-5.1 to mysql-maria
      sql/set_var.cc:
        Manual merge from mysql-5.1 to mysql-maria
      sql/set_var.h:
        Manual merge from mysql-5.1 to mysql-maria
      sql/sql_class.h:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisam/ft_static.c:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisam/ha_myisam.cc:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisam/mi_check.c:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisam/mi_dynrec.c:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisam/mi_packrec.c:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisam/mi_write.c:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisam/myisamchk.c:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisam/myisamdef.h:
        Manual merge from mysql-5.1 to mysql-maria
      storage/myisammrg/ha_myisammrg.cc:
        Manual merge from mysql-5.1 to mysql-maria
      unittest/mysys/Makefile.am:
        Manual merge from mysql-5.1 to mysql-maria
      unittest/mysys/my_atomic-t.c:
        Manual merge from mysql-5.1 to mysql-maria
      f2839e0f
    • unknown's avatar
      WL#3072 - Maria recovery · e0c5a264
      unknown authored
      For this scenario: server crashes (could be because a table is
      corrupted) and Recovery repeatedly crashes on this table. User repairs
      it with maria_chk (as REPAIR TABLE is not possible), restarts the
      server, Recovery runs: for Recovery to not apply old REDOs to this
      repaired table (which would fail: rows have moved), maria_chk sets
      create_rename_lsn to the max value. Later when the server opens
      the table via ha_maria, it sets the LSN to the correct current value.
      
      
      storage/maria/ma_check.c:
        using helper function
      storage/maria/ma_create.c:
        A new helper function which stores the create_rename_lsn 
        into the table's header on disk when we cannot wait for this to happen
        naturally at a later _ma_state_info_write().
      storage/maria/ma_delete_all.c:
        using helper function; so log_data now can be FILEID_STORE_SIZE.
      storage/maria/ma_open.c:
        When opening a transactional table in the server, we discover
        if it has been repaired with maria_chk and if yes, give it a correct
        create_rename_lsn.
      storage/maria/ma_rename.c:
        using helper function
      storage/maria/maria_chk.c:
        By setting create_rename_lsn to the maximum possible LSN, maria_chk
        ensures that old REDOs are not applied to the new table it is
        going to produce.
      storage/maria/maria_def.h:
        new helper function
      e0c5a264
  10. 26 Jun, 2007 5 commits
    • unknown's avatar
      WL#3072 - Maria recovery · fab8b0a8
      unknown authored
      comments; remember the UNDO's LSN for storing it in pages when
      executing REDO's (to imitate what the runtime code does)
      
      
      storage/maria/maria_read_log.c:
        comments; remember the UNDO's LSN for storing it in pages when
        executing REDO's (to imitate what the runtime code does)
      fab8b0a8
    • unknown's avatar
      WL#3072 - Maria recovery · f99bae82
      unknown authored
      fixes for build failures; copyrights; small bugfixes and comments
      
      
      mysys/Makefile.am:
        missing .h breaks building from tarball
      storage/maria/ma_loghandler.c:
        applying Serg's bugfix of trnman_new_trid() to translog_assign_id_to_share()
      storage/maria/ma_loghandler.h:
        copyright
      storage/maria/ma_loghandler_lsn.h:
        copyright
      storage/maria/maria_read_log.c:
        fix for compiler warnings. Comments.
        Close tables when program ends.
      f99bae82
    • unknown's avatar
      WL#3072 - Maria recovery: safety assertions. · 61a3af38
      unknown authored
      
      storage/maria/maria_read_log.c:
        assertions to protect against future bugs (especially, to ensure
        that replaying DROP TABLE, if implemented, wouldn't leave open tables
        behind it)
      61a3af38
    • 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
    • unknown's avatar
      storage/maria/trnman.c · 79d36c8e
      unknown authored
          fix for architectures not supported by my_atomic.h
          we cannot iterate the array over and over without releasing a lock
      
      
      storage/maria/trnman.c:
        fix for architectures not supported by my_atomic.h
        we cannot iterate the array over and over without releasing a lock
      79d36c8e
  11. 25 Jun, 2007 12 commits