An error occurred fetching the project authors.
  1. 09 Dec, 2007 1 commit
    • unknown's avatar
      Manageable transactional log purge and file size · 771296eb
      unknown authored
      support added to maria.
      
      
      mysql-test/r/maria.result:
        New variables added.
      storage/maria/ha_maria.cc:
        Variable for transactional log purge method added.
        Variable for transactional log size added.
        SHOW for engine logs added.
        Log flush purge logs in case of "ondemand" type of
          log processing.
      storage/maria/ma_checkpoint.c:
        log purge call enabled.
      storage/maria/ma_loghandler.c:
        Support for different methods of log purge added.
        Functions for getting information about logs state added.
        Functions for getting/setting log size.
      storage/maria/ma_loghandler.h:
        Fixed defines.
        Functions for for transactional log mannegment added.
      storage/maria/ma_recovery.c:
        Dependence on TRANSLOG_FILE_SIZE removed.
      mysql-test/r/maria-purge.result:
        New BitKeeper file ``mysql-test/r/maria-purge.result''
      mysql-test/t/maria-purge.test:
        New BitKeeper file ``mysql-test/t/maria-purge.test''
      771296eb
  2. 19 Oct, 2007 1 commit
    • unknown's avatar
      WL#3071 - Maria checkpoint · 77017191
      unknown authored
      - serializing calls to flush_pagecache_blocks_int() on the same file
      to avoid known concurrency bugs
      - having that, we can now enable the background thread, as the
      flushes it does are now supposedly safe in concurrent situations.
      - new type of flush FLUSH_KEEP_LAZY: when the background checkpoint
      thread is flushing a packet of dirty pages between two checkpoints,
      it uses this flush type, indeed if a file is already being flushed
      by another thread it's smarter to move on to the next file than wait.
      - maria_checkpoint_frequency renamed to maria_checkpoint_interval.
      
      
      include/my_sys.h:
        new type of flushing for the page cache: FLUSH_KEEP_LAZY
      mysql-test/r/maria.result:
        result update
      mysys/mf_keycache.c:
        indentation. No FLUSH_KEEP_LAZY support in key cache.
      storage/maria/ha_maria.cc:
        maria_checkpoint_frequency was somehow a hidden part of the
        Checkpoint API and that was not good. Now we have checkpoint_interval,
        local to ha_maria.cc, which serves as container for the user-visible
        maria_checkpoint_interval global variable; setting it calls
        update_checkpoint_interval which passes the new value to
        ma_checkpoint_init(). There is no hiding anymore.
        By default, enable background thread which does checkpoints
        every 30 seconds, and dirty page flush in between. That thread takes
        a checkpoint when it ends, so no need for maria_hton_panic to take one.
        The | is | and not ||, because maria_panic() must always be called.
        frequency->interval.
      storage/maria/ma_checkpoint.c:
        Use FLUSH_KEEP_LAZY for background thread when it flushes packets of
        dirty pages between two checkpoints: it is smarter to move on to
        the next file than wait for it to have been completely flushed, which
        may take long.
        Comments about flush concurrency bugs moved from ma_pagecache.c.
        Removing out-of-date comment.
        frequency->interval.
        create_background_thread -> (interval>0).
        In ma_checkpoint_background(), some variables need to be preserved
        between iterations.
      storage/maria/ma_checkpoint.h:
        new prototype
      storage/maria/ma_pagecache.c:
        - concurrent calls of flush_pagecache_blocks_int() on the same file
        cause bugs (see @note in that function); we fix them by serializing
        in this situation. For that we use a global hash of (file, wqueue).
        When flush_pagecache_blocks_int() starts it looks into the hash,
        using the file as key. If not found, it inserts (file,wqueue) into the
        hash, flushes the file, and finally removes itself from the hash and
        wakes up any waiter in the queue. If found, it adds itself to the
        wqueue and waits.
        - As a by-product, we can remove changed_blocks_is_incomplete
        and replace it by scanning the hash, replace the sleep() by a queue wait.
        - new type of flush FLUSH_KEEP_LAZY: when flushing a file, if it's
        already being flushed by another thread (even partially), return
        immediately.
      storage/maria/ma_pagecache.h:
        In pagecache, a hash of files currently being flushed (i.e. there
        is a call to flush_pagecache_blocks_int() for them).
      storage/maria/ma_recovery.c:
        new prototype
      storage/maria/ma_test1.c:
        new prototype
      storage/maria/ma_test2.c:
        new prototype
      77017191
  3. 17 Oct, 2007 1 commit
    • unknown's avatar
      WL#3071 Maria checkpoint · 0f1feefa
      unknown authored
      Ability for flush_pagecache_blocks() to flush only certain pages of
      a file, as instructed by an option "filter" pointer-to-function argument;
      Checkpoint and background dirty page flushing use that to flush only
      pages which have been dirty for long enough and bitmap pages.
      Fix for a bug in flush_cached_blocks() (no idea if it could produce
      a bug in real life, but theoretically it is).
      Testing checkpoint in ma_test_recovery via ma_test1 and ma_test2.
      Background checkpoint & dirty pages flush thread is still disabled
      by default in ha_maria.
      
      
      mysql-test/r/maria.result:
        result update
      storage/maria/ha_maria.cc:
        blank after function comment
      storage/maria/ma_checkpoint.c:
        Using an enum instead of 0/1/2 (applying Sanja's review comments).
        The comment about "this is an horizon" can be removed as Sanja
        created translog_next_LSN() which parse_checkpoint_record() uses.
        Variables in ma_checkpoint_background() cannot be declared in the
        for() as their value must not be reset at each iteration!
      storage/maria/ma_pagecache.c:
        adding to flush_pagecache_blocks() optional arguments 'filter'
        (pointer to function) and 'filter_arg'; if filter!=NULL this function
        will be called for each block of the file and will reply if this
        block and following ones should be flushed or not (3 possible
        replies).
        Fixing a bug when flush_cached_blocks() skips a pinned page: it has
        to unset PCBLOCK_IN_FLUSH set by flush_pagecache_blocks_int().
      storage/maria/ma_pagecache.h:
        flush_pagecache_blocks() is changed to take "filter" and "filter_arg"
        arguments. "filter", if it is not NULL, may return one value
        among enum pagecache_flush_filter_result.
      storage/maria/ma_recovery.c:
        open_count=0 when closing tables at the end of recovery.
      storage/maria/ma_test1.c:
        Optional checkpoints (-H#) at various stages (stages similar
        to --testflag), for testing of checkpoints.
      storage/maria/ma_test2.c:
        Optional checkpoints (-H#) at various stages (stages similar
        to -t), for testing of checkpoints.
      storage/maria/ma_test_recovery.expected:
        Result update: the results of the additional test run with -H#
        (checkpoints) are added here. They are exactly identical to without
        checkpoints except that the index's Root (printed by maria_chk)
        is more correct when using checkpoints. This is because checkpoint
        flushed the state, so it happens to be correct, while no-checkpoint
        does not flush the state, and recovery does not recover indexes
        so Root is never fixed. When we recover indices, this will go away.
      storage/maria/ma_test_recovery:
        We duplicate the loop of tests to add an additional run with
        checkpoints at various stages, to see if maria_read_log
        uses them fine.
      0f1feefa
  4. 13 Oct, 2007 1 commit
  5. 12 Oct, 2007 1 commit
    • unknown's avatar
      make maria more pluggable · 47d48415
      unknown authored
      mysql-test/r/maria.result:
        test for maria variables
      mysql-test/t/maria.test:
        test for maria variables
      BitKeeper/etc/ignore:
        Added sql/link_sources ylwrap libmysql_r/link_sources to the ignore list
      sql/sql_delete.cc:
        fix incorrect check
      storage/maria/ha_maria.cc:
        maria status and pagecache variables
      47d48415
  6. 04 Oct, 2007 1 commit
  7. 20 Sep, 2007 1 commit
    • unknown's avatar
      Fix for segmentation fault when updating a record having a small · be382b42
      unknown authored
      BLOB whose size didn't change. Fix for probably impossible problem
      in Recovery.
      
      
      mysql-test/r/maria.result:
        result for new test
      mysql-test/t/maria.test:
        testcase for a bug (used to segfault)
      storage/maria/ma_blockrec.c:
        When writing a record, we put BLOBs into the head part if there is
        room for them. "Is there room" was first decided by
        !(tmp_data + length > end_of_data) (line 1894)
        but then was tested again as
        *blob_lengths < (ulong)(end_of_data - data). We see that in case of
        equality, the first condition was true but the second was not,
        so it was inconsistent and crashed later.
      storage/maria/ma_recovery.c:
        When wondering if recovery should update the state (like state.records):
        if table was closed, its is_of_horizon was set to X, then
        table was reopened and a REDO was written. If this REDO had LSN
        X (as horizon is just a lower bound of the LSN of the next record),
        we have to apply it. In practice this equality probably could not
        happen because of LOGREC_FILE_ID would be written before the REDO.
      be382b42
  8. 10 Sep, 2007 1 commit
    • unknown's avatar
      Fixed some bugs when using undo of VARCHAR fields · 6aef814d
      unknown authored
      Fixed bug in undo_delete
      Fixed wrong error output from maria_check
      
      
      include/my_base.h:
        Added marker if we have null fields in table
      mysql-test/r/maria.result:
        checksum in maria now ignore null fields that are null
      sql/sql_table.cc:
        Ignore null fields that are now
        (Before enabling this, we have to change MyISAM to also skip null fields)
      storage/maria/ma_blockrec.c:
        More logging
        After merge fixes
        Fixed some bugs when using undo of VARCHAR fields
        Fixed bug in undo_delete (We can't use info->rec_buff here as this is used in write_block_record())
      storage/maria/ma_blockrec.h:
        ma_recordpos_to_dir_entry changed to return uint
      storage/maria/ma_check.c:
        Fixed wrong output in case of errors
      storage/maria/ma_create.c:
        Set share.base.pack_reclength more correct for block record
        Delete support for RAID
      storage/maria/ma_open.c:
        Don't calculate checksum fields with value NULL
      storage/maria/ma_test1.c:
        Fixed output from -v for VARCHAR keys
      storage/maria/ma_test_recovery.expected:
        Update results after adding new printf
        New checksums (because we now ignore nulls)
        Some file lengths are different, but think they are ok (didn't have time to investigate)
      storage/myisam/ha_myisam.cc:
        Fixed comment
      storage/myisam/mi_test1.c:
        Fixed bug
      6aef814d
  9. 03 Sep, 2007 1 commit
    • unknown's avatar
      Fixed several bugs found by running *.test with maria engine · 5183a4b0
      unknown authored
      Renamed HA_EXTRA_PREAPRE_FOR_DELETE to HA_EXTRA_PERPARE_FOR_DROP
      Added HA_EXTRA_PREPARE_FOR_RENAME (as we in the code before used HA_EXTRA_PREPARE_FOR_DELETE also for renames which confused things)
      Allow multiple write locks for same page by same file handle
      Don't write table state if table is not changed
      
      
      include/my_base.h:
        Renamed HA_EXTRA_PREAPRE_FOR_DELETE to HA_EXTRA_PERPARE_FOR_DROP
        Added HA_EXTRA_PREPARE_FOR_RENAME (as we in the code before used HA_EXTRA_PREPARE_FOR_DELETE also for renames which confused things)
      mysql-test/r/maria.result:
        More tests of things that failed in other tests
      mysql-test/t/maria.test:
        More tests of things that failed in other tests
      sql/ha_partition.cc:
        HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
        Use HA_EXTRA_PREPARE_FOR_RENAME for renames
      sql/ha_partition.h:
        HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
        Use HA_EXTRA_PREPARE_FOR_RENAME for renames
      sql/lock.cc:
        Fixed comment
      sql/sql_table.cc:
        Fixed wrong usage of HA_EXTRA_PREAPRE_FOR_DELETE
      storage/maria/ha_maria.cc:
        Added missing _ma_renable_logging_for_table()  (When using with ALTER TABLE + repair index)
        Enabled fast generation of index
      storage/maria/ma_bitmap.c:
        Fixed bug when resetting full pages when page was a tail page
      storage/maria/ma_blockrec.c:
        Fixed several bugs found by running *.test with maria engine:
        During update we keep old changed pages locked with a write lock to be able to reuse them.
        - Fixed bug with allocated but not used tail part
        - Fixed bug with blob that only had tail part
        - Fixed bug when update reused a page (needed multiple write locks for same page)
        - Fixed bug when first extent was a tail block
      storage/maria/ma_check.c:
        Better error message when bitmap is destroyed
      storage/maria/ma_close.c:
        Only write status if file was changed.
        Fixed bug when maria_chk -e file_name changed the file.
      storage/maria/ma_dynrec.c:
        Removed not used argument to _ma_state_info_read_dsk
      storage/maria/ma_extra.c:
        HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
        Use HA_EXTRA_PREPARE_FOR_RENAME for renames
        Only ignore flushing of pages for DROP (not rename)
      storage/maria/ma_locking.c:
        Removed not used argument to _ma_state_info_read_dsk
      storage/maria/ma_open.c:
        Removed not used argument to _ma_state_info_read_dsk
      storage/maria/ma_pagecache.c:
        Allow multiple write locks for same page by same file handle
        (Not yet complete, Sanja will fix)
      storage/maria/ma_recovery.c:
        HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
      storage/maria/maria_def.h:
        Removed not used argument to _ma_state_info_read_dsk
      storage/myisam/mi_extra.c:
        HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
        Use HA_EXTRA_PREPARE_FOR_RENAME for renames
        Only ignore flushing of pages for DROP (not rename)
      storage/myisammrg/ha_myisammrg.cc:
        HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
        Use HA_EXTRA_PREPARE_FOR_RENAME for renames
      5183a4b0
  10. 21 Aug, 2007 1 commit
    • unknown's avatar
      Fixes for bugs found by maria.test and event*tests: · a8d94b4a
      unknown authored
      Fixed bug when doing rnd_read followed by update.
      Don't duplicate error messages in log
      Initialize transaction object properly. Fixed failure in event*tests when running with maria
      
      
      mysql-test/mysql-test-run.pl:
        Removed warning when running with --external
      mysql-test/r/maria.result:
        Added back disabled test
        Verified that the result changes are correct
      mysql-test/t/maria.test:
        Added back disabled test
      sql/handler.cc:
        More debugging.
        Simple style change
      sql/sql_class.cc:
        Initialize transaction object properly. Fixed failure in event*tests when running with maria
      storage/maria/ha_maria.cc:
        More dbug info
      storage/maria/ma_blockrec.c:
        Removed not needed line
      storage/maria/ma_rrnd.c:
        Removed not used code
        Ensure that cur_row.lastpos is always set when reading record with rnd. (Fixes failure in maria.test)
      storage/maria/maria_def.h:
        Don't call maria_print_error() except with EXTRA_DEBUG
        (Removes duplicate error messages when somethings goes wrong)
      a8d94b4a
  11. 07 Aug, 2007 1 commit
    • unknown's avatar
      Fix for errors during: · 1ad3a05d
      unknown authored
      "./mtr --mysqld=--default-storage-engine=maria mysqldump".
      First problem was use of INSERT DELAYED and MERGE tables without
      specifying that the tables to create should always be MyISAM.
      After fixing this, no rows were returned by the final SELECT of the
      "BUG 19025" portion of the test. Simplified problem was:
      LOCK TABLES `t1` WRITE;
      /*!40000 ALTER TABLE `t1` DISABLE KEYS */;
      INSERT INTO `t1` VALUES ('bla',1000),('bla',1001),('bla',1002);
      /*!40000 ALTER TABLE `t1` ENABLE KEYS */;
      UNLOCK TABLES;
      select * from t1;
      The SELECT would find no rows. Reason: ENABLE KEYS does a maria_repair();
      but data pages are still in the page cache and not on disk (because
      they were not flushed because maria_lock_database(F_UNLCK) was
      not called at the end of INSERT because under LOCK TABLES).
      At start of maria_repair(), sort_info.filelength is set to the
      physical size of the data file (=> too small because pages are in
      cache and not on disk).
      Then in sort_get_next_record(), when seeing end-of-file, this is done:
      sort_param->max_pos= sort_info->filelength;
      Further in maria_repair(), this is done:
      info->state->data_file_length= sort_param.max_pos;
      and so data_file_length is smaller (0) than reality (16384).
      This makes SELECT think EOF is where it is not, and thus find
      no rows.
      This is fixed by flushing all data pages at the start of maria_repair()
      (no performance problem is introduced as in common cases where
      ALTER TABLE is not under LOCK TABLES, the previous statement did
      this flush anyway).
      Another reason to do this flush is that, if not doing it, old cached
      pages might go down onto the repaired data file at a later point
      and thus corrupt it (assume a REPAIR non-QUICK).
      A similar bug is fixed:
      LOCK TABLES WRITE; INSERT; CHECK TABLE;
      reports "Size of datafile is: 0         Should be: 16384"
      again because the physical size was read without a preliminary
      page cache flush.
      
      
      mysql-test/r/maria.result:
        result update
      mysql-test/r/mysqldump.result:
        result update
      mysql-test/t/maria.test:
        adding test for fixed bug in LOCK TABLES + CHECK TABLE + block format.
        Disabling portion which hits "incorrect key file" but still
        letting it make the test fail (Monty to fix).
      mysql-test/t/mysqldump.test:
        in places where test expects engine to support INSERT DELAYED and
        be includable in a MERGE table, i.e. be MyISAM, we explicitely
        ask for MyISAM.
      storage/maria/ma_check.c:
        Before reading the data file's physical size with my_seek(MY_SEEK_END)
        during maria_chk_size() and maria_repair(), we must flush this
        data file, otherwise physical size is misleading and leads to
        - CHECK TABLE finding the table corrupted ("size of datafile should be"
        error)
        - ALTER TABLE ENABLE KEYS losing rows (maria_repair()
        setting data_file_length to a too small value => later SELECT does
        not find rows though they are in the data file).
        This fixes the "mysqldump.test" failure.
        sort_info.filelength contains the physical size, re-using it.
      1ad3a05d
  12. 30 Jul, 2007 1 commit
    • unknown's avatar
      Maria: it is allowed to change unknown type to any legal type of page · 9554b40d
      unknown authored
      in the pagecache: fixing wrong assertion and a test case.
      maria.test and ps_maria.test still fail.
      
      
      mysql-test/r/maria.result:
        result update
      mysql-test/t/maria.test:
        added test for incorrect assert on page's type
      storage/maria/ma_pagecache.c:
        It is allowed to change unknown type to any legal type of page in the
        pagecache.
      9554b40d
  13. 03 Jul, 2007 1 commit
  14. 01 Jul, 2007 1 commit
    • unknown's avatar
      Fixed REPAIR/CHECK/ANALYZE TABLE for tables with new BLOCK-ROW format. · d6f2fda6
      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''
      d6f2fda6
  15. 05 Jun, 2007 1 commit
  16. 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
  17. 19 Apr, 2007 1 commit
    • 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
  18. 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
  19. 05 Apr, 2007 1 commit
    • 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
  20. 19 Dec, 2006 1 commit
    • unknown's avatar
      Maria - merging recent changes done to MyISAM into Maria. · c2f2a41e
      unknown authored
      Plus compiler warnings, and a fix to the pagecache unit tests for IA64
      
      
      include/maria.h:
        merging MyISAM into Maria
      include/myisam.h:
        post-merge fixes
      mysql-test/r/maria.result:
        merging MyISAM into Maria
      mysql-test/t/maria.test:
        merging MyISAM into Maria
      sql/mysqld.cc:
        post-merge fixes
      storage/maria/ha_maria.cc:
        merging MyISAM into Maria
      storage/maria/ha_maria.h:
        merging MyISAM into Maria
      storage/maria/ma_check.c:
        merging MyISAM into Maria
      storage/maria/ma_open.c:
        merging MyISAM into Maria
      storage/maria/ma_packrec.c:
        merging MyISAM into Maria
      storage/maria/ma_range.c:
        merging MyISAM into Maria
      storage/maria/ma_sort.c:
        merging MyISAM into Maria
      storage/maria/maria_def.h:
        merging MyISAM into Maria
      storage/maria/maria_pack.c:
        merging MyISAM into Maria
      storage/maria/plug.in:
        merging MyISAM into Maria
      storage/myisam/myisamdef.h:
        merging MyISAM into Maria
      storage/myisam/myisampack.c:
        fix for compiler warnings
      unittest/mysys/mf_pagecache_consist.c:
        this sets the stack size lower than the minimum on IA64, we remove it
        (it made the test fail)
      unittest/mysys/mf_pagecache_single.c:
        this sets the stack size lower than the minimum on IA64, we remove it
        (it made the test fail)
      c2f2a41e
  21. 30 Oct, 2006 1 commit
    • unknown's avatar
      Manually importing Ingo's fix for BUG#22119 · 887383d4
      unknown authored
      "Changing MI_KEY_BLOCK_LENGTH makes a wrong myisamchk"
      in the Maria tree as it is really needed to get "ma_test_all" to pass
      (this bug showed up in Maria first, not in MyISAM).
      Now ma_test_all does not have corruption messages about test2 anymore,
      and shows the same output as mi_test_all except that
      ma_test_all has this at the start:
      lt-maria_chk: MARIA file test1
      lt-maria_chk: warning: Size of indexfile is: 8192          Should be: 16384
      MARIA-table 'test1' is usable but should be fixed
      This was already true before importing the bugfix.
      Wonder if normal.
      NOTE: this bugfix is currently in 5.1-engines, in a few days
      will be in the main 5.1, then we'll merge 5.1
      into Maria: this will merge the bugfix into storage/myisam, but there
      will be no need to apply it to storage/maria again. I just couldn't
      wait a few days for the 5.1-engines->5.1 merge to be allowed.
      
      
      mysql-test/r/maria.result:
        result update
      mysql-test/t/maria.test:
        test for BUG#22119
      storage/maria/ma_check.c:
        fix for BUG#22119
      887383d4
  22. 11 Oct, 2006 1 commit
    • unknown's avatar
      Merge of recent MyISAM changes into Maria. Testsuite passes as much · 0a1dc8af
      unknown authored
      as in the main 5.1 (partition and ndb_alter_table fail).
      
      
      mysql-test/r/maria.result:
        merge from MyISAM
      mysql-test/r/ps_maria.result:
        merge from MyISAM
      mysql-test/t/maria.test:
        merge from MyISAM
      sql/mysql_priv.h:
        fix after wrong merge
      sql/mysqld.cc:
        fix after wrong merge
      sql/set_var.cc:
        adding _db like other engines have
      storage/maria/Makefile.am:
        merge from MyISAM
      storage/maria/ha_maria.cc:
        merge from MyISAM
      storage/maria/ha_maria.h:
        merge from MyISAM
      storage/maria/ma_check.c:
        merge from MyISAM
      storage/maria/ma_delete.c:
        merge from MyISAM
      storage/maria/ma_init.c:
        maria_inited should rather be my_bool
      storage/maria/ma_locking.c:
        merge from MyISAM
      storage/maria/ma_packrec.c:
        merge from MyISAM
      storage/maria/ma_panic.c:
        maria_panic() should not take mutex if engine has not been inited.
      storage/maria/ma_rkey.c:
        merge from MyISAM
      storage/maria/ma_write.c:
        merge from MyISAM
      storage/maria/maria_def.h:
        merge from MyISAM. maria_inited is needed for maria_panic().
      storage/maria/maria_ftdump.c:
        merge from MyISAM
      0a1dc8af
  23. 10 Aug, 2006 1 commit
    • unknown's avatar
      Completion of merge of mysql-5.1 into mysql-maria. · 99c431db
      unknown authored
      Manually imported changes done to MyISAM (include/myisam.h,
      storage/myisam/*, sql/ha_myisam.*, mysql-test/t/myisam.test,
      mysql-test/t/ps_2myisam.test) the last
      months into Maria (tedious, should do it more frequently in the
      future), including those not done at the previous 5.1->Maria merge
      (please in the future don't forget to apply MyISAM changes to Maria
      when you merge 5.1 into Maria).
      Note: I didn't try to import anything which could be MyISAM-related
      in other tests of mysql-test (I didn't want to dig in all csets),
      but as QA is working to make most tests re-usable for other engines
      (Falcon), it is likely that we'll benefit from this and just have
      to set engine=Maria somewhere to run those tests on Maria.
      func_group and partition tests fail but they already do in main 5.1
      on my machine. No Valgrind error in t/*maria*.test.
      Monty: please see the commit comment of maria.result and check.
      
      
      BitKeeper/deleted/.del-ha_maria.m4:
        Delete: config/ac-macros/ha_maria.m4
      configure.in:
        fix for the new way of enabling engines
      include/maria.h:
        importing changes done to MyISAM the last months into Maria
      include/my_handler.h:
        importing changes done to MyISAM the last months into Maria
      include/myisam.h:
        importing changes done to MyISAM the last months into Maria
      mysql-test/r/maria.result:
        identical to myisam.result, except the engine name in some places
        AND in the line testing key_block_size=1000000000000000000:
        Maria gives a key block size of 8192 while MyISAM gives 4096;
        is it explainable by the difference between MARIA_KEY_BLOCK_LENGTH
        and the same constant in MyISAM? Monty?
      mysql-test/r/ps_maria.result:
        identical to ps_2myisam.result (except the engine name in some places)
      mysql-test/t/maria.test:
        instead of engine=maria everywhere, I use @@storage_engine (reduces
        the diff with myisam.test).
        importing changes done to MyISAM the last months into Maria
      mysys/my_handler.c:
        importing changes done to MyISAM the last months into Maria
      sql/ha_maria.cc:
        importing changes done to MyISAM the last months into Maria
      sql/ha_maria.h:
        importing changes done to MyISAM the last months into Maria
      sql/mysqld.cc:
        unneeded
      storage/maria/Makefile.am:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_check.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_create.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_delete_table.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_dynrec.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_extra.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_ft_boolean_search.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_ft_eval.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_ft_nlq_search.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_ft_parser.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_ft_test1.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_ft_update.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_ftdefs.h:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_key.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_open.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_page.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_rkey.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_rsamepos.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_rt_index.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_rt_mbr.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_search.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_sort.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_test1.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_test2.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_test3.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_update.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/ma_write.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/maria_chk.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/maria_def.h:
        importing changes done to MyISAM the last months into Maria
      storage/maria/maria_ftdump.c:
        importing changes done to MyISAM the last months into Maria
      storage/maria/maria_pack.c:
        importing changes done to MyISAM the last months into Maria
      99c431db
  24. 11 Apr, 2006 1 commit
    • unknown's avatar
      Added storage/maria (based on MyISAM). WL#3245 · d2b8d744
      unknown authored
      Moved things into ft_global.h, my_handler.h and myisamchk.h to allow MyISAM and Maria to share code and defines
      Rename of not properly renamed functions in MyISAM and my_handler.c
      Renamed some MI_ defines to HA_ to allow MyISAM and Maria to share
      Added maria variables to mysqld.cc and set_var.cc
      Fixed compiler warnings
      
      
      
      BitKeeper/etc/ignore:
        added storage/maria/*.MAI
      BUILD/SETUP.sh:
        Compile maria by default
      BitKeeper/triggers/post-commit:
        No public maria emails.
        Mark changesets emails with 'maria'
      configure.in:
        Add maria
      include/ft_global.h:
        Move defines needed by maria and MyISAM here
      include/keycache.h:
        Add support for default key_cache if cache not found
      include/my_base.h:
        Add invalidator_by_filename
      include/my_handler.h:
        Remove duplicate header files
        Add defines that are typical for handlers (MyISAM and Maria)
      include/myisam.h:
        Move things to my_handler.h to allow Maria and MyISAM to share things
        (Some things needed to be shared to allow sharing of HA_CHECK structure)
      libmysqld/Makefile.am:
        Added ha_maria.cc
      mysys/mf_keycaches.c:
        Added default value for multi_key_cache_search
      mysys/my_handler.c:
        mi_compare_text -> ha_compare_text
        Removed compiler warnings
      sql/ha_myisam.cc:
        MI_CHECK -> HA_CHECK
        MI_MAX_KEY_LENGTH -> HA_MAX_KEY_LENGTH
      sql/ha_myisam.h:
        MI_CHECK -> HA_CHECK
        MI_MAX_KEY_LENGTH -> HA_MAX_KEY_LENGTH
      sql/ha_myisammrg.h:
        MI_CHECK -> HA_CHECK
        MI_MAX_KEY_LENGTH -> HA_MAX_KEY_LENGTH
      sql/handler.h:
        Added MARIA
        Added inclusion of my_handler.h
      sql/item_func.h:
        Remove duplicate include
      sql/mysql_priv.h:
        Added maria variables
      sql/mysqld.cc:
        Added maria
      sql/set_var.cc:
        Added maria status variables
      sql/set_var.h:
        Added maria
      sql/sql_class.h:
        Added maria status variables
      sql/sql_sort.h:
        Remove duplicate BUFFPEK struct
      storage/Makefile.am:
        Added maria
      storage/csv/ha_tina.cc:
        Removed compiler warning
      storage/myisam/Makefile.am:
        Added ft_myisam.c
      storage/myisam/ft_boolean_search.c:
        mi_compare_text -> ha_compare_text
        MI_MAX_KEY_BUFF -> HA_MAX_KEY_BUFF
        Remove compiler warnings
      storage/myisam/ft_nlq_search.c:
        mi_compare_text -> ha_compare_text
      storage/myisam/ft_parser.c:
        mi_compare_text -> ha_compare_text
      storage/myisam/ft_static.c:
        Move ft_init_search() to ft_myisam.c to make ft_static.c independent of MyISAM
      storage/myisam/ft_stopwords.c:
        mi_compare_text -> ha_compare_text
      storage/myisam/ft_update.c:
        mi_compare_text -> ha_compare_text
      storage/myisam/fulltext.h:
        Move things to ft_global.h to allow to share more things between MyISAM and Maria
      storage/myisam/mi_check.c:
        MI_CHECK -> HA_CHECK
      storage/myisam/mi_create.c:
        MI_MAX_POSSIBLE_KEY ->   HA_MAX_POSSIBLE_KEY
        MI_MAX_KEY_BLOCK_SIZE -> HA_MAX_KEY_BLOCK_SIZE
        MI_MAX_KEY_SEG ->  HA_MAX_KEY_SEG
        MI_MAX_KEY_BUFF -> HA_MAX_KEY_BUFF
      storage/myisam/mi_delete.c:
        MI_MAX_KEY_BUFF -> HA_MAX_KEY_BUFF
      storage/myisam/mi_delete_all.c:
        Remove not used variable
      storage/myisam/mi_dynrec.c:
        _my_calc_total_blob_length -> _mi_calc_total_blob_length
      storage/myisam/mi_key.c:
        _my_store_blob_length -> _mi_store_blob_length
      storage/myisam/mi_log.c:
        _my_calc_total_blob_length -> _mi_calc_total_blob_length
      storage/myisam/mi_open.c:
        MI_MAX_POSSIBLE_KEY -> HA_MAX_POSSIBLE_KEY
        MI_MAX_KEY_SEG ->      HA_MAX_KEY_SEG
        MI_MAX_KEY_BUFF ->     HA_MAX_KEY_BUFF
        my_n_base_info_read -> mi_n_base_info_read
      storage/myisam/mi_packrec.c:
        Made read_pack_length static
        _my_store_blob_length -> _mi_store_blob_length
        Remove not used variable
      storage/myisam/mi_range.c:
        MI_MAX_KEY_BUFF -> HA_MAX_KEY_BUFF
      storage/myisam/mi_search.c:
        MI_MAX_KEY_BUFF -> HA_MAX_KEY_BUFF
      storage/myisam/mi_test1.c:
        MI_MAX_KEY_LENGTH -> HA_MAX_KEY_LENGTH
      storage/myisam/mi_test2.c:
        Fixed compiler warning
      storage/myisam/mi_unique.c:
        Fixed compiler warning
        mi_compare_text -> ha_compare_text
      storage/myisam/mi_update.c:
        MI_MAX_KEY_BUFF -> HA_MAX_KEY_BUFF
      storage/myisam/mi_write.c:
        Rename of defines and functions
      storage/myisam/myisamchk.c:
        Rename of defines and functions
      storage/myisam/myisamdef.h:
        Remove tabs
        Indentation fixes (Large changes as I did run indent-ex on the file)
        Move some things to myisamchk.h
        Added missing functions that gave compiler warnings
      storage/myisam/myisamlog.c:
        Rename of defines and functions
      storage/myisam/myisampack.c:
        Remove compiler warning
      storage/myisam/rt_index.c:
        Rename of defines and functions
      storage/myisam/sort.c:
        Rename of defines, functions and structures
      config/ac-macros/ha_maria.m4:
        New BitKeeper file ``config/ac-macros/ha_maria.m4''
      include/maria.h:
        New BitKeeper file ``include/maria.h''
      include/myisamchk.h:
        New BitKeeper file ``include/myisamchk.h''
      libmysqld/ha_maria.cc:
        New BitKeeper file ``libmysqld/ha_maria.cc''
      mysql-test/include/have_maria.inc:
        New BitKeeper file ``mysql-test/include/have_maria.inc''
      mysql-test/r/have_maria.require:
        New BitKeeper file ``mysql-test/r/have_maria.require''
      mysql-test/r/maria.result:
        New BitKeeper file ``mysql-test/r/maria.result''
      mysql-test/r/ps_maria.result:
        New BitKeeper file ``mysql-test/r/ps_maria.result''
      mysql-test/t/maria.test:
        New BitKeeper file ``mysql-test/t/maria.test''
      mysql-test/t/ps_maria.test:
        New BitKeeper file ``mysql-test/t/ps_maria.test''
      sql/ha_maria.cc:
        New BitKeeper file ``sql/ha_maria.cc''
      sql/ha_maria.h:
        New BitKeeper file ``sql/ha_maria.h''
      storage/maria/Makefile.am:
        New BitKeeper file ``storage/maria/Makefile.am''
      storage/maria/cmakelists.txt:
        New BitKeeper file ``storage/maria/cmakelists.txt''
      storage/maria/ft_maria.c:
        New BitKeeper file ``storage/maria/ft_maria.c''
      storage/maria/ma_cache.c:
        New BitKeeper file ``storage/maria/ma_cache.c''
      storage/maria/ma_changed.c:
        New BitKeeper file ``storage/maria/ma_changed.c''
      storage/maria/ma_check.c:
        New BitKeeper file ``storage/maria/ma_check.c''
      storage/maria/ma_checksum.c:
        New BitKeeper file ``storage/maria/ma_checksum.c''
      storage/maria/ma_close.c:
        New BitKeeper file ``storage/maria/ma_close.c''
      storage/maria/ma_create.c:
        New BitKeeper file ``storage/maria/ma_create.c''
      storage/maria/ma_dbug.c:
        New BitKeeper file ``storage/maria/ma_dbug.c''
      storage/maria/ma_delete.c:
        New BitKeeper file ``storage/maria/ma_delete.c''
      storage/maria/ma_delete_all.c:
        New BitKeeper file ``storage/maria/ma_delete_all.c''
      storage/maria/ma_delete_table.c:
        New BitKeeper file ``storage/maria/ma_delete_table.c''
      storage/maria/ma_dynrec.c:
        New BitKeeper file ``storage/maria/ma_dynrec.c''
      storage/maria/ma_extra.c:
        New BitKeeper file ``storage/maria/ma_extra.c''
      storage/maria/ma_ft_boolean_search.c:
        New BitKeeper file ``storage/maria/ma_ft_boolean_search.c''
      storage/maria/ma_ft_eval.c:
        New BitKeeper file ``storage/maria/ma_ft_eval.c''
      storage/maria/ma_ft_eval.h:
        New BitKeeper file ``storage/maria/ma_ft_eval.h''
      storage/maria/ma_ft_nlq_search.c:
        New BitKeeper file ``storage/maria/ma_ft_nlq_search.c''
      storage/maria/ma_ft_parser.c:
        New BitKeeper file ``storage/maria/ma_ft_parser.c''
      storage/maria/ma_ft_stem.c:
        New BitKeeper file ``storage/maria/ma_ft_stem.c''
      storage/maria/ma_ft_test1.c:
        New BitKeeper file ``storage/maria/ma_ft_test1.c''
      storage/maria/ma_ft_test1.h:
        New BitKeeper file ``storage/maria/ma_ft_test1.h''
      storage/maria/ma_ft_update.c:
        New BitKeeper file ``storage/maria/ma_ft_update.c''
      storage/maria/ma_ftdefs.h:
        New BitKeeper file ``storage/maria/ma_ftdefs.h''
      storage/maria/ma_fulltext.h:
        New BitKeeper file ``storage/maria/ma_fulltext.h''
      storage/maria/ma_info.c:
        New BitKeeper file ``storage/maria/ma_info.c''
      storage/maria/ma_init.c:
        New BitKeeper file ``storage/maria/ma_init.c''
      storage/maria/ma_key.c:
        New BitKeeper file ``storage/maria/ma_key.c''
      storage/maria/ma_keycache.c:
        New BitKeeper file ``storage/maria/ma_keycache.c''
      storage/maria/ma_locking.c:
        New BitKeeper file ``storage/maria/ma_locking.c''
      storage/maria/ma_log.c:
        New BitKeeper file ``storage/maria/ma_log.c''
      storage/maria/ma_open.c:
        New BitKeeper file ``storage/maria/ma_open.c''
      storage/maria/ma_packrec.c:
        New BitKeeper file ``storage/maria/ma_packrec.c''
      storage/maria/ma_page.c:
        New BitKeeper file ``storage/maria/ma_page.c''
      storage/maria/ma_panic.c:
        New BitKeeper file ``storage/maria/ma_panic.c''
      storage/maria/ma_preload.c:
        New BitKeeper file ``storage/maria/ma_preload.c''
      storage/maria/ma_range.c:
        New BitKeeper file ``storage/maria/ma_range.c''
      storage/maria/ma_rename.c:
        New BitKeeper file ``storage/maria/ma_rename.c''
      storage/maria/ma_rfirst.c:
        New BitKeeper file ``storage/maria/ma_rfirst.c''
      storage/maria/ma_rkey.c:
        New BitKeeper file ``storage/maria/ma_rkey.c''
      storage/maria/ma_rlast.c:
        New BitKeeper file ``storage/maria/ma_rlast.c''
      storage/maria/ma_rnext.c:
        New BitKeeper file ``storage/maria/ma_rnext.c''
      storage/maria/ma_rnext_same.c:
        New BitKeeper file ``storage/maria/ma_rnext_same.c''
      storage/maria/ma_rprev.c:
        New BitKeeper file ``storage/maria/ma_rprev.c''
      storage/maria/ma_rrnd.c:
        New BitKeeper file ``storage/maria/ma_rrnd.c''
      storage/maria/ma_rsame.c:
        New BitKeeper file ``storage/maria/ma_rsame.c''
      storage/maria/ma_rsamepos.c:
        New BitKeeper file ``storage/maria/ma_rsamepos.c''
      storage/maria/ma_rt_index.c:
        New BitKeeper file ``storage/maria/ma_rt_index.c''
      storage/maria/ma_rt_index.h:
        New BitKeeper file ``storage/maria/ma_rt_index.h''
      storage/maria/ma_rt_key.c:
        New BitKeeper file ``storage/maria/ma_rt_key.c''
      storage/maria/ma_rt_key.h:
        New BitKeeper file ``storage/maria/ma_rt_key.h''
      storage/maria/ma_rt_mbr.c:
        New BitKeeper file ``storage/maria/ma_rt_mbr.c''
      storage/maria/ma_rt_mbr.h:
        New BitKeeper file ``storage/maria/ma_rt_mbr.h''
      storage/maria/ma_rt_split.c:
        New BitKeeper file ``storage/maria/ma_rt_split.c''
      storage/maria/ma_rt_test.c:
        New BitKeeper file ``storage/maria/ma_rt_test.c''
      storage/maria/ma_scan.c:
        New BitKeeper file ``storage/maria/ma_scan.c''
      storage/maria/ma_search.c:
        New BitKeeper file ``storage/maria/ma_search.c''
      storage/maria/ma_sort.c:
        New BitKeeper file ``storage/maria/ma_sort.c''
      storage/maria/ma_sp_defs.h:
        New BitKeeper file ``storage/maria/ma_sp_defs.h''
      storage/maria/ma_sp_key.c:
        New BitKeeper file ``storage/maria/ma_sp_key.c''
      storage/maria/ma_sp_test.c:
        New BitKeeper file ``storage/maria/ma_sp_test.c''
      storage/maria/ma_static.c:
        New BitKeeper file ``storage/maria/ma_static.c''
      storage/maria/ma_statrec.c:
        New BitKeeper file ``storage/maria/ma_statrec.c''
      storage/maria/ma_test1.c:
        New BitKeeper file ``storage/maria/ma_test1.c''
      storage/maria/ma_test2.c:
        New BitKeeper file ``storage/maria/ma_test2.c''
      storage/maria/ma_test3.c:
        New BitKeeper file ``storage/maria/ma_test3.c''
      storage/maria/ma_test_all.sh:
        New BitKeeper file ``storage/maria/ma_test_all.sh''
      storage/maria/ma_unique.c:
        New BitKeeper file ``storage/maria/ma_unique.c''
      storage/maria/ma_update.c:
        New BitKeeper file ``storage/maria/ma_update.c''
      storage/maria/ma_write.c:
        New BitKeeper file ``storage/maria/ma_write.c''
      storage/maria/maria_chk.c:
        New BitKeeper file ``storage/maria/maria_chk.c''
      storage/maria/maria_def.h:
        New BitKeeper file ``storage/maria/maria_def.h''
      storage/maria/maria_ftdump.c:
        New BitKeeper file ``storage/maria/maria_ftdump.c''
      storage/maria/maria_log.c:
        New BitKeeper file ``storage/maria/maria_log.c''
      storage/maria/maria_pack.c:
        New BitKeeper file ``storage/maria/maria_pack.c''
      storage/maria/maria_rename.sh:
        New BitKeeper file ``storage/maria/maria_rename.sh''
      storage/maria/test_pack:
        New BitKeeper file ``storage/maria/test_pack''
      storage/myisam/ft_myisam.c:
        New BitKeeper file ``storage/myisam/ft_myisam.c''
      d2b8d744
  25. 10 Mar, 2006 1 commit
    • unknown's avatar
      Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX · fbe17c2a
      unknown authored
      For "count(*) while index_column = value" an index read
      is done. It consists of an index scan and retrieval of
      each key.
      
      For efficiency reasons the index scan stores the key in
      the special buffer 'lastkey2' once only. At the first 
      iteration it notes this fact with the flag 
      HA_STATE_RNEXT_SAME in 'info->update'.
      
      For efficiency reasons, the key retrieval for blobs
      does not allocate a new buffer, but uses 'lastkey2'...
      
      Now I clear the HA_STATE_RNEXT_SAME flag whenever the 
      buffer has been polluted. In this case, the index scan
      copies the key value again (and sets the flag again).
      
      
      include/my_base.h:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Changed the comment for HA_STATE_RNEXT_SAME as a warning
        for future uses.
      myisam/mi_delete.c:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Removing the flag HA_STATE_RNEXT_SAME from info->update
        if info->lastkey2 was reused for another purpose than
        index scanning.
      myisam/mi_key.c:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Removing the flag HA_STATE_RNEXT_SAME from info->update
        if info->lastkey2 was reused for another purpose than
        index scanning.
      myisam/mi_rnext_same.c:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Removed trailing space and fixed a comment.
      myisam/mi_unique.c:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Removing the flag HA_STATE_RNEXT_SAME from info->update
        if info->lastkey2 was reused for another purpose than
        index scanning.
      myisam/mi_update.c:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Removing the flag HA_STATE_RNEXT_SAME from info->update
        if info->lastkey2 was reused for another purpose than
        index scanning.
      myisam/mi_write.c:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Removing the flag HA_STATE_RNEXT_SAME from info->update
        if info->lastkey2 was reused for another purpose than
        index scanning.
      mysql-test/r/myisam.result:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Added test result.
      mysql-test/t/myisam.test:
        Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
        Added test.
      fbe17c2a
  26. 22 Feb, 2006 1 commit
    • unknown's avatar
      Bug#10460 SHOW CREATE TABLE uses inconsistent upper/lower case · 31a7a0d6
      unknown authored
      mysql-test/r/alter_table.result:
        Update test result
      mysql-test/r/analyse.result:
        Update test result
      mysql-test/r/archive.result:
        Update test result
      mysql-test/r/archive_bitfield.result:
        Update test result
      mysql-test/r/archive_gis.result:
        Update test result
      mysql-test/r/bdb.result:
        Update test result
      mysql-test/r/bdb_gis.result:
        Update test result
      mysql-test/r/bigint.result:
        Update test result
      mysql-test/r/binary.result:
        Update test result
      mysql-test/r/case.result:
        Update test result
      mysql-test/r/cast.result:
        Update test result
      mysql-test/r/constraints.result:
        Update test result
      mysql-test/r/create.result:
        Update test result
      mysql-test/r/ctype_collate.result:
        Update test result
      mysql-test/r/ctype_create.result:
        Update test result
      mysql-test/r/ctype_latin1_de.result:
        Update test result
      mysql-test/r/ctype_many.result:
        Update test result
      mysql-test/r/ctype_mb.result:
        Update test result
      mysql-test/r/ctype_recoding.result:
        Update test result
      mysql-test/r/ctype_sjis.result:
        Update test result
      mysql-test/r/ctype_tis620.result:
        Update test result
      mysql-test/r/ctype_ucs.result:
        Update test result
      mysql-test/r/ctype_ujis.result:
        Update test result
      mysql-test/r/ctype_utf8.result:
        Update test result
      mysql-test/r/default.result:
        Update test result
      mysql-test/r/events.result:
        Update test result
      mysql-test/r/federated.result:
        Update test result
      mysql-test/r/fulltext.result:
        Update test result
      mysql-test/r/func_gconcat.result:
        Update test result
      mysql-test/r/func_group.result:
        Update test result
      mysql-test/r/func_math.result:
        Update test result
      mysql-test/r/func_misc.result:
        Update test result
      mysql-test/r/func_str.result:
        Update test result
      mysql-test/r/func_system.result:
        Update test result
      mysql-test/r/gis-rtree.result:
        Update test result
      mysql-test/r/heap.result:
        Update test result
      mysql-test/r/index_merge_innodb.result:
        Update test result
      mysql-test/r/information_schema.result:
        Update test result
      mysql-test/r/innodb.result:
        Update test result
      mysql-test/r/innodb_gis.result:
        Update test result
      mysql-test/r/key.result:
        Update test result
      mysql-test/r/merge.result:
        Update test result
      mysql-test/r/myisam.result:
        Update test result
      mysql-test/r/mysqldump-max.result:
        Update test result
      mysql-test/r/mysqldump.result:
        Update test result
      mysql-test/r/ndb_bitfield.result:
        Update test result
      mysql-test/r/ndb_gis.result:
        Update test result
      mysql-test/r/ndb_partition_key.result:
        Update test result
      mysql-test/r/null.result:
        Update test result
      mysql-test/r/partition.result:
        Update test result
      mysql-test/r/partition_02myisam.result:
        Update test result
      mysql-test/r/partition_mgm_err.result:
        Update test result
      mysql-test/r/partition_range.result:
        Update test result
      mysql-test/r/ps_2myisam.result:
        Update test result
      mysql-test/r/ps_3innodb.result:
        Update test result
      mysql-test/r/ps_4heap.result:
        Update test result
      mysql-test/r/ps_5merge.result:
        Update test result
      mysql-test/r/ps_6bdb.result:
        Update test result
      mysql-test/r/rpl_mixed_ddl_dml.result:
        Update test result
      mysql-test/r/rpl_multi_engine.result:
        Update test result
      mysql-test/r/rpl_ndb_UUID.result:
        Update test result
      mysql-test/r/show_check.result:
        Update test result
      mysql-test/r/sp-vars.result:
        Update test result
      mysql-test/r/sp.result:
        Update test result
      mysql-test/r/sql_mode.result:
        Update test result
      mysql-test/r/strict.result:
        Update test result
      mysql-test/r/subselect.result:
        Update test result
      mysql-test/r/symlink.result:
        Update test result
      mysql-test/r/synchronization.result:
        Update test result
      mysql-test/r/system_mysql_db.result:
        Update test result
      mysql-test/r/temp_table.result:
        Update test result
      mysql-test/r/trigger.result:
        Update test result
      mysql-test/r/type_binary.result:
        Update test result
      mysql-test/r/type_bit.result:
        Update test result
      mysql-test/r/type_bit_innodb.result:
        Update test result
      mysql-test/r/type_blob.result:
        Update test result
      mysql-test/r/type_decimal.result:
        Update test result
      mysql-test/r/type_enum.result:
        Update test result
      mysql-test/r/type_float.result:
        Update test result
      mysql-test/r/type_nchar.result:
        Update test result
      mysql-test/r/type_newdecimal.result:
        Update test result
      mysql-test/r/type_set.result:
        Update test result
      mysql-test/r/type_timestamp.result:
        Update test result
      mysql-test/r/type_varchar.result:
        Update test result
      mysql-test/r/union.result:
        Update test result
      mysql-test/r/user_var.result:
        Update test result
      mysql-test/r/variables.result:
        Update test result
      sql/sql_show.cc:
        Make ouput from SHOW CREATE TABLE use uppercase for "CHARACTER SET", "COLLATE", "DEFAULT", "ON UPDATE" and "AUTO_INCREMENT"
      31a7a0d6
  27. 01 Feb, 2006 1 commit
    • unknown's avatar
      Bug#8841 - CHECKSUM TABLE is broken in MyISAM · 08394605
      unknown authored
      There are (at least) two implementations of the checksum
      computation. One is in MyISAM for the quick checksum. It
      is executed on every row change. The other is in the
      SQL layer for the extended checksum. It retrieves all rows
      of a table via the respective storage engine.
      
      In former MySQL versions varchars were stored with their 
      maximum length, but now with their real length similar to
      blobs.
      
      This change had been forgotten to take care of in the
      extended checksum calculation. Hence too much data was
      checksumed. In MyISAM this change had been taken care of 
      already. Only the real data is included in the checksum.
      
      I changed mysql_checksum_table() so that it uses the
      length information of true varchar fields instead
      of the field length like in former varchar 
      implementations.
      
      
      mysql-test/r/innodb.result:
        Bug#8841 - CHECKSUM TABLE is broken in MyISAM
        Fixed test results.
      mysql-test/r/myisam.result:
        Bug#8841 - CHECKSUM TABLE is broken in MyISAM
        Fixed test results.
      sql/sql_table.cc:
        Bug#8841 - CHECKSUM TABLE is broken in MyISAM
        Changed mysql_checksum_table() so that it uses the
        length information of true varchar fields instead
        of the field length like in former varchar 
        implementations.
      08394605
  28. 23 Jan, 2006 1 commit
  29. 22 Nov, 2005 1 commit
  30. 15 Nov, 2005 1 commit
  31. 07 Nov, 2005 1 commit
    • unknown's avatar
      Bug#14616 - Freshly imported table returns error 124 when using LIMIT · 5412ee4f
      unknown authored
      Initialized usable_keys from table->keys_in_use instead of ~0
      in test_if_skip_sort_order(). It was possible that a disabled
      index was used for sorting.
      
      
      mysql-test/r/myisam.result:
        Bug#14616 - Freshly imported table returns error 124 when using LIMIT
        The test result.
      mysql-test/t/myisam.test:
        Bug#14616 - Freshly imported table returns error 124 when using LIMIT
        The test case.
      5412ee4f
  32. 28 Oct, 2005 1 commit
    • unknown's avatar
      Fix for BUG#13814: in mi_pack_key(), when processing NULL value for TINYBLOB key segment, · 81882f71
      unknown authored
      do advance the source pointer over 2 bytes that specify value length.
      
      
      myisam/mi_key.c:
        Fix for BUG#13814: in mi_pack_key(), when processing NULL value for TINYBLOB key segment,
        do advance the source pointer over 2 bytes that specify value length (for NULL value the 
        format is: null_marker 0x01, value length 0x00 0x00, data: 0x00 keyseg->length times).
        We need to advance over 2 bytes separately as keyseg->length doesn't include them.
      mysql-test/r/myisam.result:
        Testcase for BUG#13814
      mysql-test/t/myisam.test:
        Testcase for BUG#13814
      81882f71
  33. 21 Oct, 2005 1 commit
    • unknown's avatar
      BUG#9622, stage 2, work together with fix for BUG#12232: · 71fdef4d
      unknown authored
      added "nulls_ignored" index statistics collection method for MyISAM tables.
      (notification trigger: this is about BUG#9622).
      
      
      include/my_base.h:
        BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method:
        Added SEARCH_RETURN_B_POS flag for ha_key_cmp()
      include/my_handler.h:
        BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method: added ha_find_null()
      include/myisam.h:
        BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
      myisam/mi_check.c:
        BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method, added 
         mi_collect_stats_*(), updated update_key_parts() to deal with all 3 methods.
      myisam/myisamchk.c:
        BUG#9622: Added nulls_ignored index statistics collection method for MyISAM
      myisam/myisamdef.h:
        BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
      myisam/sort.c:
        BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
      mysql-test/r/myisam.result:
        Testcase for BUG9622
      mysql-test/t/myisam.test:
        Testcase for BUG9622
      mysys/my_handler.c:
        BUG#9622: ha_key_cmp() now supports new SEARCH_RETURN_B_POS flag, added ha_find_null()
      sql/ha_myisam.cc:
        BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
      sql/mysqld.cc:
        BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
      71fdef4d
  34. 29 Sep, 2005 1 commit
    • unknown's avatar
      Fix for BUG#13455: Make "ref" optimizer able to make this inference: · 8bdb41ab
      unknown authored
      "t.key BETWEEN c1 AND c2" and c1 = c2 -> can access table t using "t.key = c1".
      
      
      mysql-test/r/heap.result:
        BUG#13455: updated test results
      mysql-test/r/innodb.result:
        BUG#13455: updated test results
      mysql-test/r/myisam.result:
        BUG#13455: updated test results
      mysql-test/r/range.result:
        Testcase for BUG#13455
      mysql-test/t/range.test:
        Testcase for BUG#13455
      8bdb41ab
  35. 23 Sep, 2005 1 commit
  36. 20 Sep, 2005 1 commit
    • unknown's avatar
      BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index · a2a8216b
      unknown authored
      statistics (like 4.0 did) (patch #3, with review #1 & #2 feedback addressed)
      
      
      include/myisam.h:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      myisam/mi_check.c:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      myisam/myisamchk.c:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      mysql-test/r/myisam.result:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      mysql-test/t/myisam.test:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/ha_myisam.cc:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/handler.h:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/mysqld.cc:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/set_var.cc:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/sql_class.h:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      a2a8216b
  37. 29 Aug, 2005 2 commits
    • unknown's avatar
      Bug#10056 - PACK_KEYS option take values greater than 1 while creating table · 27201ccb
      unknown authored
      Added a switch to reject illegal values for PACK_KEYS.
      
      
      mysql-test/r/myisam.result:
        Bug#10056 - PACK_KEYS option take values greater than 1 while creating table
        The test result.
      mysql-test/t/myisam.test:
        Bug#10056 - PACK_KEYS option take values greater than 1 while creating table
        The test case.
      27201ccb
    • unknown's avatar
      Bug#12296 - CHECKSUM TABLE reports 0 for the table · ea363750
      unknown authored
      Skipping deleted records instead of breaking the loop
      during checksum calculation.
      
      
      mysql-test/r/myisam.result:
        Bug#12296 - CHECKSUM TABLE reports 0 for the table
        The test result.
      mysql-test/t/myisam.test:
        Bug#12296 - CHECKSUM TABLE reports 0 for the table
        The test case.
      ea363750
  38. 27 Jul, 2005 1 commit
  39. 13 May, 2005 1 commit