1. 29 Jul, 2008 1 commit
    • Sergei Golubchik's avatar
      WL#3064 - waiting threads - wait-for graph and deadlock detection · 6ba12f07
      Sergei Golubchik authored
      client/mysqltest.c:
        compiler warnings
      configure.in:
        remove old tests for unused programs
        disable the use of gcc built-ins if smp assembler atomics were selected explictily.
        add waiting_threads.o to THREAD_LOBJECTS
      include/lf.h:
        replace the end-of-stack pointer with the pointer to the end-of-stack pointer.
        the latter could be stored in THD (mysys_vars) and updated in pool-of-threads
        scheduler.
        constructor/destructor in lf-alloc
      include/my_pthread.h:
        shuffle set_timespec/set_timespec_nsec macros a bit to be able to fill
        several timeout structures with only one my_getsystime() call
      include/waiting_threads.h:
        waiting threads - wait-for graph and deadlock detection
      mysys/Makefile.am:
        add waiting_threads.c
      mysys/lf_alloc-pin.c:
        replace the end-of-stack pointer with the pointer to the end-of-stack pointer.
        the latter could be stored in THD (mysys_vars) and updated in pool-of-threads
        scheduler.
        constructor/destructor in lf-alloc
      mysys/lf_hash.c:
        constructor/destructor in lf-alloc
      mysys/my_thr_init.c:
        remember end-of-stack pointer in the mysys_var
      mysys/waiting_threads.c:
        waiting threads - wait-for graph and deadlock detection
      storage/maria/ha_maria.cc:
        replace the end-of-stack pointer with the pointer to the end-of-stack pointer.
        the latter could be stored in THD (mysys_vars) and updated in pool-of-threads
        scheduler.
      storage/maria/ma_commit.c:
        replace the end-of-stack pointer with the pointer to the end-of-stack pointer.
        the latter could be stored in THD (mysys_vars) and updated in pool-of-threads
        scheduler.
      storage/maria/trnman.c:
        replace the end-of-stack pointer with the pointer to the end-of-stack pointer.
        the latter could be stored in THD (mysys_vars) and updated in pool-of-threads
        scheduler.
      storage/maria/trnman_public.h:
        replace the end-of-stack pointer with the pointer to the end-of-stack pointer.
        the latter could be stored in THD (mysys_vars) and updated in pool-of-threads
        scheduler.
      storage/maria/unittest/trnman-t.c:
        replace the end-of-stack pointer with the pointer to the end-of-stack pointer.
        the latter could be stored in THD (mysys_vars) and updated in pool-of-threads
        scheduler.
      unittest/mysys/Makefile.am:
        add waiting_threads-t
      unittest/mysys/lf-t.c:
        factor out the common code for multi-threaded stress unit tests
        move lf tests to a separate file
      unittest/mysys/my_atomic-t.c:
        factor out the common code for multi-threaded stress unit tests
        move lf tests to a separate file
      unittest/mysys/thr_template.c:
        factor out the common code for multi-threaded stress unit tests
      unittest/mysys/waiting_threads-t.c:
        wt tests
      6ba12f07
  2. 16 Jun, 2008 1 commit
  3. 13 Jun, 2008 2 commits
    • Guilhem Bichot's avatar
      Port of ma_test_force_start.pl (test program for... · 771a66ea
      Guilhem Bichot authored
      Port of ma_test_force_start.pl (test program for --maria-force-start-after-recovery-failures) to Windows.
      
      storage/maria/ma_test_force_start.pl:
        port to Windows: detection of where 'mysql' command-line client is (debug/release/etc)), .exe suffix,
        --console instead of --mem, --P instead of --socket, taskkill instead of perl's kill.
      771a66ea
    • Guilhem Bichot's avatar
      disabling lockman2-t: takes too much time for a unit test (>=15 min), and what it · 26f685e7
      Guilhem Bichot authored
      tests is not used in Maria, this fixes BUG#34744 "Maria Unit test "lockman2" fails
      on Mac OS X 10.4 PowerPC 64-bit"
      
      storage/maria/unittest/CMakeLists.txt:
        disabling lockman2-t
      storage/maria/unittest/Makefile.am:
        disabling lockman2-t
      26f685e7
  4. 12 Jun, 2008 2 commits
    • unknown's avatar
      More safe flush_horizon variable initialization. · abdda9e2
      unknown authored
      abdda9e2
    • Guilhem Bichot's avatar
      Fix for BUG#35801 "Maria: unreadable log during tests" and · bbef67f5
      Guilhem Bichot authored
      BUG#35823 "Maria: log handler assertion (page[page_offset] & (3 << 6)) == 0x00... fails"
      Both random problems can be explained by the REDO phase starting from a log horizon which is not a LSN,
      which is the bug fixed here.
      
      storage/maria/ma_recovery.c:
        In Recovery, REDO phase needs to start log reading from a LSN, not a log horizon: start_address was only
        guaranteed to be a horizon, not necessarily a LSN.
        On some machine and test, it happened that start_address was only a log horizon, and run_redo_phase()
        tried to read from there, and log handler naturally refused that:
        ma_loghandler.c:6797: translog_read_record_header_from_buffer: Assertion `translog_is_LSN_chunk(page[page_offset])' failed. And in non-debug build, just the "redo phase failed" message in the error log.
        This was random, because depended on amount of checkpoints which is timing-dependent; also depended on Maria tests
        ran or skipped (so, debug or non-debug builds)... Bad code was introduced by me end of December so it's likely
        to explain lots of random log handler errors we observed since.
      bbef67f5
  5. 11 Jun, 2008 1 commit
    • Guilhem Bichot's avatar
      Fix for BUG#37005 "Maria: ALTER TABLE TRANSACTIONAL=0 leaves table transactional inside Maria" · 8ac71501
      Guilhem Bichot authored
      mysql-test/r/maria-page-checksum.result:
        result for new test portion. Without the code fix, you would see a wrong "yes" or "no" in the "Crashsafe" line
        for iterations 2,9,14.
      mysql-test/t/maria-page-checksum.test:
        Adding test for BUG#37005 "Maria: ALTER TABLE TRANSACTIONAL=0 leaves table transactional inside Maria"
      sql/sql_table.cc:
        In ALTER TABLE, we already rebuilt the table entirely if the DEFAULT CHARSET, ROW_FORMAT or PAGE_CHECKSUM
        clauses were used; we have to do the same if the TRANSACTIONAL clause is used, because it affects
        the table inside the engine (for example, Maria makes shorter rows in non-transactional tables).
        Not doing so led to the BUG#37005, where ALTER TABLE TRANSACTIONAL=0 sometimes left the table
        transactional into Maria though not in the frm.
      8ac71501
  6. 10 Jun, 2008 6 commits
    • Guilhem Bichot's avatar
      public commit mails · 8ffd0339
      Guilhem Bichot authored
      8ffd0339
    • Guilhem Bichot's avatar
      automerge · 5465dd08
      Guilhem Bichot authored
      5465dd08
    • unknown's avatar
      Fixed non-debug build. · 7c87c307
      unknown authored
      storage/maria/ma_loghandler.c:
        Now we need buffer number to set dirty buffers mask.
      7c87c307
    • Guilhem Bichot's avatar
      Fix for BUG#36319 "Maria: table is not empty but DELETE and SELECT find no rows": · a0aa81f9
      Guilhem Bichot authored
      _ma_scan_block_record() has "while (likely(bits))" where bits is ulonglong, so was cast to long
      which lost most significant bits (32-bit linux), and test yielded false.
      
      include/my_global.h:
        It's too easy to think that because "if (some_longlong)" works as intended, "if (likely(longlong))" will work too,
        though it does not. Making likely() cast to bool.
      mysql-test/r/maria2.result:
        Result. Before fixing the bug, 810 was 812 and 0 was 812 (DELETE and SELECT found no rows
        though they were there).
      mysql-test/t/maria2.test:
        Testcase for the bug. maria.test is huge now, so starting a second test file instead.
      a0aa81f9
    • Guilhem Bichot's avatar
      Fix for Valgrind errors when running rt_test and ma_rt_test, and segmentation fault · f89c61f5
      Guilhem Bichot authored
      in ma_rt_test -M (BUG#36321); keyinfo/recinfo/keyseg had non-initialized parts.
      maria_scan() was not wrapped in maria_scan_init()/end() so "ma_rt_test -M" found no rows.
      Preparing for inclusion into ma_test_all-t and ma_test_recovery.pl (still prevented by
      BUG#37307 "Maria: R-tree unit test produces corrupted table").
      
      storage/maria/ma_rt_test.c:
        Some members of keyinfo, recinfo, keyseg had non-initialized parts, led to Valgrind errors,
        and also segmentation fault when running with -M (=BLOCK_RECORD) (BUG#36321).
        We now bzero them like they are in mi_test1.
        Other problems:
        - maria_scan() was not wrapped in maria_scan_init()/end() so "ma_rt_test -M" found no rows.
        - --silent had almost no effect, now it really silences normal output.
        - Some errors were going to stdout, they now go to stderr.
        Added option for testing versioning, to fit well into ma_test_all-t.
      storage/maria/unittest/ma_test_all-t:
        preparing for running ma_rt_test when ma_rt_test remaining bugs are fixed
      storage/maria/unittest/ma_test_recovery.pl:
        preparing for running ma_rt_test when ma_rt_test remaining bugs are fixed
      storage/myisam/rt_test.c:
        Some members of keyinfo, recinfo, keyseg were not initialized, led to Valgrind errors.
        We now bzero them like they are in mi_test1.
      f89c61f5
    • unknown's avatar
      merge · 0f660db3
      unknown authored
      0f660db3
  7. 09 Jun, 2008 2 commits
    • unknown's avatar
      WL#4401 "Maria - deserialize translog_flush() calls" · 3967b6cf
      unknown authored
      storage/maria/ma_loghandler.c:
        New flush procedure added.
      storage/maria/unittest/Makefile.am:
        Test of many multi-thread flush added
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Test of many multi-thread flush added
      3967b6cf
    • Guilhem Bichot's avatar
      Fix for build failures under Windows · 5f26e738
      Guilhem Bichot authored
      storage/maria/CMakeLists.txt:
        add missing file
      storage/maria/ma_state.c:
        two include files are in storage/maria, not in include/, so they need "" not <>, or compiler misses them.
      5f26e738
  8. 06 Jun, 2008 1 commit
    • Guilhem Bichot's avatar
      Verify that if Maria table is absent or initially empty, CREATE SELECT and... · 54b719a2
      Guilhem Bichot authored
      Verify that if Maria table is absent or initially empty, CREATE SELECT and INSERT SELECT with enough
      rows cause no logging
      
      mysql-test/include/maria_empty_logs.inc:
        don't assume that mysqltest is the default db
      mysql-test/r/maria-no-logging.result:
        result. Without the optimization of disabling logging in ha_maria::start_bulk_insert(),
        we see 24k instead of 16k, in the cases where the table is empty.
      mysql-test/r/maria-purge.result:
        side effect of change to maria_empty_logs.inc
      mysql-test/t/maria-purge.test:
        maria-purge.test used to fail when run in a group like this "--big t/*maria*.test" because
        SHOW ENGINE MARIA LOGS was influenced by previous tests; deleting logs to fix that.
      54b719a2
  9. 05 Jun, 2008 1 commit
    • Sergei Golubchik's avatar
      use "default" plugin configuration by default, not "none". · 17a9470e
      Sergei Golubchik authored
      enable maria in the default plugin configuration
      
      config/ac-macros/plugins.m4:
        typo in comment fixed.
        change default plugin configuration to be "default" not "none".
        don't print default plugin configuration in the help text (as it's "default" anyway)
      configure.in:
        use "default" plugin configuration by default, not "none"
      storage/maria/plug.in:
        enable maria in the default plugin configuration
      17a9470e
  10. 04 Jun, 2008 3 commits
    • Michael Widenius's avatar
      Automatic merge · ab75389a
      Michael Widenius authored
      ab75389a
    • Michael Widenius's avatar
      Fixed failing trnman-t unit test · 7d39726b
      Michael Widenius authored
      mysql-test/valgrind.supp:
        Fixed suppression rule
      storage/maria/unittest/trnman-t.c:
        Test failed becasue it accessed reused structures.
        I fixed this by creating a separate array to hold trids for the transactions
      7d39726b
    • Guilhem Bichot's avatar
      Making maria-recover.test work the same with debug and non-debug builds: one... · 39049add
      Guilhem Bichot authored
      Making maria-recover.test work the same with debug and non-debug builds: one error message was specific of
      debug builds and is now removed, left only in non-ha-maria programs.
      
      mysql-test/r/maria-recover.result:
        This warning is not thrown anymore when used in ha_maria
      mysql-test/t/maria-recover.test:
        In this patch, corruption warnings are unified between debug and non-debug builds, so test can run on both
      storage/maria/ha_maria.cc:
        declare that Maria is used from ha_maria
      storage/maria/ma_static.c:
        new variable to tell if Maria is used from ha_maria
      storage/maria/maria_def.h:
        Comment describing what maria_print_error() does. And change of this macro: it now does nothing when Maria
        is used from ha_maria.
      39049add
  11. 03 Jun, 2008 3 commits
    • Guilhem Bichot's avatar
      comments in tests · 97189b02
      Guilhem Bichot authored
      mysql-test/t/maria-recover.test:
        comments
      97189b02
    • Guilhem Bichot's avatar
      Fix for BUG#36104 "INFORMATION_SCHEMA.TABLES shows TRANSACTIONAL=1 twice in CREATE_OPTIONS" · cd8f6a1e
      Guilhem Bichot authored
      mysql-test/r/maria.result:
        result; before the bugfix it would be "TRANSACTIONAL=1 transactional=1"
      mysql-test/t/maria.test:
        test for BUG#36104 "INFORMATION_SCHEMA.TABLES shows TRANSACTIONAL=1 twice in CREATE_OPTIONS"
      sql-bench/example:
        doblewrite->doublewrite
      sql/mysqld.cc:
        fix of a wrong 5.1->maria merge of the past
      sql/sql_insert.cc:
        removing my old idea of disabling transactionality in CREATE SELECT:
        1) it caused bugs because re-enabling (ha_enable_transaction()) causes implicit commit, so in complex cases
        like "CREATE SELECT some_func())", where some_func() would want to insert two rows in another table, and fail on the second row, the implicit commit would commit the inserted row, while it should roll back.
        2) it's not needed anymore, because CREATE SELECT uses bulk insert, and Maria has transactionality disabled by
        bulk insert.
      sql/sql_show.cc:
        This was duplicate code, causing BUG#36104 "INFORMATION_SCHEMA.TABLES shows TRANSACTIONAL=1 twice in CREATE_OPTIONS"
      cd8f6a1e
    • Guilhem Bichot's avatar
      Limit maria-recover.test to debug builds and non-ps-protocol for now. Reason... · 280c989c
      Guilhem Bichot authored
      Limit maria-recover.test to debug builds and non-ps-protocol for now. Reason is that non-debug Maria outputs
      less corruption warnings (to be discussed), and mysqltest eats warnings when in ps-protocol (to be discussed).
      This is temporary until a better fix is decided.
      
      mysql-test/t/maria-recover.test:
        limit test to debug builds and non-ps-protocol for now
      280c989c
  12. 02 Jun, 2008 4 commits
    • Guilhem Bichot's avatar
      send commit mails · f829f23e
      Guilhem Bichot authored
      f829f23e
    • Guilhem Bichot's avatar
      WL#4374 "Maria - force start if Recovery fails multiple times" · a5bcb63f
      Guilhem Bichot authored
      http://forge.mysql.com/worklog/task.php?id=4374
      new option --maria-force-start-after-recovery-failures=N; number of consecutive recovery failures (failures
      of log reading or recovery processing, anything in [translog_init(),maria_recovery_from_log()])
      is stored in the control file; if at a Maria start they are more than N, logs are removed. This is for automated
      systems which have to run whatever happens. As tables risk staying corrupted, --maria-recover should also
      be used on them: this revision makes maria-recover work (it was disabled).
      Fixed bug in translog_is_log_files(). translog_init() now prints message to error log if failed.
      Removed \0 in the output of SHOW ENGINE MARIA LOGS; removed hard-coded engine name there.
      
      KNOWN_BUGS.txt:
        As option --maria-force-start-after-recovery-failures is added, it corresponds to the wish "we should fix that if this happens etc".
        LOAD INDEX is not ignored since a few weeks. Listed concurrency bugs have been fixed some time ago.
        Recovery of fulltext and GIS indexes works since a few weeks.
      mysql-test/include/maria_make_snapshot.inc:
        configurable prefix in table's name (so far 't' or 't_corrupted')
      mysql-test/include/maria_make_snapshot_for_comparison.inc:
        configurable prefix in table's name (so far 't' or 't_corrupted')
      mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc:
        configurable prefix in table's name (so far 't' or 't_corrupted')
      mysql-test/include/maria_verify_recovery.inc:
        configurable prefix in table's name (so far 't' or 't_corrupted')
      mysql-test/lib/mtr_report.pl:
        new test maria-recover.test generates expected corruption warnings in the error log. maria-recovery.test's corrupted table is renamed to t_corrupted1 instead of t1.
      mysql-test/r/maria-preload.result:
        result update. maria_pagecache_read* values are similar to the previous version of this file, though a bit bigger
        because using the information_schema and the join leads to some internal maria temp table being used, and thus some
        blocks of it being read.
      mysql-test/r/maria-purge.result:
        engine's name in SHOW ENGINE MARIA LOGS changed.
      mysql-test/r/maria-recover.result:
        result for new test. We see corruption messages at first SELECT and then none at second SELECT, expected.
      mysql-test/r/maria-recovery.result:
        result update
      mysql-test/r/maria.result:
        new variables show up
      mysql-test/t/disabled.def:
        BUG#34911 is not fixed but the test had been made independent of the bug (workaround). A new bug (crash) has popped recently, so it has to stay
        disabled (BUG#35107).
      mysql-test/t/maria-preload.test:
        Work around BUG#34911 "FLUSH STATUS doesn't flush what it should":
        compute differences in status variables before and after relevant queries
      mysql-test/t/maria-recover-master.opt:
        test --maria-recover
      mysql-test/t/maria-recover.test:
        Test of the --maria-recover option (build a corrupted table and see if it is auto-repaired)
      mysql-test/t/maria-recovery-big.test:
        update for new API of include/maria*.inc
      mysql-test/t/maria-recovery-bitmap.test:
        update for new API of include/maria*.inc
      mysql-test/t/maria-recovery.test:
        update for new API of include/maria*.inc. Corrupted table t1 renamed to t_corrupted1, so that mtr_report.pl
        does not blindly remove all corruption messages for t1 which is
        a common name.
      storage/maria/ha_maria.cc:
        Enabling maria-recover.
        Adding option and global variable --maria_force_start_after_recovery_failures: ha_maria_init()
        calls mark_recovery_start() and mark_recovery_success() to keep track of failed consecutive recoveries
        and remove logs if needed.
        Removed \0 in the output of SHOW ENGINE MARIA LOGS; removed hard-coded engine name there.
      storage/maria/ma_checkpoint.c:
        new prototype
      storage/maria/ma_control_file.c:
        Storing in one byte in the control file, the number of consecutive recovery failures.
      storage/maria/ma_control_file.h:
        new prototype
      storage/maria/ma_init.c:
        new prototype
      storage/maria/ma_locking.c:
        Need to update open_count on disk at first write and close for transactional tables, like we already did for
        non-transactional tables, otherwise we cannot notice that the table is dubious.
      storage/maria/ma_loghandler.c:
        translog_is_log_files() is made more generic to serve either to search or to delete logs (the latter is
        for --maria-force-start-after-recovery-failures). It also had a bug (always returned FALSE).
      storage/maria/ma_loghandler.h:
        export function because ha_maria::mark_recovery_start() needs it
      storage/maria/ma_recovery.c:
        changing name of maria_recover() to distinguish from the maria-recover option.
      storage/maria/ma_recovery.h:
        changing name of maria_recover() to distinguish from the maria-recover option.
      storage/maria/ma_test_force_start.pl:
        Test of --maria-force-start-after-recovery-failures (and also, to be realistic, of --maria-recover).
        This is standalone because mysql-test-run does not support testing that multiple mysqld restarts expectedly failed.
        I'll have to run it on my machine and also on a Windows machine.
      storage/maria/unittest/ma_control_file-t.c:
        adding recovery_failures to the test
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        fix for compiler warning (unused variable in non-debug build)
      a5bcb63f
    • Michael Widenius's avatar
      Cleanup & Ignore · 2d64cd05
      Michael Widenius authored
      .bzrignore:
        Removed duplicated entires
        Added missing files and directories
        Added ignoring of extensions of temporary files under windows
      2d64cd05
    • Michael Widenius's avatar
      Fixed build errors/warnings caused by my last push · 9977cae8
      Michael Widenius authored
      mysql-test/valgrind.supp:
        Added suppression for not relevant warning for memory leak in dlclose
      storage/maria/ma_blockrec.c:
        Fixed build error on Windows
      storage/maria/ma_delete_all.c:
        Fixed call to wrong function
      storage/maria/ma_state.c:
        Added purcov suppression block
        Removed temporary debug printing
      9977cae8
  13. 29 May, 2008 3 commits
    • unknown's avatar
      After merge fixes · 0816d9a7
      unknown authored
      
      mysys/my_handler_errors.h:
        Updated error messages
      storage/maria/ha_maria.cc:
        After merge fix
      storage/maria/ma_rt_key.c:
        Use share->state.state instead of info->state
      storage/maria/ma_rt_test.c:
        After merge fix
      0816d9a7
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-maria · f83bd712
      unknown authored
      into  mysql.com:/home/my/mysql-maria
      
      
      mysql-test/r/maria.result:
        Auto merged
      mysql-test/suite/ndb/r/ndb_auto_increment.result:
        Auto merged
      mysql-test/t/maria.test:
        Auto merged
      mysys/hash.c:
        Auto merged
      mysys/thr_lock.c:
        Auto merged
      sql/field.cc:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/ha_ndbcluster.h:
        Auto merged
      sql/ha_partition.cc:
        Auto merged
      sql/ha_partition.h:
        Auto merged
      sql/handler.cc:
        Auto merged
      sql/handler.h:
        Auto merged
      sql/log_event.cc:
        Auto merged
      sql/log_event_old.cc:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/protocol.cc:
        Auto merged
      sql/sql_load.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      storage/csv/ha_tina.cc:
        Auto merged
      storage/federated/ha_federated.cc:
        Auto merged
      storage/maria/Makefile.am:
        Auto merged
      storage/maria/ma_check.c:
        Auto merged
      storage/maria/ma_control_file.c:
        Auto merged
      storage/maria/ma_delete_all.c:
        Auto merged
      storage/maria/ma_dynrec.c:
        Auto merged
      storage/maria/ma_init.c:
        Auto merged
      storage/maria/ma_key_recover.c:
        Auto merged
      storage/maria/ma_open.c:
        Auto merged
      storage/maria/ma_page.c:
        Auto merged
      storage/maria/ma_range.c:
        Auto merged
      storage/maria/ma_recovery.c:
        Auto merged
      storage/maria/ma_test1.c:
        Auto merged
      storage/maria/maria_read_log.c:
        Auto merged
      storage/maria/unittest/ma_test_all-t:
        Auto merged
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Auto merged
      storage/maria/unittest/ma_test_recovery.pl:
        Auto merged
      storage/myisam/ha_myisam.cc:
        Auto merged
      storage/myisam/myisamdef.h:
        Auto merged
      include/my_base.h:
        Manual merge where error code are kept same as in 5.1
      mysys/my_handler.c:
        No changes
      sql/item.cc:
        Manual merge
      sql/sql_class.cc:
        Manual merge
      sql/sql_insert.cc:
        Manual merge
      storage/maria/ha_maria.cc:
        Manual merge
      storage/maria/ma_blockrec.c:
        Manual merge
      storage/maria/ma_delete.c:
        Manual merge
      storage/maria/ma_write.c:
        Manual merge
      f83bd712
    • unknown's avatar
      WL#3138: Maria - fast "SELECT COUNT(*) FROM t;" and "CHECKSUM TABLE t" · 5099033c
      unknown authored
      Added argument to maria_end_bulk_insert() to know if the table will be deleted after the operation
      Fixed wrong call to strmake
      Don't call bulk insert in case of inserting only one row (speed optimization as starting/stopping bulk insert
      Allow storing year 2155 in year field
      When running with purify/valgrind avoid copying structures over themself
      Added hook 'trnnam_end_trans_hook' that is called when transaction ends
      Added trn->used_tables that is used to an entry for all tables used by transaction
      Fixed that ndb doesn't crash on duplicate key error when start_bulk_insert/end_bulk_insert are not called
      
      
      include/maria.h:
        Added argument to maria_end_bulk_insert() to know if the table will be deleted after the operation
      include/my_tree.h:
        Added macro 'reset_free_element()' to be able to ignore calls to the external free function.
        Is used to optimize end-bulk-insert in case of failures, in which case we don't want write the remaining keys in the tree
      mysql-test/install_test_db.sh:
        Upgrade to new mysql_install_db options
      mysql-test/r/maria-mvcc.result:
        New tests
      mysql-test/r/maria.result:
        New tests
      mysql-test/suite/ndb/r/ndb_auto_increment.result:
        Fixed error message now when bulk insert is not always called
      mysql-test/suite/ndb/t/ndb_auto_increment.test:
        Fixed error message now when bulk insert is not always called
      mysql-test/t/maria-mvcc.test:
        Added testing of versioning of count(*)
      mysql-test/t/maria-page-checksum.test:
        Added comment
      mysql-test/t/maria.test:
        More tests
      mysys/hash.c:
        Code style change
      sql/field.cc:
        Allow storing year 2155 in year field
      sql/ha_ndbcluster.cc:
        Added new argument to end_bulk_insert() to signal if the bulk insert should ignored
      sql/ha_ndbcluster.h:
        Added new argument to end_bulk_insert() to signal if the bulk insert should ignored
      sql/ha_partition.cc:
        Added new argument to end_bulk_insert() to signal if the bulk insert should ignored
      sql/ha_partition.h:
        Added new argument to end_bulk_insert() to signal if the bulk insert should ignored
      sql/handler.cc:
        Don't call get_dup_key() if there is no table object. This can happen if the handler generates a duplicate key error on commit
      sql/handler.h:
        Added new argument to end_bulk_insert() to signal if the bulk insert should ignored (ie, the table will be deleted)
      sql/item.cc:
        Style fix
        Removed compiler warning
      sql/log_event.cc:
        Added new argument to ha_end_bulk_insert()
      sql/log_event_old.cc:
        Added new argument to ha_end_bulk_insert()
      sql/mysqld.cc:
        Removed compiler warning
      sql/protocol.cc:
        Added DBUG
      sql/sql_class.cc:
        Added DBUG
        Fixed wrong call to strmake
      sql/sql_insert.cc:
        Don't call bulk insert in case of inserting only one row (speed optimization as starting/stopping bulk insert involves a lot of if's)
        Added new argument to ha_end_bulk_insert()
      sql/sql_load.cc:
        Added new argument to ha_end_bulk_insert()
      sql/sql_parse.cc:
        Style fixes
        Avoid goto in common senario
      sql/sql_select.cc:
        When running with purify/valgrind avoid copying structures over themself.  This is not a real bug in itself, but it's a waste of cycles and causes valgrind warnings
      sql/sql_select.h:
        Avoid copying structures over themself.  This is not a real bug in itself, but it's a waste of cycles and causes valgrind warnings
      sql/sql_table.cc:
        Call HA_EXTRA_PREPARE_FOR_DROP if table created by ALTER TABLE is going to be dropped
        Added new argument to ha_end_bulk_insert()
      storage/archive/ha_archive.cc:
        Added new argument to end_bulk_insert()
      storage/archive/ha_archive.h:
        Added new argument to end_bulk_insert()
      storage/federated/ha_federated.cc:
        Added new argument to end_bulk_insert()
      storage/federated/ha_federated.h:
        Added new argument to end_bulk_insert()
      storage/maria/Makefile.am:
        Added ma_state.c and ma_state.h
      storage/maria/ha_maria.cc:
        Versioning of count(*) and checksum
        - share->state.state is now assumed to be correct, not handler->state
        - Call _ma_setup_live_state() in external lock to get count(*)/checksum versioning. In case of
          not versioned and not concurrent insertable table, file->s->state.state contains the correct state information
        
        Other things:
        - file->s -> share
        - Added DBUG_ASSERT() for unlikely case
        - Optimized end_bulk_insert() to not write anything if table is going to be deleted (as in failed alter table)
        - Indentation changes in external_lock becasue of removed 'goto' caused a big conflict even if very little was changed
      storage/maria/ha_maria.h:
        New argument to end_bulk_insert()
      storage/maria/ma_blockrec.c:
        Update for versioning of count(*) and checksum
        Keep share->state.state.data_file_length up to date (not info->state->data_file_length)
        Moved _ma_block_xxxx_status() and maria_versioning() functions to ma_state.c
      storage/maria/ma_check.c:
        Update and use share->state.state instead of info->state
        info->s to share
        Update info->state at end of repair
        Call _ma_reset_state() to update share->state_history at end of repair
      storage/maria/ma_checkpoint.c:
        Call _ma_remove_not_visible_states() on checkpoint to clean up not visible state history from tables
      storage/maria/ma_close.c:
        Remember state history for running transaction even if table is closed
      storage/maria/ma_commit.c:
        Ensure we always call trnman_commit_trn() even if other calls fails. If we don't do that, the translog and state structures will not be freed
      storage/maria/ma_delete.c:
        Versioning of count(*) and checksum:
        - Always update info->state->checksum and info->state->records
      storage/maria/ma_delete_all.c:
        Versioning of count(*) and checksum:
        - Ensure that share->state.state is updated, as here is where we store the primary information
      storage/maria/ma_dynrec.c:
        Use lock_key_trees instead of concurrent_insert to check if trees should be locked.
        This allows us to lock trees both for concurrent_insert and for index versioning.
      storage/maria/ma_extra.c:
        Versioning of count(*) and checksum:
        - Use share->state.state instead of info->state
        - share->concurrent_insert -> share->non_transactional_concurrent_insert
        - Don't update share->state.state from info->state if transactional table
        
        Optimization:
        - Don't flush io_cache or bitmap if we are using FLUSH_IGNORE_CHANGED
      storage/maria/ma_info.c:
        Get most state information from current state
      storage/maria/ma_init.c:
        Add hash table and free function to store states for closed tables
        Install hook for transaction commit/rollback to update history state
      storage/maria/ma_key_recover.c:
        Versioning of count(*) and checksum:
        - Use share->state.state instead of info->state
      storage/maria/ma_locking.c:
        Versioning of count(*) and checksum:
        - Call virtual functions (if exists) to restore/update status
        - Move _ma_xxx_status() functions to ma_state.c
        
        info->s -> share
      storage/maria/ma_open.c:
        Versioning of count(*) and checksum:
        - For not transactional tables, set info->state to point to new allocated state structure.
        - Initialize new info->state_start variable that points to state at start of transaction
        - Copy old history states from hash table (maria_stored_states) first time the table is opened
        - Split flag share->concurrent_insert to non_transactional_concurrent_insert & lock_key_tree
        - For now, only enable versioning of tables without keys (to be fixed in soon!)
        - Added new virtual function to restore status in maria_lock_database)
        
        More DBUG
      storage/maria/ma_page.c:
        Versioning of count(*) and checksum:
        - Use share->state.state instead of info->state
        - Modify share->state.state.key_file_length under share->intern_lock
      storage/maria/ma_range.c:
        Versioning of count(*) and checksum:
        - Lock trees based on share->lock_key_trees
        
        info->s -> share
      storage/maria/ma_recovery.c:
        Versioning of count(*) and checksum:
        - Use share->state.state instead of info->state
        - Update state information on close and when reenabling logging
      storage/maria/ma_rkey.c:
        Versioning of count(*) and checksum:
        - Lock trees based on share->lock_key_trees
      storage/maria/ma_rnext.c:
        Versioning of count(*) and checksum:
        - Lock trees based on share->lock_key_trees
      storage/maria/ma_rnext_same.c:
        Versioning of count(*) and checksum:
        - Lock trees based on share->lock_key_trees
        - Only skip rows based on file length if non_transactional_concurrent_insert is set
      storage/maria/ma_rprev.c:
        Versioning of count(*) and checksum:
        - Lock trees based on share->lock_key_trees
      storage/maria/ma_rsame.c:
        Versioning of count(*) and checksum:
        - Lock trees based on share->lock_key_trees
      storage/maria/ma_sort.c:
        Use share->state.state instead of info->state
        Fixed indentation
      storage/maria/ma_static.c:
        Added maria_stored_state
      storage/maria/ma_update.c:
        Versioning of count(*) and checksum:
        - Always update info->state->checksum and info->state->records
        - Remove optimization for index file update as it doesn't work for transactional tables
      storage/maria/ma_write.c:
        Versioning of count(*) and checksum:
        - Always update info->state->checksum and info->state->records
      storage/maria/maria_def.h:
        Move MARIA_STATUS_INFO to ma_state.h
        
        Changes to MARIA_SHARE:
        - Added state_history to store count(*)/checksum states
        - Added in_trans as counter if table is used by running transactions
        - Split concurrent_insert into lock_key_trees and on_transactional_concurrent_insert.
        - Added virtual function lock_restore_status
        
        Changes to MARIA_HA:
        - save_state -> state_save
        - Added state_start to store state at start of transaction
      storage/maria/maria_pack.c:
        Versioning of count(*) and checksum:
        - Use share->state.state instead of info->state
        
        Indentation fixes
      storage/maria/trnman.c:
        Added hook 'trnnam_end_trans_hook' that is called when transaction ends
        Added trn->used_tables that is used to an entry for all tables used by transaction
        More DBUG
        Changed return type of trnman_end_trn() to my_bool
        Added trnman_get_min_trid() to get minimum trid in use.
        Added trnman_exists_active_transactions() to check if there exist a running transaction started between two commit id
      storage/maria/trnman.h:
        Added 'used_tables'
        Moved all pointers into same groups to get better memory alignment
      storage/maria/trnman_public.h:
        Added prototypes for new functions and variables
        Chagned return type of trnman_end_trn() to my_bool
      storage/myisam/ha_myisam.cc:
        Added argument to end_bulk_insert() if operation should be aborted
      storage/myisam/ha_myisam.h:
        Added argument to end_bulk_insert() if operation should be aborted
      storage/maria/ma_state.c:
        Functions to handle state of count(*) and checksum
      storage/maria/ma_state.h:
        Structures and declarations to handle state of count(*) and checksum
      5099033c
  14. 26 May, 2008 1 commit
  15. 14 May, 2008 2 commits
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria · c1a83aa9
      unknown authored
      into  a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-maria.monty
      
      
      configure.in:
        Auto merged
      c1a83aa9
    • unknown's avatar
      Manual merge and some fixes. · e771ee75
      unknown authored
      
      mysql-test/include/varchar.inc:
        Manual merge between 5.1 and maria.
        
        Added a comment.
      mysql-test/r/maria.result:
        Temporary fix.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Manual merge.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Manual merge.
      sql/handler.h:
        Manual merge + fix.
      sql/item.h:
        Manual merge + fix.
      sql/log.cc:
        Manual merge + fix.
      sql/sql_insert.cc:
        Manual merge + fix. A commit was done when using
        create table ... select from for transactional tables
        other than maria, when an error occurred and
        transaction should have been aborted.
      e771ee75
  16. 09 May, 2008 1 commit
  17. 07 May, 2008 1 commit
  18. 06 May, 2008 2 commits
  19. 29 Apr, 2008 1 commit
    • unknown's avatar
      After merge fixes. · 663f971b
      unknown authored
      
      BitKeeper/deleted/.del-my_bit.h:
        Delete: include/my_bit.h
      663f971b
  20. 28 Apr, 2008 1 commit
    • unknown's avatar
      Merge mysql.com:/home/my/mysql-5.1 · 50ceea65
      unknown authored
      into  mysql.com:/home/my/mysql-new
      
      
      BitKeeper/etc/ignore:
        auto-union
      BUILD/SETUP.sh:
        Auto merged
      CMakeLists.txt:
        Auto merged
      client/get_password.c:
        Auto merged
      client/mysqldump.c:
        Auto merged
      client/mysqltest.c:
        Auto merged
      cmd-line-utils/readline/bind.c:
        Auto merged
      cmd-line-utils/readline/display.c:
        Auto merged
      cmd-line-utils/readline/histexpand.c:
        Auto merged
      cmd-line-utils/readline/history.c:
        Auto merged
      cmd-line-utils/readline/readline.c:
        Auto merged
      cmd-line-utils/readline/text.c:
        Auto merged
      dbug/user.r:
        Auto merged
      extra/yassl/src/handshake.cpp:
        Auto merged
      include/config-win.h:
        Auto merged
      include/m_string.h:
        Auto merged
      include/my_global.h:
        Auto merged
      include/my_pthread.h:
        Auto merged
      include/mysql/plugin.h:
        Auto merged
      include/mysql_com.h:
        Auto merged
      include/thr_alarm.h:
        Auto merged
      libmysql/CMakeLists.txt:
        Auto merged
      libmysql/Makefile.shared:
        Auto merged
      libmysql/dll.c:
        Auto merged
      libmysql/get_password.c:
        Auto merged
      libmysql/libmysql.c:
        Auto merged
      libmysqld/Makefile.am:
        Auto merged
      mysql-test/lib/mtr_cases.pl:
        Auto merged
      mysql-test/mysql-test-run.pl:
        Auto merged
      mysql-test/r/alter_table.result:
        Auto merged
      mysql-test/r/change_user.result:
        Auto merged
      mysql-test/r/create.result:
        Auto merged
      mysql-test/r/innodb.result:
        Auto merged
      mysql-test/r/merge.result:
        Auto merged
      mysql-test/r/mix2_myisam.result:
        Auto merged
      mysql-test/r/mysqldump.result:
        Auto merged
      mysql-test/r/query_cache.result:
        Auto merged
      mysql-test/r/subselect.result:
        Auto merged
      mysql-test/valgrind.supp:
        Auto merged
      mysql-test/r/view.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_events.result:
        Auto merged
      mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test:
        Auto merged
      mysql-test/t/create.test:
        Auto merged
      mysql-test/t/mysqldump.test:
        Auto merged
      mysql-test/t/query_cache.test:
        Auto merged
      mysql-test/t/subselect.test:
        Auto merged
      mysql-test/t/variables.test:
        Auto merged
      mysql-test/t/view.test:
        Auto merged
      mysys/mf_iocache.c:
        Auto merged
      mysys/mf_tempfile.c:
        Auto merged
      mysys/my_atomic.c:
        Auto merged
      mysys/my_bit.c:
        Auto merged
      mysys/my_bitmap.c:
        Auto merged
      mysys/my_compress.c:
        Auto merged
      mysys/my_create.c:
        Auto merged
      mysys/my_delete.c:
        Auto merged
      mysys/my_error.c:
        Auto merged
      mysys/my_init.c:
        Auto merged
      mysys/my_open.c:
        Auto merged
      mysys/my_realloc.c:
        Auto merged
      mysys/my_rename.c:
        Auto merged
      mysys/my_symlink.c:
        Auto merged
      mysys/my_sync.c:
        Auto merged
      mysys/my_thr_init.c:
        Auto merged
      mysys/thr_alarm.c:
        Auto merged
      mysys/thr_lock.c:
        Auto merged
      scripts/make_binary_distribution.sh:
        Auto merged
      server-tools/instance-manager/mysql_connection.cc:
        Auto merged
      sql/CMakeLists.txt:
        Auto merged
      sql/Makefile.am:
        Auto merged
      sql/events.cc:
        Auto merged
      sql/field.cc:
        Auto merged
      sql/field.h:
        Auto merged
      sql/filesort.cc:
        Auto merged
      sql/gen_lex_hash.cc:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/ha_partition.h:
        Auto merged
      sql/handler.h:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_func.h:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/item_strfunc.h:
        Auto merged
      sql/item_subselect.cc:
        Auto merged
      sql/lock.cc:
        Auto merged
      sql/log.cc:
        Auto merged
      sql/log_event.cc:
        Auto merged
      sql/net_serv.cc:
        Auto merged
      sql/opt_range.cc:
        Auto merged
      sql/partition_info.cc:
        Auto merged
      sql/rpl_injector.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/slave.h:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sql_acl.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_cache.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      sql/sql_load.cc:
        Auto merged
      sql/sql_plugin.cc:
        Auto merged
      sql/sql_prepare.cc:
        Auto merged
      sql/sql_repl.cc:
        Auto merged
      sql/sql_test.cc:
        Auto merged
      sql/sql_union.cc:
        Auto merged
      sql/sql_update.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/table.cc:
        Auto merged
      sql/table.h:
        Auto merged
      sql/unireg.cc:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      storage/csv/ha_tina.cc:
        Auto merged
      storage/csv/ha_tina.h:
        Auto merged
      storage/myisam/CMakeLists.txt:
        Auto merged
      storage/myisam/ft_boolean_search.c:
        Auto merged
      storage/myisam/ft_eval.c:
        Auto merged
      storage/myisam/ft_nlq_search.c:
        Auto merged
      storage/myisam/ft_parser.c:
        Auto merged
      storage/myisam/ft_static.c:
        Auto merged
      storage/myisam/ft_stopwords.c:
        Auto merged
      storage/myisam/ft_test1.c:
        Auto merged
      storage/myisam/ft_update.c:
        Auto merged
      storage/myisam/ha_myisam.cc:
        Auto merged
      storage/myisam/mi_check.c:
        Auto merged
      storage/myisam/mi_create.c:
        Auto merged
      storage/myisam/mi_delete.c:
        Auto merged
      storage/myisam/mi_delete_all.c:
        Auto merged
      storage/myisam/mi_dynrec.c:
        Auto merged
      storage/myisam/mi_key.c:
        Auto merged
      storage/myisam/mi_packrec.c:
        Auto merged
      storage/myisam/mi_range.c:
        Auto merged
      storage/myisam/mi_search.c:
        Auto merged
      storage/myisam/mi_test1.c:
        Auto merged
      storage/myisam/mi_test2.c:
        Auto merged
      storage/myisam/mi_test3.c:
        Auto merged
      storage/myisam/mi_unique.c:
        Auto merged
      storage/myisam/mi_write.c:
        Auto merged
      storage/myisam/myisamchk.c:
        Auto merged
      storage/myisam/myisamdef.h:
        Auto merged
      storage/myisam/myisampack.c:
        Auto merged
      storage/myisam/sort.c:
        Auto merged
      storage/myisam/sp_test.c:
        Auto merged
      support-files/mysql.spec.sh:
        Auto merged
      tests/mysql_client_test.c:
        Auto merged
      configure.in:
        Manual merge
      dbug/dbug.c:
        Restore to original state in Maria tree
        The big diff comes from a wrong pull from 5.0 -> 5.1 after backporting dbug to 5.0 from 5.1
      include/Makefile.am:
        Manual merge
      include/my_atomic.h:
        Ignore changes
      include/my_base.h:
        Manual merge
      include/my_dbug.h:
        Use orginal my_dbug.h from maria tree
      include/my_handler.h:
        Manual merge
      include/my_sys.h:
        Manual merge
      include/myisam.h:
        Manual merge
      mysql-test/lib/mtr_report.pl:
        Manual merge
      mysql-test/r/myisam.result:
        Manual merge
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Manual merge
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Manual merge
      mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result:
        Manual merge
      mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result:
        No changes
      mysql-test/suite/rpl/t/rpl_row_flsh_tbls.test:
        Manual merge
      mysql-test/t/change_user.test:
        Manual merge
      mysql-test/t/disabled.def:
        Manual merge
      mysql-test/t/merge.test:
        No changes
      mysql-test/t/myisam.test:
        Manual merge
      mysys/Makefile.am:
        Manual merge
      mysys/array.c:
        Manual merge
      mysys/mf_keycache.c:
        Manual merge
      mysys/my_getsystime.c:
        Manual merge
      mysys/my_handler.c:
        Manual merge
      mysys/my_pread.c:
        Manual merge
      mysys/safemalloc.c:
        Manual merge
      sql/ha_partition.cc:
        Manual merge
      sql/handler.cc:
        Manual merge
      sql/lex.h:
        Manual merge
      sql/mysql_priv.h:
        Manual merge
      sql/mysqld.cc:
        Manual merge
      sql/set_var.h:
        Manual merge
      sql/sql_class.cc:
        Manual merge
      sql/sql_insert.cc:
        Manual merge
      sql/sql_parse.cc:
        Manual merge
      sql/sql_select.cc:
        Manual merge
      sql/sql_show.cc:
        Manual merge
      sql/sql_table.cc:
        Manual merge
      storage/myisam/mi_checksum.c:
        No changes
      storage/myisam/mi_extra.c:
        Manual merge
      storage/myisam/mi_open.c:
        Manual merge
      storage/myisammrg/ha_myisammrg.cc:
        Manual merge
      strings/strmake.c:
        No changes
      50ceea65
  21. 24 Apr, 2008 1 commit