1. 25 Sep, 2010 2 commits
  2. 23 Sep, 2010 1 commit
  3. 21 Sep, 2010 1 commit
    • Igor Babaev's avatar
      Fixed bug #53161. · 398b0377
      Igor Babaev authored
      The implementation of the virtual method not_null_tables for the class
      Item_outer_ref must always return 0.
      398b0377
  4. 20 Sep, 2010 3 commits
  5. 18 Sep, 2010 1 commit
  6. 15 Sep, 2010 2 commits
    • Michael Widenius's avatar
      Automatic merge · 5ca65d0d
      Michael Widenius authored
      5ca65d0d
    • Michael Widenius's avatar
      mysqltest now gives error messages with error code for my_delete, my_rename, my_copy etc. · 0f6fb883
      Michael Widenius authored
      Fixed crashing bug when doing ALTER TABLE RENAME with transactional tables.
      
      client/mysqltest.cc:
        Added errno to error message for system calls (delete, rename etc)
        Write error message for failures of system calls
      mysql-test/include/cleanup_fake_relay_log.inc:
        Disable warnings for remove_file
      mysql-test/include/diff_tables.inc:
        Disable warnings for remove_file
      mysql-test/include/maria_empty_logs.inc:
        Disable warnings for remove_file
      mysql-test/include/maria_make_snapshot.inc:
        Disable warnings for remove_file
      mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc:
        Disable warnings for remove_file
      mysql-test/include/mysqlhotcopy.inc:
        Disable warnings for remove_file
      mysql-test/include/ndb_backup.inc:
        Disable warnings for remove_file
      mysql-test/include/ndb_backup_print.inc:
        Disable warnings for remove_file
      mysql-test/r/alter_table_trans.result:
        Test of crashing ALTER TABLE RENAME bug
      mysql-test/t/alter_table_trans.test:
        Test of crashing ALTER TABLE RENAME bug
      mysql-test/t/mysqltest.test:
        Disable warnings for remove_file and move_file
      mysys/my_copy.c:
        Fixed wrong error message
      sql/sql_table.cc:
        Fixed crashing bug when doing ALTER TABLE RENAME with transactional tables.
      0f6fb883
  7. 14 Sep, 2010 4 commits
  8. 13 Sep, 2010 5 commits
    • Sergei Golubchik's avatar
      merged · 6767feaf
      Sergei Golubchik authored
      6767feaf
    • Igor Babaev's avatar
    • Michael Widenius's avatar
      Merge · ce0a3934
      Michael Widenius authored
      ce0a3934
    • Michael Widenius's avatar
      Fixed Aria recovery bug: · e48f9f6b
      Michael Widenius authored
      - When reopening table during recovery, don't set file length from file sizes as file is not flushed.
      New feature in Aria recovery:
      - Create database directory if missing.
      
      
      
      storage/maria/ma_recovery.c:
        Don't print Query: twice when running maria_read_log
        Create database directory if missing. (Needed when running maria_read_log on an empty database direcory during testing)
        More DBUG_print
        Fixed bug: When reopening table during recovery, don't set file length from file sizes as file is not flushed.
      e48f9f6b
    • Igor Babaev's avatar
      Merge · 7ca61745
      Igor Babaev authored
      7ca61745
  9. 12 Sep, 2010 2 commits
  10. 11 Sep, 2010 2 commits
    • Igor Babaev's avatar
      Fixed bug #49600. · 02ee96f0
      Igor Babaev authored
      The problem could be demonstrated with an outer join of two single-row
      tables where the values of the join attributes were null. Any query
      with such a join could return a wrong result set if the where
      condition of the query was not empty. For queries with empty
      where conditions the result sets were correct.
      This was the consequence of two bugs in the code:
       - Item_equal objects for on conditions of outer joins were
         not built if the processed query had no where condition
       - the check for null values in the code that evaluated constant 
         Item_equal objects was incorrect.
      Fixed both above problems.
      Added a test case for the bug and adjusted results for some other
      test cases.
      02ee96f0
    • Sergei Golubchik's avatar
      to simpliy and unify the code · 17f3a094
      Sergei Golubchik authored
      17f3a094
  11. 10 Sep, 2010 2 commits
    • Michael Widenius's avatar
      Fix for LP#634943 "marked as crashed", "zerofilling" and "wrong data in... · 06e6244e
      Michael Widenius authored
      Fix for LP#634943 "marked as crashed", "zerofilling" and "wrong data in bitmap" when recovering Aria tables
      This was an interaction of several bugs:
      - Tables marked as opened was not properly unmarked on recovery if there was not changes since checkpoint
      - zerofill of tables put wrong data in bitmap if directory for page was full
      - Tables was thought as 'moved' during recovery if they had a create_lsn bigger than the lsn in the control file.
      
      
      storage/maria/ha_maria.cc:
        If table is moved and crashed, threat it as crashed.
        (Not a related to this bug, but still good to have fixed)
      storage/maria/ma_blockrec.c:
        Make enough_free_entries_on_page() global
      storage/maria/ma_blockrec.h:
        Make enough_free_entries_on_page() global
      storage/maria/ma_check.c:
        If directory is full, mark page full. Fixes bug in zerofill
      storage/maria/ma_open.c:
        Don't marke files as MOVED during recovery if create_trid > trnman_max_trid, as this fails for tables created after checkpoint.
      storage/maria/ma_recovery.c:
        Reset open_count in file that was open during crash and was part of checkpoint.
        Fixed wrong warning of 'open count' after recovery of files that was not touched since checkpoint.
      storage/maria/maria_chk.c:
        Changed not documented option --log-dir to --logdir
        Document more of the options.
        Clean up output for --help
      storage/maria/trnman.c:
        Added DBUG_PRINT
      06e6244e
    • Igor Babaev's avatar
      Fixed bug #49322. · a025ea38
      Igor Babaev authored
      When not-exists optimization was applied to a table that
      happened to be an inner table of two outer joins, one
      embedded into another, then setting the match flag for
      the embedding outer join on could be skipped. This caused
      generation of extra null complemented rows.
      Made sure that the match flags are set correctly in all cases
      when not-exists optimization is used.  
      a025ea38
  12. 09 Sep, 2010 3 commits
    • Michael Widenius's avatar
      Fixed bug LP#605798 "wrong data in bitmap" after recovery. · 74e8cea8
      Michael Widenius authored
      Extend remove_function_from_trace.pl to work with many threads (patch from Sergei)
      
      
      dbug/remove_function_from_trace.pl:
        Extend remove_function_from_trace.pl to work with many threads (patch from Sergei)
      storage/maria/ma_bitmap.c:
        Added marker that table had changed since last checkpoint.
        This ensures that we will flush all bitmap pages from cache at checkpoint.
        This fixes bug LP#605798 "wrong data in bitmap" after recovery.
      storage/maria/ma_check.c:
        Cleaned up error output
      storage/maria/ma_recovery.c:
        Cleaned up error output
      storage/maria/maria_def.h:
        Added changed_not_flushed
      74e8cea8
    • Michael Widenius's avatar
      Updated failure text for maria_install_db · 9bec8763
      Michael Widenius authored
      Don't give warning about block_insert if table is crashed.
      
      scripts/mysql_install_db.sh:
        Added link to KB.
      storage/maria/ma_recovery.c:
        Don't give warning about block_insert if table is crashed.
      9bec8763
    • Sergei Golubchik's avatar
      build dynamic plugins with the -shared libtool option to avoid · eb2636c4
      Sergei Golubchik authored
      double compilation
      eb2636c4
  13. 08 Sep, 2010 2 commits
    • Michael Widenius's avatar
      05336ac9
    • Michael Widenius's avatar
      Write message to stderr if recovery is not likely to succeed because we don't... · e9fb3095
      Michael Widenius authored
      Write message to stderr if recovery is not likely to succeed because we don't log records for batch inserts.
      Don't do UNDO or REDO on a crashed table.
      More DBUG_PRINT
      
      sql/sql_parse.cc:
        Remove display of 'packet' which is not useful
      storage/maria/ma_blockrec.c:
        More DBUG_PRINT()
      storage/maria/ma_key_recover.c:
        Write page number instead of page position
      storage/maria/ma_recovery.c:
        Write message to stderr if recovery is not likely to succeed because we don't log records for batch inserts.
        In normal cases this should never be an issue as we would recreate an empty table if MariaDB dies under batch insert.
        This warning will be given if you remove all tables and try to recreate them with maria_read_log, which can't be done as
        the log doesn't contain all data.
        Don't do UNDO or REDO on a crashed table.
      storage/maria/ma_write.c:
        Write page number instead of page position.
      e9fb3095
  14. 07 Sep, 2010 6 commits
  15. 06 Sep, 2010 1 commit
  16. 05 Sep, 2010 3 commits
    • Michael Widenius's avatar
      Automatic merge · c2744af0
      Michael Widenius authored
      c2744af0
    • Michael Widenius's avatar
    • 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