1. 07 Oct, 2010 1 commit
    • Michael Widenius's avatar
      Fixes some bug in Aria recovery: · 2f85f78d
      Michael Widenius authored
      - _ma_apply_redo_index: Assertion `page_offset != 0 && page_offset + length <= page_length' failed
      Fixes one bug and one log assert when inserting rows:
      - _ma_log_split: Assertion `org_length <= info->s->max_index_block_size' failed
      - write_block_record:  Assertion '(data_length < MAX_TAIL_SIZE(block_size)' failed
      Mark in recovery log where _ma_log_add() calls was done (for better debugging).
      
      storage/maria/ma_bitmap.c:
        Don't write a head part on a tail page. (Caused an assert in write_block_record())
      storage/maria/ma_delete.c:
        Mark in recovery log where _ma_log_add() calls was done
      storage/maria/ma_key_recover.c:
        Mark in recovery log where _ma_log_add() calls was done
        Fixed not handled logging case for overfull index pages.
      storage/maria/ma_key_recover.h:
        Mark in recovery log where _ma_log_add() calls was done
      storage/maria/ma_loghandler.h:
        Mark in recovery log where _ma_log_add() calls was done
      storage/maria/ma_rt_key.c:
        Mark in recovery log where _ma_log_add() calls was done
      storage/maria/ma_write.c:
        Mark in recovery log where _ma_log_add() calls was done.
        Fixed wrong call to _ma_split_page() for overfull pages
      2f85f78d
  2. 06 Oct, 2010 2 commits
  3. 03 Oct, 2010 1 commit
  4. 28 Sep, 2010 2 commits
  5. 26 Sep, 2010 2 commits
    • Igor Babaev's avatar
      Merge · 6b1c78e7
      Igor Babaev authored
      6b1c78e7
    • Igor Babaev's avatar
      Fixed bug #57024. · 716e8416
      Igor Babaev authored
      The condition over the outer tables now are extracted from
      the on condition of any outer join. This condition is
      saved in a special field of the JOIN_TAB structure for
      the first inner table of the outer join. The condition
      is checked before the first inner table is accessed. If 
      it turns out to be false the table is not accessed at all
      and a null complemented row is generated immediately.
      716e8416
  6. 25 Sep, 2010 2 commits
  7. 23 Sep, 2010 1 commit
  8. 21 Sep, 2010 3 commits
  9. 20 Sep, 2010 3 commits
  10. 18 Sep, 2010 1 commit
  11. 15 Sep, 2010 2 commits
    • Michael Widenius's avatar
      Automatic merge · b4b64946
      Michael Widenius authored
      b4b64946
    • Michael Widenius's avatar
      mysqltest now gives error messages with error code for my_delete, my_rename, my_copy etc. · f4820ea6
      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.
      f4820ea6
  12. 14 Sep, 2010 4 commits
  13. 13 Sep, 2010 5 commits
    • Sergei Golubchik's avatar
      merged · 617ae440
      Sergei Golubchik authored
      617ae440
    • Igor Babaev's avatar
    • Michael Widenius's avatar
      Merge · 209b6f9a
      Michael Widenius authored
      209b6f9a
    • Michael Widenius's avatar
      Fixed Aria recovery bug: · 456422a2
      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.
      456422a2
    • Igor Babaev's avatar
      Merge · 64244a34
      Igor Babaev authored
      64244a34
  14. 12 Sep, 2010 2 commits
  15. 11 Sep, 2010 2 commits
    • Igor Babaev's avatar
      Fixed bug #49600. · 577b7345
      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.
      577b7345
    • Sergei Golubchik's avatar
      to simpliy and unify the code · 966661c8
      Sergei Golubchik authored
      966661c8
  16. 10 Sep, 2010 2 commits
    • Michael Widenius's avatar
      Fix for LP#634943 "marked as crashed", "zerofilling" and "wrong data in... · b9890b05
      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
      b9890b05
    • Igor Babaev's avatar
      Fixed bug #49322. · b3cd40e0
      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.  
      b3cd40e0
  17. 09 Sep, 2010 3 commits
    • Michael Widenius's avatar
      Fixed bug LP#605798 "wrong data in bitmap" after recovery. · b7158601
      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
      b7158601
    • Michael Widenius's avatar
      Updated failure text for maria_install_db · 6f59c41d
      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.
      6f59c41d
    • Sergei Golubchik's avatar
      build dynamic plugins with the -shared libtool option to avoid · 44fec70b
      Sergei Golubchik authored
      double compilation
      44fec70b
  18. 08 Sep, 2010 2 commits
    • Michael Widenius's avatar
      f7a701ae
    • Michael Widenius's avatar
      Write message to stderr if recovery is not likely to succeed because we don't... · 1a0315f1
      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.
      1a0315f1