1. 22 Jun, 2007 1 commit
    • unknown's avatar
      - WL#3239 "log CREATE TABLE in Maria" · 1a962591
      unknown authored
      - WL#3240 "log DROP TABLE in Maria"
      - similarly, log RENAME TABLE, REPAIR/OPTIMIZE TABLE, and
      DELETE no_WHERE_clause (== the DELETE which just truncates the files)
      - create_rename_lsn added to MARIA_SHARE's state
      - all these operations (except DROP TABLE) also update the table's
      create_rename_lsn, which is needed for the correctness of
      Recovery (see function comment of _ma_repair_write_log_record()
      in ma_check.c)
      - write a COMMIT record when transaction commits.
      - don't log REDOs/UNDOs if this is an internal temporary table
      like inside ALTER TABLE (I expect this to be a big win). There was
      already no logging for user-created "CREATE TEMPORARY" tables.
      - don't fsync files/directories if the table is not transactional
      - in translog_write_record(), autogenerate a 2-byte-id for the table
      and log the "id->name" pair (LOGREC_FILE_ID); log
      LOGREC_LONG_TRANSACTION_ID; automatically store
      the table's 2-byte-id in any log record.
      - preparations for Checkpoint: translog_get_horizon(); pausing Checkpoint
      when some dirty pages are unknown; capturing trn->rec_lsn,
      trn->first_undo_lsn for Checkpoint and log's low-water-mark computing.
      - assertions, comments.
      
      
      storage/maria/Makefile.am:
        more files to build
      storage/maria/ha_maria.cc:
        - logging a REPAIR log record if REPAIR/OPTIMIZE was successful.
        - ha_maria::data_file_type does not have to be set in every info()
        call, just do it once in open().
        - if caller said that transactionality can be disabled (like if
        caller is ALTER TABLE) i.e. thd->transaction.on==FALSE, then we
        temporarily disable transactionality of the table in external_lock();
        that will ensure that no REDOs/UNDOs are logged for this possibly
        massive write operation (they are not needed, as if any write fails,
        the table will be dropped). We re-enable in external_lock(F_UNLCK),
        which in ALTER TABLE happens before the tmp table replaces the original
        one (which is good, as thus the final table will have a REDO RENAME
        and a correct create_rename_lsn).
        - when we commit we also have to write a log record, so
        trnman_commit_trn() calls become ma_commit() calls
        - at end of engine's initialization, we are potentially entering a
        multi-threaded dangerous world (clients are going to be accepted)
        and so some assertions of mutex-owning become enforceable, for that
        we set maria_multi_threaded=TRUE (see ma_control_file.c)
      storage/maria/ha_maria.h:
        new member ha_maria::save_transactional (see also ha_maria.cc)
      storage/maria/ma_blockrec.c:
        - fixing comments according to discussion with Monty
        - if a table is transactional but temporarily non-transactional
        (like in ALTER TABLE), we need to give a sensible LSN to the pages
        (and, if we give 0, pagecache asserts).
        - translog_write_record() now takes care of storing the share's
        2-byte-id in the log record
      storage/maria/ma_blockrec.h:
        fixing comment according to discussion with Monty
      storage/maria/ma_check.c:
        When REPAIR/OPTIMIZE modify the data/index file, if this is a
        transactional table, they must sync it; if they remove files or rename
        files, they must sync the directory, so that everything is durable.
        This is just applying to REPAIR/OPTIMIZE the logic already implemented
        in CREATE/DROP/RENAME a few months ago.
        Adding a function to write a LOGREC_REPAIR_TABLE at end of
        REPAIR/OPTIMIZE (called only by ha_maria, not by maria_chk), and
        to update the table's create_rename_lsn.
      storage/maria/ma_close.c:
        fix for a future bug
      storage/maria/ma_control_file.c:
        ensuring that if Maria is running in multi-threaded mode, anybody
        wanting to write to the control file and update
        last_checkpoint_lsn/last_logno owns the log's lock.
      storage/maria/ma_control_file.h:
        see ma_control_file.c
      storage/maria/ma_create.c:
        when creating a table:
        - sync it and its directory only if this is a transactional table
        and there is a log (no point in syncing in maria_chk)
        - decouple the two uses of linkname/linkname_ptr (for index file and
        for data file) into more variables, as we need to know all links
        until the moment we write the LOGREC_CREATE_TABLE.
        - set share.data_file_type early so that _ma_initialize_data_file()
        knows it (Monty's bugfix so that a table always has at least a bitmap
        page when it is created; so data-file is not 0 bytes anymore).
        - log a LOGREC_CREATE_TABLE; it contains the bytes which we have
        just written to the index file's header. Update table's
        create_rename_lsn.
        - syncing of kfile had been bugified in a previous merge, correcting
        - syncing of dfile is now needed as it's not empty anymore
        - in _ma_initialize_data_file(), use share's block_size and not the
        global one. This is a gratuitous change, both variables are equal,
        just that I find it more future-proof to use share-bound variable
        rather than global one.
      storage/maria/ma_delete_all.c:
        log a LOGREC_DELETE_ALL record when doing ma_delete_all_rows();
        update create_rename_lsn then.
      storage/maria/ma_delete_table.c:
        - logging LOGREC_DROP_TABLE; knowing if this is needed, requires
        knowing if the table is transactional, which requires opening the
        table.
        - we need to sync directories only if the table is transactional
      storage/maria/ma_extra.c:
        questions
      storage/maria/ma_init.c:
        when maria_end() is called, engine is not multithreaded
      storage/maria/ma_loghandler.c:
        - translog_inited has to be visible to ma_create() (see how it is used
        in ma_create())
        - checkpoint record will be a single record, not three
        - no REDO for TRUNCATE (TRUNCATE calls ma_create() internally so will
        log a REDO_CREATE)
        - adding REDO for DELETE no_WHERE_clause (fast DELETE of all rows by
        truncating the files), REPAIR.
        - MY_WAIT_IF_FULL to wait&retry if a log write hits a full disk
        - in translog_write_record(), if MARIA_SHARE does not yet have a
        2-byte-id, generate one for it and log LOGREC_FILE_ID; automatically
        store this short id into log records.
        - in translog_write_record(), if transaction has not logged its
        long trid, log LOGREC_LONG_TRANSACTION_ID.
        - For Checkpoint, we need to know the current end-of-log: adding
        translog_get_horizon().
        - For Control File, adding an assertion that the thread owns the
        log's lock (control file is protected by this lock)
      storage/maria/ma_loghandler.h:
        Changes in log records (see ma_loghandler.c).
        new prototypes, new functions.
      storage/maria/ma_loghandler_lsn.h:
        adding a type LSN_WITH_FLAGS especially for TRN::first_undo_lsn,
        where the most significant byte is used for flags.
      storage/maria/ma_open.c:
        storing the create_rename_lsn in the index file's header (in the
        state, precisely) and retrieving it from there.
      storage/maria/ma_pagecache.c:
        - my set_if_bigger was wrong, correcting it
        - if the first_in_switch list is not empty, it means that
        changed_blocks misses some dirty pages, so Checkpoint cannot run and
        needs to wait. A variable missing_blocks_in_changed_list is added to
        tell that (should it be named missing_blocks_in_changed_blocks?)
        - pagecache_collect_changed_blocks_with_lsn() now also tells the
        minimum rec_lsn (needed for low-water mark computation).
      storage/maria/ma_pagecache.h:
        see ma_pagecache.c
      storage/maria/ma_panic.c:
        comment
      storage/maria/ma_range.c:
        comment
      storage/maria/ma_rename.c:
        - logging LOGREC_RENAME_TABLE; knowing if this is needed, requires
        knowing if the table is transactional, which requires opening the
        table.
        - update create_rename_lsn
        - we need to sync directories only if the table is transactional
      storage/maria/ma_static.c:
        comment
      storage/maria/ma_test_all.sh:
        - tip for Valgrind-ing ma_test_all
        - do "export maria_path=somepath" before calling ma_test_all,
        if you want to run ma_test_all out of storage/maria (useful
        to have parallel runs, like one normal and one Valgrind, they
        must not use the same tables so need to run in different directories)
      storage/maria/maria_def.h:
        - state now contains, in memory and on disk, the create_rename_lsn
        - share now contains a 2-byte-id
      storage/maria/trnman.c:
        preparations for Checkpoint: capture trn->rec_lsn, trn->first_undo_lsn;
        minimum first_undo_lsn needed to know log's low-water-mark
      storage/maria/trnman.h:
        using most significant byte of first_undo_lsn to hold miscellaneous
        flags, for now TRANSACTION_LOGGED_LONG_ID.
        dummy_transaction_object is already declared in ma_static.c.
      storage/maria/trnman_public.h:
        dummy_transaction_object was declared in all files including
        trnman_public.h, while in fact it's a single object.
        new prototype
      storage/maria/unittest/ma_test_loghandler-t.c:
        update for new prototype
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        update for new prototype
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        update for new prototype
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        update for new prototype
      storage/maria/ma_commit.c:
        function which wraps:
        - writing a LOGREC_COMMIT record (==commit on disk)
        - calling trnman_commit_trn() (=commit in memory)
      storage/maria/ma_commit.h:
        new header file
      .tree-is-private:
        this file is now needed to keep our tree private (don't push it
        to public trees). When 5.1 is merged into mysql-maria, we can abandon
        our maria-specific post-commit trigger; .tree_is_private will take
        care of keeping commit mails private. Don't push this file to public
        trees.
      1a962591
  2. 19 Jun, 2007 1 commit
    • unknown's avatar
      Monty's fix for Maria's table scan sometimes not seeing all rows; · fd9bd580
      unknown authored
      without the fix, only 896 rows were inserted into t2 in maria-big.test.
      
      
      storage/maria/ma_blockrec.c:
        due to wrong test we were skipping some rows when scanning
      mysql-test/r/maria-big.result:
        result for new test
      mysql-test/t/maria-big.test:
        test for a bug where we missed some rows when scanning
      fd9bd580
  3. 15 Jun, 2007 1 commit
    • unknown's avatar
      Postmerge changes · 9f903637
      unknown authored
      
      storage/maria/unittest/ma_test_loghandler-t.c:
        Spaces at the end of the line removed.
        Parameters of translog_write_record() fixed.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Parameters of translog_write_record() fixed.
      9f903637
  4. 14 Jun, 2007 2 commits
    • unknown's avatar
      Merge desktop.sanja.is.com.ua:/home/bell/mysql/bk/mysql-maria · 98e80921
      unknown authored
      into  desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria-lsn
      
      
      storage/maria/ma_loghandler.h:
        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/maria/ma_loghandler.c:
        merge
      storage/maria/unittest/ma_test_loghandler-t.c:
        merge
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        merge
      98e80921
    • unknown's avatar
      Fixed LSN codding to allow code all · c548715c
      unknown authored
        relative LSN independed on "distance".
      Added support for test record descriptors to avoid
        interfere woth real record descriptors.
      Fixed descriptor of pseudofixed length record length,
        now it is length of record passed from/to client of
        the loghandler.
      
      
      BitKeeper/etc/ignore:
        Added storage/maria/unittest/ma_test_loghandler_long-t-big to the ignore list
      storage/maria/ma_init.c:
        Removed loghandler_init call because it is present in translog_init()
      storage/maria/ma_loghandler.c:
        Fixed LSN codding to allow code all
          relative LSN independed on "distance".
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
        Fixed length of LOGREC_REDO_INSERT_ROW_TAIL.
        Fixed descriptor of pseudofixed length record length,
          now it is length of record passed from/to client of
          the loghandler.
      storage/maria/ma_loghandler.h:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      storage/maria/unittest/Makefile.am:
        Made new test for log with reference over 63 files.
        Layout fixed.
      storage/maria/unittest/ma_test_loghandler-t.c:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Added support for test record descriptors to avoid
          interfere woth real record descriptors.
      c548715c
  5. 11 Jun, 2007 3 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-maria · 0fdfe5cd
      unknown authored
      into  gbichot3.local:/home/mysql_src/mysql-maria
      
      
      storage/maria/ma_loghandler.c:
        Auto merged
      0fdfe5cd
    • unknown's avatar
      - moving pagecache.h from include/ to storage/maria as it is Maria- · 704b39a1
      unknown authored
      specific
      - adding TRN::first_undo_lsn, needed to know when a log can be deleted;
      this variable must be set under log's mutex and that leads to setting
      TRN::rec_lsn, TRN::undo_lsn and TRN::first_undo_lsn in a
      inwrite_rec_hook; adding implementation of one hook for REDOs and one
      for UNDOs. Thus translog_write_record() always uses TRN and so does
      not need a short_id argument, can find it from TRN.
      - Monty's patch for the last Valgrind error in the tree.
      - Log handler's unit tests fail but Sanja says it's known
      
      
      include/Makefile.am:
        pagecache.h moved and renamed
      include/maria.h:
        pagecache.h moved and renamed
      sql/handler.h:
        pagecache.h moved and renamed
      storage/maria/Makefile.am:
        pagecache.h moved and renamed
      storage/maria/ha_maria.cc:
        adding an assertion which sounds logical
      storage/maria/ma_blockrec.c:
        trn->rec_lsn and trn->undo_lsn are now set via hooks inside the log
        record's writing; this allows to also set trn->first_undo_lsn
        needed to compute the log's low-water mark.
        The PAGERANGE_STORE_SIZE -> PAGE_STORE_SIZE is Monty's fix to a
        Valgrind error.
      storage/maria/ma_loghandler.c:
        "tcb" renamed to "trn". Log handler now knows what is a transaction,
        and finds short_id from trn. trn's rec_lsn, undo_lsn, first_undo_lsn
        are now set by some inwrite_rec_hookS (one for REDOs, one for UNDOs).
        The HAVE_purify blocks are Monty's fix to a Valgrind error.
      storage/maria/ma_loghandler.h:
        Log handler functions use TRN, that needs a forward declaration
      storage/maria/ma_pagecache.c:
        pagecache.h was moved and renamed
      storage/maria/ma_pagecache.h:
        pagecache.h was moved and renamed
      storage/maria/ma_pagecaches.c:
        pagecache.h was moved and renamed
      storage/maria/trnman.c:
        initializing some members of TRN.
      storage/maria/trnman.h:
        TRN::first_undo_lsn needed for log's low-water mark calculation
        (which will serve to know which logs can be deleted)
      storage/maria/unittest/ma_test_loghandler-t.c:
        translog_write_record() now needs a valid TRN
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        translog_write_record() now needs a valid TRN
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        translog_write_record() now needs a valid TRN
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        translog_write_record() now needs a valid TRN
      storage/maria/unittest/test_file.h:
        pagecache.h was moved and renamed
      704b39a1
    • unknown's avatar
      Small fixes of loghandler code found during a bug investigation. · 2170c73e
      unknown authored
      
      storage/maria/ma_loghandler.c:
        Variable length record descriptor fixed.
        Assignment of file number moved out of the loop.
      2170c73e
  6. 09 Jun, 2007 1 commit
    • unknown's avatar
      Fixed compiler warnings · fdfb5148
      unknown authored
      Fixed bug in ma_dbug.c that gave valgrind warning (only relevant when using --debug)
      Fixed bug in blob logging (Fixes valgrind warning)
      maria_getint() -> maria_data_on_page()
      
      
      mysys/safemalloc.c:
        Added debug function to print out where a piece of memory was allocated
      sql/opt_range.cc:
        Remove DBUG_PRINT of unitailized memory
      storage/maria/ma_blockrec.c:
        Fixed bug in blob logging
      storage/maria/ma_check.c:
        Fixed compiler warning
      storage/maria/ma_dbug.c:
        Added missed end++; Caused usage of unitialized memory for nullable keys that was not NULL
      storage/maria/ma_delete.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_init.c:
        Added header file to get rid of warning
      storage/maria/ma_key.c:
        More debugging
      storage/maria/ma_loghandler.c:
        Removed some wrong ';' to get rid of compiler errors when compiling without debugging
        Indentation fixes
        Removed not needed 'break's
        Fixed some compiler warnings
        Added code to detect logging of unitialized memory
      storage/maria/ma_page.c:
        maria_getint() -> maria_data_on_page()
        Clear rest of index page before writing when used with valgrind
        (Fixes warning of writing pages with unitialized data)
      storage/maria/ma_range.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_rt_index.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_rt_index.h:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_rt_key.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_rt_split.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_search.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/ma_test1.c:
        Fixed compiler warning
      storage/maria/ma_write.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/maria_chk.c:
        maria_getint() -> maria_data_on_page()
      storage/maria/maria_def.h:
        maria_getint() -> maria_data_on_page()
      storage/maria/unittest/ma_pagecache_consist.c:
        Fixed compiler warning
      storage/maria/unittest/ma_pagecache_single.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler-t.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Fixed compiler warning
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Fixed compiler warning
      storage/myisam/mi_dbug.c:
        Added missed end++; Caused usage of unitialized memory for nullable keys that was not NULL
      fdfb5148
  7. 08 Jun, 2007 1 commit
    • unknown's avatar
      - if table is not transactional, we don't create a transaction · e30e21f0
      unknown authored
      - if table is temporary it's not crash-safe so we declare it
      non-transactional (saves trnman calls, REDO/UNDO log writing,
      and fixes the assertion failure at the first line of trnman_destroy()).
      
      
      storage/maria/ha_maria.cc:
        if table is not transactional, no need to create a transaction:
        - it saves trnman calls (mutex locks etc)
        - it saves REDO and UNDO log writing
        - it closes a bug: if this is a temporary table, external_lock(F_RD|WRLCK)
        is not always paired with external_lock(F_UNLCK), which confuses the
        transaction logic in external_lock. As temp tables are not crash-safe
        and so not transactional in this Maria version, we skip transactions
        and de-confuse. Note that maria_lock_database(F_UNLCK) is
        properly called, so if the transaction logic moves from external_lock()
        to maria_lock_database() (probably TODO), transactional temp tables
        will be possible.
      storage/maria/ma_create.c:
        temporary tables cannot be crash-safe as they are dropped at restart
      storage/maria/maria_def.h:
        comment
      e30e21f0
  8. 07 Jun, 2007 3 commits
    • unknown's avatar
      fix for memory leak in _ma_scan_init_block_record() (Valgrind error): · f5f2a8a1
      unknown authored
      make Maria support multiple calls to rnd_init() without an rnd_end()
      call in between.
      
      
      storage/maria/ma_blockrec.c:
        as explained in sql/handler.h, multiple calls to rnd_init() without
        a rnd_end() in between, are possible, and engine must be prepared to
        that. So in _ma_scan_init_block_record(), we allocate a buffer
        only if we have not yet one.
      f5f2a8a1
    • unknown's avatar
      Maria: fix for "use of uninitialized value" Valgrind error. · bb4a7ad5
      unknown authored
      
      storage/maria/ha_maria.cc:
        initialize ha_maria::data_file_type when opening the table
        (it was not initialized, causing a Valgrind error)
      storage/maria/ma_locking.c:
        if it's impossible, let's test it
      bb4a7ad5
    • unknown's avatar
      fix for 2 memory leaks in ps_maria.test (just need to destroy objects · 84109503
      unknown authored
      allocated at startup).
      
      
      storage/maria/ma_init.c:
        destroy transaction manager and log's pagecache when Maria shuts down
      storage/maria/trnman.c:
        short_trid_to_active_trn!=NULL now serves to detect if
        trnman has initialized some objects and so if trnman_destroy()
        has objects to destroy. In other words, short_trid_to_active_trn
        serves as "trnman_inited" variable.
        trnman_destroy() is always called by maria_end(), but trnman_init() is
        not always called (for example in ma_test1), that's why
        trnman_destroy() cannot blindly destroy.
      84109503
  9. 06 Jun, 2007 4 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · ecb81668
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      storage/maria/ha_maria.cc:
        Auto merged
      storage/maria/ma_pagecache.c:
        Auto merged
      ecb81668
    • unknown's avatar
      rec_lsn (first REDO LSN( is now given to the page cache on unpinning · 42cde8a7
      unknown authored
      Added maria_clone(), needed by future REPAIR code
      
      
      storage/maria/unittest/ma_pagecache_consist.c:
        Change mode to -rw-rw-r--
      storage/maria/unittest/lockman-t.c:
        Change mode to -rw-rw-r--
      storage/maria/unittest/lockman1-t.c:
        Change mode to -rw-rw-r--
      storage/maria/unittest/lockman2-t.c:
        Change mode to -rw-rw-r--
      storage/maria/unittest/trnman-t.c:
        Change mode to -rw-rw-r--
      include/maria.h:
        Added prototype for maria_clone (for future)
      storage/maria/ha_maria.cc:
        Move filename to share structure
      storage/maria/ma_blockrec.c:
        rec_lsn (first REDO LSN( is now given to the page cache on unpinning
        Removed impossible lock handling in get_head_or_tail_page()
        Changed calls ot translog_write_record() to remember rec_lsn
        Removed some logging in csse of not transactions
      storage/maria/ma_delete.c:
        info->filename -> info->s->open_file_name
      storage/maria/ma_loghandler.c:
        Indentation fixes
      storage/maria/ma_open.c:
        Added maria_clone(), needed by future REPAIR code
      storage/maria/ma_packrec.c:
        Fixed typo in comment
      storage/maria/ma_pagecache.c:
        Added comment.
        Allow setting REC_LSN in case of read lock
      storage/maria/ma_update.c:
        info->filename -> info->s->open_file_name
      storage/maria/ma_write.c:
        info->filename -> info->s->open_file_name
      storage/maria/maria_def.h:
        info->filename -> info->s->open_file_name
        Added have_rtree to simplify test in ma_clone()
      storage/maria/maria_ftdump.c:
        info->filename -> info->s->open_file_name
      storage/maria/maria_pack.c:
        info->filename -> info->s->open_file_name
      storage/maria/trnman.h:
        Added rec_lsn
      42cde8a7
    • unknown's avatar
      Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-maria · 1693a57c
      unknown authored
      into  desktop.sanja.is.com.ua:/home/bell/mysql/bk/mysql-maria
      
      
      1693a57c
    • unknown's avatar
      Fixed pagecache unittest · 1a7ee974
      unknown authored
      
      storage/maria/ma_pagecache.c:
        - remove_reader() call is removed from unlock/unpin operations
          which uses direct link (because find_block() was not called)
        - patch which broke pagecache unittest is reverted
      1a7ee974
  10. 05 Jun, 2007 6 commits
  11. 04 Jun, 2007 1 commit
    • unknown's avatar
      Fixed that ma_test_all works with -T (simple transaction/logging support) · ffe437be
      unknown authored
      Some fixes from Sanja
      
      
      BitKeeper/etc/ignore:
        added storage/maria/maria_log.*
      include/pagecache.h:
        Always have enum PAGECACHE_EMPTY_PAGE available
        (Simpler code)
      storage/maria/ma_bitmap.c:
        Reset 'debugging' bitmap when creating new one (fixes valgrind warning)
      storage/maria/ma_blockrec.c:
        Removed duplicate (wrong) initialization
        Reset not initialized variable
      storage/maria/ma_check.c:
        Use right page type
        (Patch from Sanja)
      storage/maria/ma_init.c:
        Reset logging in maria_end()
        (Fixes memory leak)
      storage/maria/ma_loghandler.c:
        Add missing copyright header
        Added checking of duplicate calls or calls without init to translog_destroy()
        Don't lock mutex before destroying them (not needed as you can't use a destroyed mutex anyway)
      storage/maria/ma_pagecache.c:
        Added extra page type text
        Trivial indentation fixes
      storage/maria/ma_test1.c:
        Added transaction setup
        (Patch from Sanja)
      storage/maria/ma_test2.c:
        Added transaction setup
        (Patch from Sanja)
      ffe437be
  12. 29 May, 2007 1 commit
    • unknown's avatar
      This patch is a collection of patches from from Sanja, Sergei and Monty. · 8f39541e
      unknown authored
      Added logging and pinning of pages to block format.
      Integration of transaction manager, log handler.
      Better page cache intergration
      Split trnman.h into two files, so that we don't have to include my_atomic.h into C++ programs.
      Renaming of structures, more comments, more debugging etc.
      Fixed problem with small head block + long varchar.
      Added extra argument to delete_record() and update_record() (needed for UNDO logging)
      Small changes to interface of pagecache and log handler.
      Change initialization of log_record_type_descriptors to not be depending on enum order.
      Use array of LEX_STRING's to send data to log handler
      Added 'dummy' transaction option to MARIA_INFO so that we can always assume 'trn' exists.
      
      
      include/lf.h:
        Interface fixes
        Rename of structures
        (Patch from Sergei via Sanja)
      include/my_atomic.h:
        More comments
      include/my_global.h:
        Added MY_ERRPTR
      include/pagecache.h:
        Added undo LSN when unlocking pages
      mysql-test/r/maria.result:
        Updated results
      mysql-test/t/maria.test:
        Added autocommit around lock tables
        (Patch from Sanja)
      mysys/lf_alloc-pin.c:
        Post-review fixes, simple optimizations
        More comments
        Struct slot renames
        Check amount of memory on stack
        (Patch from Sergei)
      mysys/lf_dynarray.c:
        More comments
      mysys/lf_hash.c:
        More comments
        After review fixes
        (Patch from Sergei)
      storage/maria/ha_maria.cc:
        Split trnman.h into two files, so that we don't have to include my_atomic.h into the .cc program.
        (Temporary fix to avoid bug in gcc)
        Move out all deferencing of the transaction structure.
        Transaction manager integrated (Patch from Sergei)
      storage/maria/ha_maria.h:
        Added prototype for start_stmt()
      storage/maria/lockman.c:
        Function call rename
      storage/maria/ma_bitmap.c:
        Mark deleted pages free from page cache
      storage/maria/ma_blockrec.c:
        Offset -> rownr
        More debugging
        Fixed problem with small head block + long varchar
        Added logging of changed pages
        Added logging of undo (Including only loggging of changed fields in case of update)
        Added pinning/unpinning of all changed pages
        More comments
        Added free_full_pages() as the same code was used in several places.
        fill_rows_parts() renamed as fill_insert_undo_parts()
        offset -> rownr
        Added some optimization of not transactional tables
        _ma_update_block_record() has new parameter, as we need original row to do efficent undo for update
      storage/maria/ma_blockrec.h:
        Added ROW_EXTENTS_ON_STACK
        Changed prototype for update and delete of row
      storage/maria/ma_check.c:
        Added original row to delete_record() call
      storage/maria/ma_control_file.h:
        Added ifdefs for C++
      storage/maria/ma_delete.c:
        Added original row to delete_record() call
        (Needed for efficent undo logging)
      storage/maria/ma_dynrec.c:
        Added extra argument to delete_record() and update_record()
        Removed not used variable
      storage/maria/ma_init.c:
        Initialize log handler
      storage/maria/ma_loghandler.c:
        Removed not used variable
        Change initialization of log_record_type_descriptors to not be depending on enum order
        Use array of LEX_STRING's to send data to log handler
      storage/maria/ma_loghandler.h:
        New defines
        Use array of LEX_STRING's to send data to log handler
      storage/maria/ma_open.c:
        Added 'dummy' transaction option to MARIA_INFO so that we can always assume 'trn' exists.
        Store in MARIA_SHARE->page_type if pages will have up to date LSN's
      storage/maria/ma_pagecache.c:
        Don't decrease number of readers when using pagecache_write()/pagecache_read()
        In pagecache_write() decrement request count if page was left pinned
        Added pagecache_delete_pages()
        Removed some casts
        Make trace output consistent with rest of code
        Simplify calling of DBUG_ASSERT(0)
        Only update LSN if the LSN is bigger than what's already on the page
        Added LSN parameter pagecache_unpin_page(), pagecache_unpin(), and pagecache_unlock()
        (Part of patch from Sanja)
      storage/maria/ma_static.c:
        Added 'dummy' transaction option to MARIA_INFO so that we can always assume 'trn' exists.
        Added default page cache
      storage/maria/ma_statrec.c:
        Added extra argument to delete_record() and update_record()
      storage/maria/ma_test1.c:
        Added option -T for transactions
      storage/maria/ma_test2.c:
        Added option -T for transactions
      storage/maria/ma_test_all.sh:
        Test with transactions
      storage/maria/ma_update.c:
        Changed prototype for update of row
      storage/maria/maria_def.h:
        Changed prototype for update & delete of row as block records need to access the old row
        Store in MARIA_SHARE->page_type if pages will have up to date LSN's
        Added MARIA_MAX_TREE_LEVELS to allow us to calculate the number of possible pinned pages we may need.
        Removed not used 'empty_bits_buffer'
        Added pointer to transaction object
        Added array for pinned pages
        Added log_row_parts array for logging of field data.
        Added MARIA_PINNED_PAGE to store pinned pages
      storage/maria/trnman.c:
        Added accessor functions to transaction object
        Added missing DBUG_RETURN()
        More debugging
        More comments
        Changed // comment of code to #ifdef NOT_USED
        Transaction manager integrated.
        Post review fixes
        Part of patch originally from Sergei
      storage/maria/trnman.h:
        Split trnman.h into two files, so that we don't have to include my_atomic.h into the .cc program.
        (Temporary fix to avoid bug in gcc)
      storage/maria/unittest/ma_pagecache_single.c:
        Added missing argument
        Added SKIP_BIG_TESTS
        (Patch from Sanja)
      storage/maria/unittest/ma_test_loghandler-t.c:
        Test logging with new LEX_STRING parameter
        (Patch from Sanja)
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Test logging with new LEX_STRING parameter
        (Patch from Sanja)
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Test logging with new LEX_STRING parameter
        (Patch from Sanja)
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Test logging with new LEX_STRING parameter
        (Patch from Sanja)
      storage/maria/unittest/trnman-t.c:
        Stack overflow detection
        (Patch from Sergei)
      unittest/unit.pl:
        Command-line options --big and --verbose
        (Patch from Sergei)
      unittest/mytap/tap.c:
        Detect --big
        (Patch from Sergei)
      unittest/mytap/tap.h:
        Skip_big_tests and SKIP_BIG_TESTS
        (Patch from Sergei)
      storage/maria/trnman_public.h:
        New BitKeeper file ``storage/maria/trnman_public.h''
      8f39541e
  13. 25 Apr, 2007 1 commit
  14. 20 Apr, 2007 1 commit
  15. 19 Apr, 2007 3 commits
    • unknown's avatar
      After merge fixes · 6686a3ee
      unknown authored
      Read blocks through page cache in check_block_record()
      Don't read first bitmap on ma_open()
      Don't require that a files block_size is equal to maria_block_size, if page cache is not setup yet.
      Changed ma_test1, ma_test2, maria_chk and maria_pack to always create a page cache.
      The above fixes so that ma_test_all now works again
      
      
      
      BitKeeper/etc/ignore:
        added storage/maria/unittest/ma_pagecache_consist_1k-t-big storage/maria/unittest/ma_pagecache_consist_1kHC-t-big storage/maria/unittest/ma_pagecache_consist_1kRD-t-big storage/maria/unittest/ma_pagecache_consist_1kWR-t-big storage/maria/unittest/ma_pagecache_consist_64k-t-big storage/maria/unittest/ma_pagecache_consist_64kHC-t-big storage/maria/unittest/ma_pagecache_consist_64kRD-t-big storage/maria/unittest/ma_pagecache_consist_64kWR-t-big storage/maria/unittest/ma_pagecache_single_64k-t-big
      include/maria.h:
        Added MARIA_MIN_PAGE_CACHE_SIZE
      include/pagecache.h:
        Filedescriptors should be of type File
      storage/maria/ma_bitmap.c:
        After merge fixes
        Create dummy bitmap on startup (can't read first bitmap becasue page cache may not be set up yet)
      storage/maria/ma_blockrec.c:
        After merge fixes
      storage/maria/ma_check.c:
        Use page cache to read rows-in-block rows.
        Don't initialize page cache; It's now done in maria_chk
      storage/maria/ma_dynrec.c:
        Trivial code reorganization
      storage/maria/ma_open.c:
        Don't give error for conflicting block size if page cache is not initalized.
        (Needed for maria_chk to be able to work on tables with different page sizes)
        After merge fixes
      storage/maria/ma_page.c:
        Fix compiler warning
        Remove net needed asserts (Guranteed by ma_create())
      storage/maria/ma_pagecache.c:
        Allow one to create a page cache with just one block
        (For trivail scan of table)
        Trivial code simplication
      storage/maria/ma_test1.c:
        Always create a page cache (Maria now requires a page cache to work)
      storage/maria/ma_test2.c:
        Always create a page cache (Maria now requires a page cache to work)
      storage/maria/maria_chk.c:
        Remove command line options --maria_block_size and --pagecache_block_size.
        Set the global maria_block_size from the data file. This allows maria_chk to work with tables of different block sizes.
        Simply DESCRIPT handling; Allows us to remove one indentation level in maria_chk().
        Always initialize page cache if we are doing check/repair.
        (Most of the patch is reindentation of the code)
      storage/maria/maria_def.h:
        After merge fix
      storage/maria/maria_pack.c:
        Set maria_block_size based on the files block_size.
        Initalize page cache (needed for getting rows-in-blocks to works)
      6686a3ee
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · ac0f98dd
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      include/maria.h:
        Auto merged
      storage/maria/ha_maria.cc:
        Auto merged
      storage/maria/ma_bitmap.c:
        Auto merged
      storage/maria/ma_check.c:
        Auto merged
      storage/maria/ma_dynrec.c:
        Auto merged
      storage/maria/ma_info.c:
        Auto merged
      storage/maria/ma_open.c:
        Auto merged
      storage/maria/ma_packrec.c:
        Auto merged
      storage/maria/ma_page.c:
        Auto merged
      storage/maria/ma_test1.c:
        Auto merged
      storage/maria/ma_test2.c:
        Auto merged
      storage/maria/ma_write.c:
        Auto merged
      storage/maria/maria_chk.c:
        Auto merged
      storage/maria/maria_pack.c:
        Auto merged
      storage/maria/ma_blockrec.c:
        Manual merge
      storage/maria/ma_close.c:
        Manual merge
      storage/maria/maria_def.h:
        Manual merge
      ac0f98dd
    • unknown's avatar
      Fixes after review of guilhem of block record patch · eb7d9500
      unknown authored
      Short overview:
      Changed a lot of variable, functions, defines and struct elements to use more readable names
      More comments (mostly function and structure slot comments)
      
      Other things:
      Changed 'USE_WHOLE_KEY' to a big number to not interfer with long keys
      Ensure that tail block are at least of size 'MIN_TAIL_SIZE'
      Allow longer keys and key parts than before (don't limit Maria interface by HA_MAX_KEY_LENGTH)
      Use ma_chsize() to write initial bitmap page
      Added checking if using file with wrong block_size
      Added issing types to type_names[] (for maria_chk -d)
      Added maria_max_key_length()
      
      
      include/maria.h:
        Changed maria_portable_size_char_ptr to portable_size_char_ptr and moved it to my_handler.h
        Removed not used variable maria_delay_rec_write.
        More comments
      include/my_handler.h:
        Added portable_sizeof_char_ptr
      include/myisam.h:
        Changed mi_portable_size_char_ptr to portable_size_char_ptr and moved it to my_handler.h
      mysql-test/r/maria.result:
        Fix results when we now have a longer key length
      mysql-test/t/maria.test:
        More tests
      mysys/my_pread.c:
        Code cleanup
      sql/net_serv.cc:
        Changed warning to note (as in main 5.1 tree) to avoid not critical failing tests
      sql/sql_select.cc:
        Use portable_sizeof_char_ptr
      storage/maria/ha_maria.cc:
        Added max_supported_key_length(), as this is not a trival function anymore
      storage/maria/ha_maria.h:
        Moved max_supported_key_length(), as this is not a trival function anymore
      storage/maria/ma_bitmap.c:
        Lots of new comments
        Added maria_bitmap_marker[] to mark 2 last bytes of each bitmap (for corruption detection)
        Trivial code changes (based on review comments)
      storage/maria/ma_blockrec.c:
        More code comments
        Renamed _block_row() functions to _block_record()
        Trivial code changes, based on review comments
        Moved Code from maria_close() to _ma_end_block_record()
        Some function renames to make things more understandable
        DIR_ENTRY_OFFSET -> DIR_COUNT_OFFSET
        keybuff_used -> keyread_buff_used
        ma_recordpos_to_offset -> ma_recordpos_to_dir_entry
        Changed some 'rec' named variables to 'column'.
        Ensure that tail block are at least of size 'MIN_TAIL_SIZE'
      storage/maria/ma_blockrec.h:
        More comments
        DIRCOUNT_SIZE -> DIR_COUNT_SIZE
        Added define for maira_bitmap_marker[]
        ma_recordpos_to_offset -> ma_recordpos_to_dir_entry
        xxx_block_row() -> xxx_block_record()
        Made _ma_read_bitmap_page() static
      storage/maria/ma_check.c:
        More comments
        ma_recordpos_to_offset() -> ma_recordpos_to_dir_entry()
        DIR_ENTRY_OFFSET -> DIR_COUNT_OFFSET
        rec variables -> column variables
        recdef -> columndef
      storage/maria/ma_checksum.c:
        rec -> column
        Avoid an 'if' in _ma_checksum() for the common case
      storage/maria/ma_close.c:
        Moved resetting of info->dfile to ma_end_once_block_record()
      storage/maria/ma_create.c:
        Some variable changes to make things more readable:
        recinfo -> columndef
        rec -> column
        rec_end -> end_column
        record_type -> datafile_type
        ma_recinfo_write() -> ma_columndef_write()
        Fixed wrong setting of 'data_file_length'; Now max_rows should be calculated correctly
        New check if too long key.
        Use ma_chsize() to write bitmap page.
      storage/maria/ma_delete.c:
        keybuff_used -> keyread_buff_used
      storage/maria/ma_dynrec.c:
        rec -> columndef
        rec_length -> column_length
        maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
        Better comment for _ma_read_rnd_dynamic_record()
      storage/maria/ma_ft_eval.c:
        maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/maria/ma_ft_test1.c:
        maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/maria/ma_ft_update.c:
        keybuff_used -> keyread_buff_used
      storage/maria/ma_info.c:
        More comments
      storage/maria/ma_open.c:
        Added checking if using file with wrong block_size
        New checking of max_key_length
        rec -> columndef
        _ma_recinfo_write -> _ma_columndef_write
        Don't change block_size (as this is checked in ma_create())
        More comments
      storage/maria/ma_packrec.c:
        Trivial code changes
        rec -> columndef
        maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/maria/ma_page.c:
        keybuff_used -> keyread_buff_used
      storage/maria/ma_rkey.c:
        Removed not needded empty line
      storage/maria/ma_rrnd.c:
        Removed not used variable
      storage/maria/ma_rt_index.c:
        keybuff_used -> keyread_buff_used
      storage/maria/ma_search.c:
        keybuff_used -> keyread_buff_used
        Trivial code changes
      storage/maria/ma_sp_test.c:
        maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/maria/ma_test1.c:
        maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/maria/ma_test2.c:
        maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/maria/ma_update.c:
        Updated comment
      storage/maria/ma_write.c:
        keybuff_used -> keyread_buff_used
      storage/maria/maria_chk.c:
        Added missing types to type_names[]
        Removed not used variable
        rec -> columndef
        Replaced some numbers with define flags
      storage/maria/maria_def.h:
        More comments
        Added 'MARIA_INDEX_MIN_OVERHEAD_SIZE'
        rec -> columndef
        keybuff_used -> keyread_buff_used
        _ma_recinfo_write -> _ma_culumndef_write
        _ma_recinfo_read -> _ma_columndef_read
        Changed 'USE_WHOLE_KEY' to a big number to not interfer with long keys
        Added maria_max_key_length()
      storage/maria/maria_pack.c:
        Updated message strings
        rec -> columndef
        maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
        More comments
      storage/myisam/ft_eval.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/ft_test1.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/mi_checksum.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/mi_create.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/mi_dynrec.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/mi_open.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/mi_packrec.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/mi_rkey.c:
        Unlock mutex also in case of error
      storage/myisam/mi_test1.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/mi_test2.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/myisampack.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      storage/myisam/sp_test.c:
        mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
      support-files/magic:
        Fixed typo
      eb7d9500
  16. 18 Apr, 2007 2 commits
    • unknown's avatar
      Fixed dubug info. · ee8f8dd1
      unknown authored
      
      sql/set_var.cc:
        fixed parameters.
      ee8f8dd1
    • unknown's avatar
      Postmerge fixes. · 92e99ce4
      unknown authored
      added forgoten file.
      
      The patch broke maria.test (will be fixed later)
      
      
      sql/handler.cc:
        Pagecache block should be equal maria block.
      sql/mysqld.cc:
        parameters Fixed.
      storage/maria/ma_bitmap.c:
        fixed typo.
      storage/maria/ma_blockrec.c:
        fixed typo.
      storage/maria/ma_delete_all.c:
        fixed typo.
      storage/maria/ma_page.c:
        fixed typo.
      storage/maria/ma_pagecache.c:
        pin/lock debugging protection activated by default.
      storage/maria/ma_pagecaches.c:
        parameters Fixed.
      storage/maria/ma_preload.c:
        fixed typo.
      mysys/my_safehash.c:
        New BitKeeper file ``mysys/my_safehash.c''
      92e99ce4
  17. 16 Apr, 2007 1 commit
    • unknown's avatar
      Merge desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria.bak · e10fe77b
      unknown authored
      into  desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-test
      
      
      include/maria.h:
        Auto merged
      mysys/Makefile.am:
        Auto merged
      mysys/mf_keycaches.c:
        Auto merged
      sql/handler.h:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/set_var.h:
        Auto merged
      storage/maria/Makefile.am:
        Auto merged
      storage/maria/ha_maria.cc:
        Auto merged
      storage/maria/ma_bitmap.c:
        Auto merged
      storage/maria/ma_check.c:
        Auto merged
      storage/maria/ma_close.c:
        Auto merged
      storage/maria/ma_dynrec.c:
        Auto merged
      storage/maria/ma_extra.c:
        Auto merged
      storage/maria/ma_info.c:
        Auto merged
      storage/maria/ma_keycache.c:
        Auto merged
      storage/maria/ma_locking.c:
        Auto merged
      storage/maria/ma_loghandler.c:
        Auto merged
      storage/maria/ma_open.c:
        Auto merged
      storage/maria/ma_packrec.c:
        Auto merged
      storage/maria/ma_page.c:
        Auto merged
      storage/maria/ma_pagecache.c:
        Auto merged
      storage/maria/ma_panic.c:
        Auto merged
      storage/maria/ma_preload.c:
        Auto merged
      storage/maria/ma_static.c:
        Auto merged
      storage/maria/ma_test1.c:
        Auto merged
      storage/maria/ma_test2.c:
        Auto merged
      storage/maria/ma_test3.c:
        Auto merged
      storage/maria/ma_write.c:
        Auto merged
      storage/maria/maria_chk.c:
        Auto merged
      storage/maria/maria_def.h:
        Auto merged
      storage/maria/maria_ftdump.c:
        Auto merged
      storage/maria/maria_pack.c:
        Auto merged
      sql/handler.cc:
        merge
      storage/maria/ma_blockrec.c:
        merge
      storage/maria/ma_delete_all.c:
        merge
      e10fe77b
  18. 12 Apr, 2007 3 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 1bf0ed77
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      1bf0ed77
    • unknown's avatar
      Enabled ps_maria.test · bd65a4f5
      unknown authored
      Fixed bug in field-is-zero detection
      Fixed bug in truncate file (datafile was not properly initialized)
      
      
      mysql-test/t/disabled.def:
        Enable ps_maria
      storage/maria/ma_bitmap.c:
        Added reset of bitmap (for truncate)
      storage/maria/ma_blockrec.c:
        Fixed bug in zero detection
      storage/maria/ma_blockrec.h:
        New prototype
      storage/maria/ma_create.c:
        Moved initialzation of datafile to separate function
      storage/maria/ma_delete_all.c:
        Added initializtion of data file
      storage/maria/maria_def.h:
        New prototype
      bd65a4f5
    • unknown's avatar
      Postreview changes. · 09cb2fe6
      unknown authored
      
      include/my_sys.h:
        The comments added.
      include/pagecache.h:
        Functions names changed.
      storage/maria/unittest/mf_pagecache_consist.c:
        Functions names changed.
      storage/maria/unittest/mf_pagecache_single.c:
        Functions names changed.
      09cb2fe6
  19. 11 Apr, 2007 1 commit
  20. 06 Apr, 2007 1 commit
    • unknown's avatar
      After merge fixes · 1a392bf6
      unknown authored
      Fixed test for row based replication
      
      
      mysql-test/mysql-test-run.pl:
        After merge fix
      mysql-test/r/maria.result:
        Fixed test for row based replication
      mysql-test/t/maria.test:
        Fixed test for row based replication
      storage/maria/ha_maria.cc:
        After merge fix
      storage/maria/ma_blockrec.c:
        Better to clear whole page, as 'length' may be bigger than what we need.
      storage/maria/ma_loghandler.c:
        Fix compiler warning
        Removed access to not initialized memory
      storage/maria/ma_open.c:
        Remove wrong (not needed) test
      1a392bf6
  21. 05 Apr, 2007 2 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · 5bef77a3
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      BitKeeper/etc/ignore:
        auto-union
      BUILD/SETUP.sh:
        Auto merged
      mysql-test/lib/init_db.sql:
        Auto merged
      mysql-test/lib/mtr_cases.pl:
        Auto merged
      mysql-test/lib/mtr_diff.pl:
        Auto merged
      mysql-test/lib/mtr_gcov.pl:
        Auto merged
      mysql-test/lib/mtr_gprof.pl:
        Auto merged
      mysql-test/lib/mtr_im.pl:
        Auto merged
      mysql-test/lib/mtr_io.pl:
        Auto merged
      mysql-test/lib/mtr_match.pl:
        Auto merged
      mysql-test/lib/mtr_misc.pl:
        Auto merged
      mysql-test/lib/mtr_process.pl:
        Auto merged
      mysql-test/lib/mtr_report.pl:
        Auto merged
      mysql-test/lib/mtr_stress.pl:
        Auto merged
      mysql-test/lib/mtr_timer.pl:
        Auto merged
      mysql-test/lib/mtr_unique.pl:
        Auto merged
      mysql-test/mysql-test-run.pl:
        Auto merged
      mysql-test/t/disabled.def:
        Auto merged
      mysql-test/t/myisam.test:
        Auto merged
      mysql-test/t/query_cache_notembedded.test:
        Auto merged
      sql/filesort.cc:
        Auto merged
      sql/handler.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/slave.h:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      storage/maria/ha_maria.h:
        Auto merged
      storage/maria/ma_bitmap.c:
        Auto merged
      storage/maria/ma_blockrec.c:
        Auto merged
      storage/maria/ma_blockrec.h:
        Auto merged
      storage/maria/ma_check.c:
        Auto merged
      storage/maria/ma_checksum.c:
        Auto merged
      storage/maria/ma_create.c:
        Auto merged
      storage/maria/ma_delete.c:
        Auto merged
      storage/maria/ma_delete_all.c:
        Auto merged
      storage/maria/ma_extra.c:
        Auto merged
      storage/maria/ma_info.c:
        Auto merged
      storage/maria/ma_search.c:
        Auto merged
      storage/maria/ma_test2.c:
        Auto merged
      storage/maria/ma_write.c:
        Auto merged
      storage/maria/maria_def.h:
        Auto merged
      storage/myisam/mi_create.c:
        Auto merged
      storage/myisam/mi_test2.c:
        Auto merged
      sql/share/errmsg.txt:
        Use remote version
      mysql-test/include/varchar.inc:
        Manual merge (take changes from remote tree)
      storage/maria/ha_maria.cc:
        Manual merge
      5bef77a3
    • unknown's avatar
      Fixed that maria.test works · 0abffa05
      unknown authored
      
      BUILD/SETUP.sh:
        Update from 5.1
      include/maria.h:
        Moved structs into size order
      mysql-test/include/varchar.inc:
        Fixed error numbers (as in 5.1)
      mysql-test/mysql-test-run.pl:
        Updated from 5.1
        Create a dummy mysql.err file if using --valgrind --debug
      mysql-test/lib/init_db.sql:
        Update from 5.1
      mysql-test/lib/mtr_cases.pl:
        Update from 5.1
      mysql-test/lib/mtr_diff.pl:
        Update from 5.1
      mysql-test/lib/mtr_gcov.pl:
        Update from 5.1
      mysql-test/lib/mtr_gprof.pl:
        Update from 5.1
      mysql-test/lib/mtr_im.pl:
        Update from 5.1
      mysql-test/lib/mtr_io.pl:
        Update from 5.1
      mysql-test/lib/mtr_match.pl:
        Update from 5.1
      mysql-test/lib/mtr_misc.pl:
        Update from 5.1
      mysql-test/lib/mtr_process.pl:
        Update from 5.1
      mysql-test/lib/mtr_report.pl:
        Update from 5.1
      mysql-test/lib/mtr_stress.pl:
        Update from 5.1
      mysql-test/lib/mtr_timer.pl:
        Update from 5.1
      mysql-test/lib/mtr_unique.pl:
        Update from 5.1
      mysql-test/r/maria.result:
        Updated results. The reason for the new results are:
        
        - Maria doesn't support REPAIR TABLE or OPTIMIZE table yet
        - Some statistics information is different, so MySQL prefers index reads instead of table scans
        - No support for concurrent writes in the default BLOCK_RECORD mode
        - No support for different KEY_BLOCK sizes (will not be fixed)
      mysql-test/t/disabled.def:
        Enable maria test
      mysql-test/t/maria.test:
        No support for concurrent writes in the default BLOCK_RECORD mode
        No support for different KEY_BLOCK sizes (will not be fixed)
      mysql-test/t/myisam.test:
        Fix to be able to run with --extern
      mysql-test/t/query_cache_notembedded.test:
        Fix to be able to run with --extern
      sql/filesort.cc:
        Fixed compiler warning
      sql/handler.cc:
        Use new error message (as in 5.1)
      sql/share/errmsg.txt:
        Update error messages (as in 5.1)
      sql/slave.cc:
        Fixed compiler warning
      sql/slave.h:
        Fixed compiler warning
      sql/sql_table.cc:
        Fixed compiler warning
      storage/maria/ha_maria.cc:
        Added better scan_time()
        Disble REPAIR on BLOCK_RECORD tables
        Added rnd_end() to free memory after scan
        Don't pack numerical primary keys
        Don't allow fast alter table if row type changes
      storage/maria/ha_maria.h:
        Added get_row_type(), scan_time() and rnd_end()
      BitKeeper/etc/ignore:
        Added storage/maria/unittest/mf_pagecache_consist_1k-t-big storage/maria/unittest/mf_pagecache_consist_1kHC-t-big storage/maria/unittest/mf_pagecache_consist_1kRD-t-big storage/maria/unittest/mf_pagecache_consist_1kWR-t-big storage/maria/unittest/mf_pagecache_consist_64k-t-big storage/maria/unittest/mf_pagecache_consist_64kHC-t-big storage/maria/unittest/mf_pagecache_consist_64kRD-t-big storage/maria/unittest/mf_pagecache_consist_64kWR-t-big storage/maria/unittest/mf_pagecache_single_64k-t-big to the ignore list
      storage/maria/ma_bitmap.c:
        Fixed some bugs found with maria.test
        Added more DBUG_PRINT and some more comments
      storage/maria/ma_blockrec.c:
        Fixed some bugs found with maria.test
        Simplified code
        More comments
      storage/maria/ma_blockrec.h:
        Added DBUG_ASSERT()
      storage/maria/ma_check.c:
        Don't check record data links with block_records
        Update state.changed properly
      storage/maria/ma_checksum.c:
        Fixed bug in checksum handling (only first field was calculated)
      storage/maria/ma_create.c:
        Set rec->fill_length properly
        Added extra testing needed for BLOCK_RECORD
        Fixed bug in unlock of not locked mutex
        Fixed memory leak
      storage/maria/ma_delete.c:
        Update state.changed
      storage/maria/ma_delete_all.c:
        Update state.changed
      storage/maria/ma_extra.c:
        Disable caching of rows if we are using BLOCK_RECORD
        (scan_init will enable caching of rows when using BLOCK_RECORD)
      storage/maria/ma_info.c:
        Added data_file_type
      storage/maria/ma_search.c:
        Fixed bug with signed bytes
      storage/maria/ma_test2.c:
        Fixed wrong pointer handling (caused crash on 64 bit machines)
      storage/maria/ma_write.c:
        Added DBUG_ statements
      storage/maria/maria_def.h:
        Added STATE_NOT_OPTIMIZED_ROWS
      storage/myisam/mi_create.c:
        Fixed bug with unlocking of not locked mutex (in case of error condition)
      storage/myisam/mi_test2.c:
        Fixed wrong pointer handling (caused crash on 64 bit machines)
      0abffa05