1. 05 Sep, 2010 2 commits
    • Michael Widenius's avatar
      Automatic merge · c2744af0
      Michael Widenius authored
      c2744af0
    • Michael Widenius's avatar
      Fixed bug that 'maria_read_log -a' didn't set max_trid when reparing tables. · 3ed49b69
      Michael Widenius authored
      Fixed bug in Aria when replacing short keys with long keys and a key tree both overflow and underflow at same time.
      Fixed several bugs when generating recovery logs when using RGQ with replacing long keys with short keys and vice versa.
      Lots of new DBUG_ASSERT()'s
      Added more information to recovery log to make it easier to know from where log entry orginated.
      Introduced MARIA_PAGE->org_size that tells what the size of the page was in last log entry. This allows us to find out if all key changes for index page was logged.
      Small code cleanups:
      - Introduced _ma_log_key_changes() to log crc of key page changes
      - Added share->max_index_block_size as max size of data one can put in key block (block_size - KEYPAGE_CHECKSUM_SIZE)
        This will later simplify adding a directory to index pages.
      - Write page number instead of page postition to DBUG log
      
      
      
      mysql-test/lib/v1/mysql-test-run.pl:
        Use --general-log instead of --log to disable warning when using RQG
      sql/mysqld.cc:
        If we have already sent ok to client when we get an error, log this to stderr
        Don't disable option --log-output if CSV engine is not supported.
      storage/maria/ha_maria.cc:
        Log queries to recovery log also in LOCK TABLES
      storage/maria/ma_check.c:
        If param->max_trid is set, use this value instead of max_trid_in_system().
        This is used by recovery to set max_trid to max seen trid so far.
        keyinfo->block_length - KEYPAGE_CHECKSUM_SIZE -> max_index_block_size (Style optimization)
      storage/maria/ma_delete.c:
        Mark tables crashed early
        Write page number instead of page position to debug log.
        Added parameter to ma_log_delete() and ma_log_prefix() that is logged so that we can find where wrong log entries where generated.
        Fixed bug where a page was not proplerly written when same key tree had both an overflow and underflow when deleting a key.
        keyinfo->block_length - KEYPAGE_CHECKSUM_SIZE => max_index_block_size (Style optimization)
        ma_log_delete() now has extra parameter of how many bytes from end of page should be appended to log for page (for page overflows)
      storage/maria/ma_key_recover.c:
        Added extra parameter to ma_log_prefix() to indicate what caused log entry.
        Update MARIA_PAGE->org_size when logging info about page.
        Much more DBUG_ASSERT()'s.
        Fix some bugs in maria_log_add() to handle page overflows.
        Added _ma_log_key_changes() to log crc of key page changes.
        If EXTRA_STORE_FULL_PAGE_IN_KEY_CHANGES is defines, log the resulting pages to log so one can trivally
        see how the resulting page should have looked like (for errors in CRC values)
      storage/maria/ma_key_recover.h:
        Added _ma_log_key_changes() which is only called if EXTRA_DEBUG_KEY_CHANGES is defined.
        Updated function prototypes.
      storage/maria/ma_loghandler.h:
        Added more values to en_key_debug, to get more exact location where things went wrong when logging to recovery log.
      storage/maria/ma_open.c:
        Initialize share->max_index_block_size
      storage/maria/ma_page.c:
        Added updating and testing of MARIA_PAGE->org_size
        Write page number instead of page postition to DBUG log
        Generate error if we read page with wrong data.
        Removed wrong assert: key_del_current != share->state.key_del.
        Simplify _ma_log_compact_keypage()
      storage/maria/ma_recovery.c:
        Set param.max_trid to max seen trid before running repair table (used for alter table to create index)
      storage/maria/ma_rt_key.c:
        Update call to _ma_log_delete()
      storage/maria/ma_rt_split.c:
        Use _ma_log_key_changes()
        Update MARIA_PAGE->org_size
      storage/maria/ma_unique.c:
        Remove casts
      storage/maria/ma_write.c:
        keyinfo->block_length - KEYPAGE_CHECKSUM_SIZE => share->max_index_block_length.
        Updated calls to _ma_log_prefix()
        Changed code to use _ma_log_key_changes()
        Update ma_page->org_size
        Fixed bug in _ma_log_split() for pages that overflow
        Added KEY_OP_DEBUG logging to functions
        Log KEYPAGE_FLAG in all log entries
      storage/maria/maria_def.h:
        Added SHARE->max_index_block_size
        Added MARIA_PAGE->org_size
      storage/maria/trnman.c:
        Reset flags for new transaction.
      3ed49b69
  2. 30 Aug, 2010 1 commit
  3. 29 Aug, 2010 1 commit
  4. 27 Aug, 2010 2 commits
    • Sergei Golubchik's avatar
      use the correct path separator on windows. · 5029e8c9
      Sergei Golubchik authored
      remove duplicates from the --plugin-load list.
      $ENV{TERM} can be undefined (on Windows)
      5029e8c9
    • Michael Widenius's avatar
      Merge with MySQL 5.1.50 · 720b6607
      Michael Widenius authored
      - Changed to still use bcmp() in certain cases becasue
        - Faster for short unaligneed strings than memcmp()
        - Bettern when using valgrind
      - Changed to use my_sprintf() instead of sprintf() to get higher portability for old systems
      - Changed code to use MariaDB version of select->skip_record()
      - Removed -%::SCCS/s.% from Makefile.am:s to remove automake warnings
      720b6607
  5. 25 Aug, 2010 1 commit
    • Sergei Golubchik's avatar
      mtr changes: · 3593ca12
      Sergei Golubchik authored
      * expanding unknown env variable does not abort mtr
      * have_archive, blackhole, innodb - preload the corresponding engine
      * all options from .opt files get equal treatment, all are searched for special options,
        not only -{master,slave}.opt as before (which ignored suite.opt and --mysqld=...)
      * --plugin-load gets special treatment too - all instances are merged into one
      * federated test fixed to preload federated
      3593ca12
  6. 24 Aug, 2010 8 commits
    • Michael Widenius's avatar
      Fixed typo in last push (sorry about that) · 2d4b921a
      Michael Widenius authored
      - Need to get autopush to work to avoid bad pushes like this....
      2d4b921a
    • Michael Widenius's avatar
      Fixed failing test · 951c4f87
      Michael Widenius authored
      Increased default buffers to speed up maria_chk
      
      mysql-test/suite/maria/r/maria3.result:
        Fixed failing test
      storage/maria/maria_chk.c:
        Increase default page_buffer_size
      storage/maria/maria_def.h:
        Increased default sort buffer size for maria_chk.
      951c4f87
    • Michael Widenius's avatar
      Automatic merge · 861d0c86
      Michael Widenius authored
      Fixed compiler warning
      
      client/mysql.cc:
        Fixed compiler warning
      include/my_global.h:
        Fixed typo
      storage/maria/ha_maria.cc:
        Merge
      861d0c86
    • Michael Widenius's avatar
      Increase some very old limits. · 5fbf323e
      Michael Widenius authored
      This will give a smoother experience when using the Aria engine by those that are using default limits
      without still causing a notable problem for desktop users.
      5fbf323e
    • Michael Widenius's avatar
      Automatic merge · 73f172f4
      Michael Widenius authored
      73f172f4
    • Michael Widenius's avatar
      Automatic merge with main 5.1 · 2eeb1b85
      Michael Widenius authored
      2eeb1b85
    • Michael Widenius's avatar
      Fix of LP#616253 Crash in _ma_bitmap_set_full_page_bits on Aria recovery · 7e292d6b
      Michael Widenius authored
      The bug was based on wrong undo data in recovery file and not enough checking of bad data.
      
      sql/sql_select.h:
        Added comment
      storage/maria/ma_blockrec.c:
        - Removed wrong sanity checks (didn't work for UNDO records)
        - More sanity checks and DBUG_ASSERT
        - More DBUG_ENTER and DBUG_PRINT
        - Removed filler blocks in extent_to_bitmap_blocks() as it caused problems in write_block_record().
          This was the main cause of the bug.
          (This change can make records generated by UNDO slightly smaller than original record, which we have to fix
          by correcting row_pos.length before calling write_block_record())
        - Fixed some problems in write_block_record() while doing UNDO.
        - Store header_length without TRANSID_SIZE into recovery log (as UNDO entires doesn't have TRANSID_SIZE)
        - Mark table crashed if something goes wrong during UNDO
      storage/maria/maria_def.h:
        Added header_length
      7e292d6b
    • Sergei Golubchik's avatar
      c8912ccf
  7. 23 Aug, 2010 2 commits
    • Michael Widenius's avatar
      Trivial fixes, more safe DBUG_ASSERT()'s and some more DBUG_ · 0bdc300d
      Michael Widenius authored
      - CTRL-C now aborts 'source' commands in mysql client
      - Fix that thread id's are removed in convert-debug-for-diff.sh
      
      
      client/mysql.cc:
        CTRL-C now aborts 'source' commands
      scripts/convert-debug-for-diff.sh:
        Fix expression to remove thread id
      storage/maria/ha_maria.cc:
        Don't call DBUG_ASSERT() when we kill a query during REPAIR / ALTER TABLE
      storage/maria/ma_bitmap.c:
        Added DBUG_ASSERT() if we call _ma_bitmap_set_full_page_bits()
      storage/maria/ma_key_recover.c:
        Don't do an assert if table is marked crashed.
      storage/maria/ma_recovery.c:
        Added DBUG_ENTER
      0bdc300d
    • Michael Widenius's avatar
      Fix for LP#612894 Some aggregate functions (such as MIN MAX) work incorrectly... · 21ae73cb
      Michael Widenius authored
      Fix for LP#612894 Some aggregate functions (such as MIN MAX) work incorrectly in subqueries after getting NULL value
      
      
      mysql-test/r/group_by.result:
        Added test that showed problems that no_rows_in_results() didn't work for expressions
      mysql-test/r/subselect4.result:
        Test case for LP#612894
      mysql-test/t/group_by.test:
        Added test that showed problems that no_rows_in_results() didn't work for expressions
      mysql-test/t/subselect4.test:
        Test case for LP#612894
      sql/item.h:
        Added restore_to_before_no_rows_in_result()
        Added function processor for no_rows_in_results() and restore_to_before_no_rows_in_results() to ensure it works with functions
        Fix that above functions are handled by Item_ref()
      sql/item_func.h:
        Ensure that no_rows_in_results() and restore_to_before_no_rows_in_result() are called for all function arguments
      sql/item_sum.cc:
        Added restore_to_before_no_rows_in_result() to restore settings after Item_sum_hybrid::no_rows_in_result() was called.
        This is needed to handle the case where we have made 'make_const()' on the item in opt_sum(), but the item will be reused again in a sub query.
        Ignore multiple calls to no_rows_in_result() as Item_ref is calling it twice.
      sql/item_sum.h:
        Added restore_to_before_no_rows_in_result();
      sql/sql_select.cc:
        Added reset of no_rows_in_result() for JOIN::reinit()
      sql/sql_select.h:
        Added marker if no_rows_in_result() is called.
      21ae73cb
  8. 20 Aug, 2010 3 commits
    • Michael Widenius's avatar
      Fixed compilation failure and added some new suppressions · 70c676f7
      Michael Widenius authored
      storage/maria/ma_blockrec.c:
        Fixed compilation failure
      support-files/compiler_warnings.supp:
        Added suppressions for pbxt
      70c676f7
    • Michael Widenius's avatar
    • Michael Widenius's avatar
      Fixed valgrind errors and compiler warnings discovered by buildbot · c1dd1ff9
      Michael Widenius authored
      More DBUG_ASSERT() to discover errors earlier
      More checking of BLOCK structures in Aria.
      Fixed crashing bug in Aria when doing UPDATE of several records in same block when doing table scan.
      
      storage/federatedx/ha_federatedx.cc:
        Added missing delete_dynamic(); This fixes the valgrind warnings about lost memory discovered by buildbot.
      storage/maria/ma_blockrec.c:
        Added debugging helper function _ma_print_block_info() to print block structure.
        Changed arguments to _ma_print_directory() so it can be called by _ma_print_block_info()
        check_directory() now also checks that empty_space on block is calculated correctly.
        Added some local variables to get more information about what happend when things crash.
        Fixed crashing bug when doing UPDATE of several records in same block when doing table scan.
      storage/maria/ma_key_recover.c:
        Simple optimization (don't call bmove_upp() if not needed); This could happen during page split.
      storage/maria/ma_recovery.c:
        Fixed compiler warning
      storage/maria/ma_test2.c:
        Run test without syncing to disk. (Not needed for this test)
      storage/maria/ma_write.c:
        More comments.
        Added DBUG_ASSERT() to find wrong log entires, like the one reported at LP#616344, during log file creation.
      storage/maria/unittest/ma_test_recovery.pl:
        Added extra -s to maria_chk to get it more silent.
        This fixes that ma_test_all.sh works again.
      c1dd1ff9
  9. 18 Aug, 2010 1 commit
    • Michael Widenius's avatar
      Added verbose mode to recovery · ca5c6534
      Michael Widenius authored
      More DBUG
      Added convert-debug-for-diff
      Added missing (from last push) federated test case
      
      .bzrignore:
        Ignore generated files
      mysql-test/README:
        Updated documentation for --extern
      mysql-test/suite/federated/federated_bug_32426.result:
        Added test for federatedx
      mysql-test/suite/federated/federated_bug_32426.test:
        Added test for federatedx
      scripts/Makefile.am:
        Added convert-debug-for-diff
      scripts/convert-debug-for-diff.sh:
        Added script for converting
      sql/log.cc:
        Added DBUG
      sql/mysqld.cc:
        Added DBUG
      storage/maria/ma_recovery.c:
        If verbose, write dirty pages (for debugging)
      storage/maria/ma_static.c:
        Added verbose mode to recovery
      storage/maria/maria_def.h:
        Added verbose mode to recovery
      storage/maria/maria_read_log.c:
        Added verbose mode to recovery
      ca5c6534
  10. 17 Aug, 2010 1 commit
    • Sergei Golubchik's avatar
      generalization of mtr to support suite.pm extensions: · dddf219d
      Sergei Golubchik authored
      * no automatic --loose-skip-innodb added by mtr based on the test name.
        instead loose-skip-innodb is now in the default_mysqld.cnf
      * have_innodb_plugin.inc is changed to give a verbose "skip" message
        (instead of "require: true")
      * My::Suite class. It's support in mtr, and everywhere
      * support for suite.pm
      * when sorting tests, take combinations into account
      * support for SUITENAME_COMBINATIONS
      * no special treatment for innodb_plugin in mtr_cases.pm
      * two special pre-created config groups: ENV and OPT
      * allow option names to start from #
      * allow magic option to have an argument
      * remove dead code
      * fix @-substitution to works as expected
      * new processes take the value of $opt_verbose automatically, no need to pass it to a constructor
      * innodb_plugin suite uses suite.pm and combinations file to test as much as possible
        (innodb plugin, xtradb plugin, xtradb static - whatever available)
      * besides test-master.opt and test-slave.opt a test.opt file is also
        loaded, both for master and slave
      * .opt files for all included files are loaded too
      * progress report in the xterm titlebar
      dddf219d
  11. 14 Aug, 2010 1 commit
  12. 12 Aug, 2010 3 commits
  13. 11 Aug, 2010 2 commits
    • Michael Widenius's avatar
    • Michael Widenius's avatar
      Fixed compiler warnings from Windows compiler · cf06da86
      Michael Widenius authored
      client/mysqlcheck.c:
        Added missing casts
      client/mysqldump.c:
        Added missing casts
      client/mysqlimport.c:
        Added missing casts
      extra/my_print_defaults.c:
        Added missing casts
      mysql-test/mysql-test-run.pl:
        Added suppression for non-critical warning on windows
      storage/maria/maria_pack.c:
        Added missing casts
      storage/xtradb/buf/buf0lru.c:
        Added missing casts
      storage/xtradb/fil/fil0fil.c:
        Added missing casts
      storage/xtradb/handler/i_s.cc:
        Added extra argument to call store() function for longlong.
      storage/xtradb/srv/srv0srv.c:
        Added cast to suppress compiler warning
      support-files/compiler_warnings.supp:
        Added suppression for some non critical compiler warnings on Windows
      unittest/mytap/tap.h:
        Fixed prototypes to be same as the actual functions
      cf06da86
  14. 10 Aug, 2010 4 commits
    • Michael Widenius's avatar
      Fixed LP#605798 RQG: Table corruption after Maria engine recovery - "Wrong data in bitmap" · 964570b4
      Michael Widenius authored
      maria_chk & maria_read_log now reads block size from control file.
      
      
      
      mysql-test/suite/maria/r/maria.result:
        Updated results after trivial change of maria_chk's output
      storage/maria/ma_bitmap.c:
        More DBUG_PRINT
      storage/maria/ma_blockrec.c:
        Fixed bug that we didn't mark page full in bitmap if directory is full
      storage/maria/ma_check.c:
        Write out if directory is full for errors in bitmap
      storage/maria/ma_control_file.c:
        Don't give error for wrong block size if block size is 0
      storage/maria/maria_chk.c:
        Read block size from control file
        In case of -dvv, write also out bitmap information (good for debugging)
      storage/maria/maria_read_log.c:
        Read block size from control file
        Fixed that maria_read_log works with different page size than TRANSLOG_PAGE_SIZE
      964570b4
    • Michael Widenius's avatar
      Fixed typo that caused compile failure on Mac · 36d95177
      Michael Widenius authored
      Added straight_join to make results predicatable
      
      mysql-test/suite/pbxt/r/range.result:
        Added straight_join to make results predicatable
      mysql-test/suite/pbxt/t/range.test:
        Added straight_join to make results predicatable
      mysys/my_sync.c:
        Fixed typo
      36d95177
    • Sergei Golubchik's avatar
      created *-all build scripts that build with ndb · 5552278a
      Sergei Golubchik authored
      (as -max scripts don't)
      5552278a
    • Michael Widenius's avatar
      Fixed wrong argument to translog_write_record() that caused core dump in... · b641ae9b
      Michael Widenius authored
      Fixed wrong argument to translog_write_record() that caused core dump in maria.maria-gis-rtree-trans and some other tests
      (Bug introduced by my last push)
      b641ae9b
  15. 09 Aug, 2010 2 commits
    • Michael Widenius's avatar
    • Michael Widenius's avatar
      Added --sync-sys=0 option for mysqld to skip sync() calls for faster testing · 62b9b884
      Michael Widenius authored
      Fixed LP#613418 (M)aria recovery failure: ma_key_recover.c:981: _ma_apply_redo_index: Assertion `check_page_length == page_length' failed
      
      include/my_sys.h:
        Added my_disable_sync
      mysql-test/mysql-test-run.pl:
        Added --sync-sys=0 to run test suite faster
      mysys/my_static.c:
        Added my_disable_sync
      mysys/my_sync.c:
        Added my_disable_sync
      sql/mysqld.cc:
        Added -sync-sys=0 option for mysqld to skip sync() calls for faster testing
      storage/maria/ma_key_recover.c:
        More DBUG_ASSERT()
        Added logging of KEY_OP_DEBUG to make examening of logs easier
        Fixed testing of page length in recovery to ensure we don't overwrite checksum (previous tests was too relaxed)
        Fixed bug in recovery logging of split pages which caused failure during recovery:
        - Length was not adjusted properly for pages to be split
        - Added KEY_OP_MAX_PAGELENGTH to tell recovery that page is now full length
        - This fixed LP#613418
      storage/maria/ma_key_recover.h:
        Changed prototype for ma_log_change() for KEY_OP_DEBUG
      storage/maria/ma_loghandler.h:
        Added new enums for better debugging of recovery logs
      storage/maria/ma_rt_index.c:
        Added debugging information to calls to ma_log_change()
      storage/maria/ma_write.c:
        Added debugging information to calls to ma_log_change() and ma_log_split()
      62b9b884
  16. 07 Aug, 2010 2 commits
    • Michael Widenius's avatar
      Ensure that xtradb & InnoDB plugin compiles if valgrind is installed but not... · cbdc5dd4
      Michael Widenius authored
      Ensure that xtradb & InnoDB plugin compiles if valgrind is installed but not valgrind debug libraries
      cbdc5dd4
    • Michael Widenius's avatar
      This patch fixes LP#613408 Memory corruption with (M)aria storage engine and... · 2e46eb77
      Michael Widenius authored
      This patch fixes LP#613408  Memory corruption with (M)aria storage engine and virtual columns in MariaDB 5.2
      Fixed compiler warnings
      Disabled some tests that doesn't work on windows (uses shell tools or strange characters)
      
      
      
      client/mysqlshow.c:
        Fixed compiler warnings
      client/mysqlslap.c:
        Fixed compiler warnings
      mysql-test/mysql-test-run.pl:
        Use an error file instead of /dev/null
        (Fixes problem on Windows and the output may be usefull)
      mysql-test/suite/maria/r/maria.result:
        Test case for bug LP#613408 (not complete)
      mysql-test/suite/maria/t/maria.test:
        Test case for bug LP#613408 (not complete)
      mysql-test/suite/percona/percona_log_slow_slave_statements-and-use_global_long_query_time.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/suite/percona/percona_log_slow_slave_statements.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/suite/percona/percona_slow_query_log-control_global_slow.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/suite/percona/percona_slow_query_log-log_slow_filter.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/suite/percona/percona_slow_query_log-log_slow_verbosity.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/suite/percona/percona_slow_query_log-long_query_time.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/suite/percona/percona_slow_query_log-microseconds_in_slow_query_log.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/suite/percona/percona_slow_query_log-min_examined_row_limit.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/suite/percona/percona_slow_query_log-use_global_long_query_time.test:
        This test doesn't work one windows (needs shell tools)
      mysql-test/t/ctype_filesystem.test:
        This test doesn't work one windows (problem with character sets)
      mysql-test/t/events_time_zone.test:
        Use longer times to get predictable tests
      mysql-test/t/show_check-master.opt:
        set long query time to get more predictable tests
      storage/maria/ma_check.c:
        Restore info->s->lock_key_trees after repair.
        Disable logging to temp tables for all repair cases (safety fix)
      storage/maria/ma_state.c:
        Ensurethat info->state_start doesn't point to freed memory. (Could happen after running an internal repair to fast create indexes)
      storage/maria/trnman.c:
        Added longer comment
      2e46eb77
  17. 06 Aug, 2010 4 commits
    • Michael Widenius's avatar
      Fix build failure on windows · c7e1795a
      Michael Widenius authored
      c7e1795a
    • Michael Widenius's avatar
      Fix for LP#614265 Crash in _ma_unpin_all_pages / _ma_search on DELETE with Aria search engine · a93dea4f
      Michael Widenius authored
      Fixed compiler warnings
      
      client/mysqlslap.c:
        Fixed compiler warnings
      mysql-test/suite/maria/r/maria.result:
        Test case for LP#614265
      mysql-test/suite/maria/t/maria.test:
        Test case for LP#614265
      mysql-test/suite/pbxt/t/skip_name_resolve-master.opt:
        Ensure that we get restart before test (as test uses show processlist)
      sql/handler.cc:
        Added cloned marker if clone was called (for safety checks & debugging)
      sql/handler.h:
        Added cloned marker if clone was called (for safety checks & debugging)
      storage/maria/ha_maria.cc:
        In clone call, set file->trn if cloned file had this set. This is needed as maria_create_trn_for_mysql() and thus file->trn is never set for cloned table.
        Ensure that file->trn is properly reset after calls to repair/check/zerofill.
        Increment locked table count if file->trn is set (as we decrement this in the unlock call)
      tests/mysql_client_test.c:
        Fixed compiler warnings
      a93dea4f
    • Michael Widenius's avatar
      Fixed wrong AC_INIT · 2446139b
      Michael Widenius authored
      2446139b
    • Michael Widenius's avatar
      Fixed timing issue in test suite · 92eec337
      Michael Widenius authored
      92eec337