1. 16 Jul, 2010 1 commit
    • Michael Widenius's avatar
      Fix for LP#588251: doStartTableScan() result not checked. · e9166ca1
      Michael Widenius authored
      The issue was that we didn't always check result of ha_rnd_init() which caused a problem for handlers that returned an error in this code.
      - Changed prototype of ha_rnd_init() to ensure that we get a compile warning if result is not checked.
      - Added ha_rnd_init_with_error() that prints error on failure.
      - Checked all usage of ha_rnd_init() and ensure we generate an error message on failures.
      - Changed init_read_record() to return 1 on failure.
      
      
      
      
      sql/create_options.cc:
        Fixed wrong printf
      sql/event_db_repository.cc:
        Check result from init_read_record()
      sql/events.cc:
        Check result from init_read_record()
      sql/filesort.cc:
        Check result from ha_rnd_init()
      sql/ha_partition.cc:
        Check result from ha_rnd_init()
      sql/ha_partition.h:
        Fixed compiler warning
      sql/handler.cc:
        Added ha_rnd_init_with_error()
        Check result from ha_rnd_init()
      sql/handler.h:
        Added ha_rnd_init_with_error()
        Changed prototype of ha_rnd_init() to ensure that we get a compile warning if result is not checked
      sql/item_subselect.cc:
        Check result from ha_rnd_init()
      sql/log.cc:
        Check result from ha_rnd_init()
      sql/log_event.cc:
        Check result from ha_rnd_init()
      sql/log_event_old.cc:
        Check result from ha_rnd_init()
      sql/mysql_priv.h:
        init_read_record() now returns error code on failure
      sql/opt_range.cc:
        Check result from ha_rnd_init()
      sql/records.cc:
        init_read_record() now returns error code on failure
        Check result from ha_rnd_init()
      sql/sql_acl.cc:
        Check result from init_read_record()
      sql/sql_cursor.cc:
        Print error if ha_rnd_init() fails
      sql/sql_delete.cc:
        Check result from init_read_record()
      sql/sql_help.cc:
        Check result from init_read_record()
      sql/sql_plugin.cc:
        Check result from init_read_record()
      sql/sql_select.cc:
        Check result from ha_rnd_init()
        Print error if ha_rnd_init() fails.
      sql/sql_servers.cc:
        Check result from init_read_record()
      sql/sql_table.cc:
        Check result from init_read_record()
      sql/sql_udf.cc:
        Check result from init_read_record()
      sql/sql_update.cc:
        Check result from init_read_record()
      storage/example/ha_example.cc:
        Don't return error on rnd_init()
      storage/ibmdb2i/ha_ibmdb2i.cc:
        Removed not relevant comment
      e9166ca1
  2. 13 Jul, 2010 2 commits
    • Igor Babaev's avatar
      Fixed bug #603654. · 683154d1
      Igor Babaev authored
      If a virtual column was used in the ORDER BY clause of a query
      and some of the columns this virtual column was based upon were
      not referenced anywhere in the query then the execution of the
      query could cause an assertion failure.
      It happened because in this case the bitmap of the columns used
      for ordering keys was not formed correctly.
      683154d1
    • Igor Babaev's avatar
      Fixed bug #604549. · 73be27c0
      Igor Babaev authored
      There was no error thrown when creating a table with a virtual table
      computed by an expression returning a row.
      This caused a crash when inserting into the table.
      
      Removed periods at the end of the error messages for virtual columns.
      Adjusted output in test result files accordingly. 
      73be27c0
  3. 09 Jul, 2010 2 commits
  4. 07 Jul, 2010 1 commit
  5. 03 Jul, 2010 1 commit
    • Igor Babaev's avatar
      Fixed bug #601164. · b95bd9f5
      Igor Babaev authored
      The functions mysql_delete and mysql_update lacked calls of
      updated_virtual_fields(). This caused wrong results for
      some DELETEs/UPDATEs.
      Added test cases for this bug.
      b95bd9f5
  6. 02 Jul, 2010 1 commit
  7. 01 Jul, 2010 4 commits
  8. 30 Jun, 2010 1 commit
  9. 29 Jun, 2010 1 commit
  10. 28 Jun, 2010 4 commits
  11. 25 Jun, 2010 1 commit
  12. 24 Jun, 2010 1 commit
    • Hakan Kuecuekyilmaz's avatar
      Make MariaDB compile with VS 2010 · 4ee9e66d
      Hakan Kuecuekyilmaz authored
      Most of the changes are backports from MySQL 5.5. Please note
      that the 64-bit build fails with VS 2010 and the 32-bit build
      has problems running mysql-test-run.pl.
            
      * Added files for compiling with VS 2010 and added them
      to Makefile.am.
      * ifdef'ed ETIMEDOUT, because it is defined by VS 2010 now
      * Removed not needed /MAP's from cmake files
      4ee9e66d
  13. 23 Jun, 2010 2 commits
    • Michael Widenius's avatar
    • Michael Widenius's avatar
      Fixes for Opensolaris (to get buildbot green) · 5a2f40d4
      Michael Widenius authored
      - Fixed memory leaks in mysqldump
      - Fixed printf of NULL which caused crashes on OpenSolaris when using --debug
      - Fixed realloc() problem that caused out of memory when running mysqldump.test on OpenSolaris
      
      
      client/mysqldump.c:
        Fixed memory leaks
        Fixed printf of NULL which caused crashes on OpenSolaris when using --debug
      client/mysqltest.cc:
        Fixed printf of NULL which caused crashes on OpenSolaris when using --debug
      include/my_global.h:
        Added simple macro val_or_null() to simplify detecting of NULL strings for printf
      sql/handler.cc:
        Fixed printf of NULL which caused crashes on OpenSolaris when using --debug
      sql/sql_db.cc:
        Fixed printf of NULL which caused crashes on OpenSolaris when using --debug
        Removed testing of 'new_db_name' as this is guranteed never NULL
      sql/sql_show.cc:
        Fixed printf of NULL which caused crashes on OpenSolaris when using --debug
      storage/csv/ha_tina.cc:
        Fixed realloc() problem that caused out of memory when running mysqldump.test on OpenSolaris
        (OpenSolaris default malloc() can't handle a lot of reallocs() of strings that are growing one byte at a time)
        This did speed up logging to cvs with a magnitude for large strings.
      5a2f40d4
  14. 17 Jun, 2010 2 commits
  15. 16 Jun, 2010 3 commits
  16. 15 Jun, 2010 4 commits
  17. 14 Jun, 2010 6 commits
  18. 13 Jun, 2010 1 commit
    • Michael Widenius's avatar
      Fixed some bugs in the Maria storage engine · ec281a3c
      Michael Widenius authored
      - Changed default recovery mode from OFF to NORMAL to get automatic repair of not properly closed tables.
      - Fixed a rase condition when two threads calls external_lock and thr_lock() in different order. When this happend the transaction that called external lock first
        and thr_lock() last did not see see the rows from the other transaction, even if if it had to wait in thr_lock() for other to complete.
      - Fixed that one can run maria_chk on an automatcally recovered tables without warnings about too small transaction id
      - Don't give warning that crashed table could not be repaired if repair was disabled (and thus not run)
      - Fixed a error result from flush_key_cache() which caused a DBUG_ASSERT() when one was using concurrent reads on non transactional tables that was updated.
      
      client/mysqldump.c:
        Add "" around error message to make it more readable
      client/mysqltest.cc:
        Free environment variables
      mysql-test/r/mysqldump.result:
        Updated results
      mysql-test/r/openssl_1.result:
        Updated results
      mysql-test/suite/maria/r/maria-recover.result:
        Updated results
      mysql-test/suite/maria/r/maria3.result:
        Updated results
      mysql-test/suite/maria/t/maria3.test:
        Added more test of temporary tables
      storage/maria/ha_maria.cc:
        Changed default recovery mode from OFF to NORMAL to get automatic repair of not properly closed tables.
        Start transaction in ma_block_get_status() instead of in ha_maria::external_lock().
        - This fixes a rase condition when two threads calls external lock and thr_lock() in different order. When this happend the transaction that called external lock first and thr_lock() last did not see see the rows from the other transaction, even if if it had to wait in thr_lock() for other to complete.
        Store latest transaction id in controll file if recovery was done.
        - This allows one to run maria_chk on an automatcally recovered tables without warnings about too small transaction id
      storage/maria/ha_maria.h:
        Don't give warning that crashed table could not be repaired if repair was disabled (and thus not run)
      storage/maria/ma_blockrec.h:
        Added new function "_ma_block_get_status_no_versioning()"
      storage/maria/ma_init.c:
        Added hook to create trn in ma_block_get_status() if we are using MariaDB
      storage/maria/ma_open.c:
        Ensure we call _ma_block_get_status_no_versioning() for transactional tables without versioning (like tables with fulltext)
      storage/maria/ma_pagecache.c:
        Allow one to flush blocks that are pinned for read.
        This fixed a error result from flush_key_cache() which caused a DBUG_ASSERT() when one was using concurrent reads on non transactional tables that was updated.
      storage/maria/ma_recovery.c:
        Set maria_recovery_changed_data to 1 if recover changed something.
        Set max_trid_in_control_file to max found trn if we found a bigger trn.
        The allows will ensure that the control file is up to date after recovery which allows one to run maria_chk on the tables without warnings about too big trn
      storage/maria/ma_state.c:
        Call maria_create_trn_hook() in _ma_setup_live_state() instead of ha_maria::external_lock()
        This ensures that 'state' and trn are in sync and thus fixes the race condition mentioned for ha_maria.cc
      storage/maria/ma_static.c:
        Added maria_create_trn_hook() and maria_recovery_changed_data
      storage/maria/maria_def.h:
        Added MARIA_HANDLER->external_ptr, which is used to hold MariaDB thd.
        Added some new external variables
        Removed reference to non existing function: maria_concurrent_inserts()
      ec281a3c
  19. 10 Jun, 2010 2 commits