1. 10 Mar, 2010 6 commits
    • Michael Widenius's avatar
      Fix for Bug #534626 MyISAM table created in MariaDB not readable by MySQL · e14291c1
      Michael Widenius authored
      storage/myisam/mi_create.c:
        Don't set HA_OPTION_NULL_FIELDS if table is not using CHECKSUM as this makes the table incompatible with MySQL.
      e14291c1
    • Michael Widenius's avatar
      Automatic merge · 7e269592
      Michael Widenius authored
      7e269592
    • Michael Widenius's avatar
      Fix for: Bug#44987 DELETE IGNORE and FK constraint · 77afc2be
      Michael Widenius authored
      - Now DELETE IGNORE skips over rows with a foreign key constraints (as it was supposed to do)
      
      
      mysql-test/r/foreign_key.result:
        Test case for Bug#44987 DELETE IGNORE and FK constraint
      mysql-test/t/foreign_key.test:
        Test case for Bug#44987 DELETE IGNORE and FK constraint
      sql/sql_delete.cc:
        Firx for Bug#44987 DELETE IGNORE and FK constraint
        Now DELETE IGNORE skips over rows with a foreign key constraints (as it was supposed to do)
        Bug fix inspired by: Moritz Mertinkat
      77afc2be
    • unknown's avatar
      Fix some compiler warnings seen in Buildbot. · 3e32ba3f
      unknown authored
      Add some extra error output and code cleanup in an attempt to fix/debug
      a rare random testsuite problem in check_warnings, where the exit code
      from mysqltest is somehow corrupted inside mysql-test-run.pl.
      
      include/my_global.h:
        Fix compiler warnings on some platforms.
      mysql-test/lib/My/SafeProcess.pm:
        Move dereference of $? subprocess exit code closer to where it is generated,
        to make the code more robust and on the chance that this will fix the
        occasional problems in check_warnings we see in Buildbot.
      mysql-test/mysql-test-run.pl:
        When check_warnings failed, also log the mysqld server for which it failed.
      sql/sql_lex.cc:
        Fix compiler warning about possibly uninitialised value, by rewriting a for()
        loop that is always executed at least once into a do .. while() loop with an
        assert.
      sql/table.cc:
        Fix compiler warning about uninitialised value.
      storage/federatedx/ha_federatedx.cc:
        Fix uninitialised variable.
      storage/maria/ma_delete.c:
        Fix compiler warning about uninitialised value.
      storage/maria/ma_loghandler.c:
        Fix compiler warning about uninitialised value.
      storage/myisam/ft_stopwords.c:
        Fix compiler warning.
      storage/myisam/mi_write.c:
        Fix compiler warning about possibly uninitialised value, by rewriting a while()
        loop that is always executed at least once into a do .. while() loop with an
        assert.
      storage/xtradb/btr/btr0cur.c:
        Fix compiler warning about possibly uninitialised value.
      support-files/compiler_warnings.supp:
        Fix warning suppression to cover all cases in yassl.
      vio/viossl.c:
        Fix compiler warning.
      3e32ba3f
    • unknown's avatar
      4d7b6a6e
    • unknown's avatar
      Fixes for two test failures in Buildbot. · b1a62979
      unknown authored
       - Adjust timing in test case, to avoid test failures caused by high load
         on machines and consequent race conditions in the test case.
      
       - Add another variant of Valgrind suppressions for memory leak in system
         libraries when unloading dynamic object files.
      
      
      mysql-test/r/information_schema.result:
        Adjust timing to avoid test failures due to races.
      mysql-test/t/information_schema.test:
        Adjust timing to avoid test failures due to races.
      mysql-test/valgrind.supp:
        Add another variant of valgrind suppression for leak in system libs.
      b1a62979
  2. 09 Mar, 2010 4 commits
    • unknown's avatar
      Fix a buildbot memory leak due to JOIN::destroy() not being called for EXPLAIN · 0230d51b
      unknown authored
      query:
      - When subquery is located in ORDER BY, EXPLAIN will run as follows:
        select_describe() will run JOIN::prepare()/optimize() for the subquery;
        then at some point subselect_single_select_engine::prepare() will be called,
        which will create another join and run join->prepare().
      
        In mainline mysql this is not a problem because subquery's join will be 
        destroyed after the first call. 
        In MariaDB, it won't (table elimination needs to keep JOIN objects around
        for longer in order to know which tables were eliminated when constructing
        EXPLAIN EXTENDED warning).
      
        Fix the problem of memory leak by calling select_lex->cleanup() in 
        subselect_single_select_engine::prepare().
      0230d51b
    • unknown's avatar
      Automerge MySQL 5.1.44 merge into MariaDB trunk. · 214edde8
      unknown authored
      214edde8
    • Michael Widenius's avatar
      Added count of my_sync calls (to SHOW STATUS) · 292f6568
      Michael Widenius authored
      tmp_table_size can now be set to 0 (to disable in memory internal temp tables)
      Improved speed for internal Maria temp tables:
      - Don't use packed keys, except with long text fields.
      - Don't copy key all accessed pages during key search.
      Some new benchmark tests to sql-bench (for group by)
      
      BUILD/compile-pentium64-gcov:
        Update script to use same pentium_config flags as other tests
      BUILD/compile-pentium64-gprof:
        Update script to use same pentium_config flags as other tests
      include/my_sys.h:
        Added count of my_sync calls
      mysql-test/r/variables.result:
        tmp_table_size can now be set to 0
      sql-bench/test-select.sh:
        Added some new test for GROUP BY on a not key field and group by with different order by
      sql/mysqld.cc:
        Added count of my_sync calls
        tmp_table_size can now be set to 0 (to disable in memory internal temp tables)
      sql/sql_select.cc:
        If tmp_table_size is 0, don't use in memory temp tables (good for benchmarking MyISAM/Maria temp tables)
        Don't pack keys for Maria tables;  The 8K page size makes packed keys too slow for temp tables.
      storage/maria/ma_key_recover.h:
        Moved definition to maria_def.h
      storage/maria/ma_page.c:
        Moved code used to simplify comparing of identical Maria tables to own function (page_cleanup())
        Fixed that one can read a page with a read lock.
      storage/maria/ma_rkey.c:
        For not exact key reads, cache the page where we found key (to speed up future read-next/read-prev calls)
      storage/maria/ma_search.c:
        Moved code to cache last key page to separate function.
        Instead of copying pages, only get a link to the page. This notable speeds up key searches on bigger tables.
      storage/maria/ma_write.c:
        Added comment
      storage/maria/maria_def.h:
        Moved page_cleanup() to separate function.
      292f6568
    • unknown's avatar
      A number of after-merge fixes following merge of MySQL 5.1.44 into MariaDB. · c9dffa99
      unknown authored
      Bug#46949: memory leak with failed alter table to create partitions based on extract()
      
      Bug#51830: Incorrect partition pruning on range partition (regression)
      
      Fixed valgrind failure in select_describe(), read of uninitialized 
        Item_subselect::eliminated.
      
      PBXT test file updates to reflect changes done in MySQL.
      
      mysql-test/suite/pbxt/r/partition_error.result:
        Result file update following MySQL 5.1.44 changes.
      mysql-test/suite/pbxt/r/partition_pruning.result:
        Result file update following MySQL 5.1.44 changes.
      mysql-test/suite/pbxt/t/partition_error.test:
        Test file update following MySQL 5.1.44 changes.
      sql/item_subselect.cc:
          Fixed valgrind failure in select_describe(), read of uninitialized 
          Item_subselect::eliminated: 
          - it turns out we can call select_describe() without having fixed 
            subquery items for child subselects. These are not the kind of subqueries
            that we could eliminate, so the fix is to ensure that 
            item_subselect->eliminated==FALSE even before fix_fields is called.
            Also added code to reset item_subselect->eliminated back to FALSE in
            Item::reset() call.
      sql/item_subselect.h:
          Fixed valgrind failure in select_describe(), read of uninitialized 
          Item_subselect::eliminated: 
          - it turns out we can call select_describe() without having fixed 
            subquery items for child subselects. These are not the kind of subqueries
            that we could eliminate, so the fix is to ensure that 
            item_subselect->eliminated==FALSE even before fix_fields is called.
            Also added code to reset item_subselect->eliminated back to FALSE in
            Item::reset() call.
      sql/sql_partition.cc:
        Fix Bug#51830: Revert part of the patch for Bug#49742, which caused the regression.
      sql/table.cc:
        Fix Bug#46949: memory leak in failed ALTER TABLE with partitioning.
      c9dffa99
  3. 08 Mar, 2010 2 commits
  4. 06 Mar, 2010 1 commit
    • Sergey Petrunya's avatar
      LPBUG#524025 Running RQG outer_join test leads to crash · 81424b5b
      Sergey Petrunya authored
      Save no-records constant tables in JOIN::const_table_map before we invoke
      eliminate_tables(). Failure to do so caused crash when the same table was
      marked as constant two times
      
      mysql-test/r/table_elim.result:
        LPBUG#524025 Running RQG outer_join test leads to crash
        - Testcase
      mysql-test/t/table_elim.test:
        LPBUG#524025 Running RQG outer_join test leads to crash
        - Testcase
      sql/sql_select.cc:
        LPBUG#524025 Running RQG outer_join test leads to crash
        Save no-records constant tables in JOIN::const_table_map before we invoke eliminate_tables(). Failure to do so caused crash when the same table was marked as constant two times.
      81424b5b
  5. 04 Mar, 2010 1 commit
  6. 23 Feb, 2010 2 commits
  7. 19 Feb, 2010 1 commit
  8. 18 Feb, 2010 1 commit
    • Sergey Petrunya's avatar
      LPBUG#523593: Running RQG optimizer_no_subquery crashes MariaDB · 69028d51
      Sergey Petrunya authored
      - When analying multiple equalities, take into account that they 
        may not have a single table field that belongs to one of the tables
        that we're trying to eliminate (and they are not useful for table
        elimination in that case)
      
      mysql-test/r/table_elim.result:
        LPBUG#523593: Running RQG optimizer_no_subquery crashes MariaDB
        - Testcase
      mysql-test/t/table_elim.test:
        LPBUG#523593: Running RQG optimizer_no_subquery crashes MariaDB
        - Testcase
      69028d51
  9. 17 Feb, 2010 2 commits
  10. 12 Feb, 2010 1 commit
  11. 11 Feb, 2010 1 commit
  12. 10 Feb, 2010 2 commits
    • Michael Widenius's avatar
      Added option --temporary-tables to test speed of temporary tables · af51917d
      Michael Widenius authored
      mysql-test/suite/parts/t/partition_repair_myisam-master.opt:
        Added missing file from last push
      sql-bench/bench-init.pl.sh:
        Added options:
        --temporary-tables to test speed of temporary tables
      sql-bench/server-cfg.sh:
        Added limit for number of temporary tables one can create
      sql-bench/test-connect.sh:
        Skip test that doesn't work with temporary tables.
      sql-bench/test-create.sh:
        Added limit for number of temporary tables one can create
      af51917d
    • Michael Widenius's avatar
      When one does a drop table, the indexes are not flushed to disk before drop... · d77e3cde
      Michael Widenius authored
      When one does a drop table, the indexes are not flushed to disk before drop anymore (with MyISAM/Maria)
      myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM.
      (The disadvantage is that changed MyISAM tables will be checked at access time; Use --myisam-recover=OFF for old behavior)
      Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed!
      Added assert to detect if we accidently would use MyISAM versioning in MySQL
      
      include/my_base.h:
        Mark NOT_USED as USED, as we now use this as a flag to not call extra()
      mysql-test/mysql-test-run.pl:
        Don't write all options when there is something wrong with the arguments
      mysql-test/r/sp-destruct.result:
        Add missing flush of mysql.proc (as the test copied live tables)
      mysql-test/r/variables.result:
        myisam-recover options changed to 'default'
      mysql-test/r/view.result:
        Don't show create time in result
      mysql-test/suite/maria/t/maria-recovery2-master.opt:
        Don't run test with myisam-recover (as this produces extra warnings during simulated death)
      mysql-test/t/sp-destruct.test:
        Add missing flush of mysql.proc (as the test copied live tables)
      mysql-test/t/view.test:
        Don't show create time in result
      sql/lock.cc:
        Added marker if table was deleted to argument list
      sql/mysql_priv.h:
        Added marker if table was deleted to argument list
      sql/mysqld.cc:
        myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM
        Allow one to specify OFF as argument to myisam-recover (was default before but one couldn't specify it)
      sql/sql_base.cc:
        Mark if table is going to be deleted
      sql/sql_delete.cc:
        Mark if table is going to be deleted
      sql/sql_table.cc:
        Mark if table is going to be deleted
        Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed!
      sql/table.cc:
        Signal to handler if table is getting deleted as part of getting droped from table cache.
      sql/table.h:
        Added marker if table is going to be deleted.
      storage/maria/ha_maria.cc:
        Don't search for transaction handler if file is not transactional or outside of transaction
        (Fixed possible core dump)
      storage/maria/ma_blockrec.c:
        Don't write changed information if table is going to be deleted.
      storage/maria/ma_close.c:
        Don't write changed information if table is going to be deleted.
      storage/maria/ma_extra.c:
        Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash.
      storage/maria/ma_locking.c:
        Cleanup
      storage/maria/ma_recovery.c:
        We need trnman to be inited during redo phase (to be able to open tables checked with maria_chk)
      storage/maria/maria_def.h:
        Added marker if table is going to be deleted.
      storage/myisam/mi_close.c:
        Don't write changed information if table is going to be deleted.
      storage/myisam/mi_extra.c:
        Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash.
      storage/myisam/mi_open.c:
        Added assert to detect if we accidently would use MyISAM versioning in MySQL
      storage/myisam/myisamdef.h:
        Added marker if table is going to be deleted.
      d77e3cde
  13. 09 Feb, 2010 1 commit
  14. 04 Feb, 2010 2 commits
  15. 03 Feb, 2010 5 commits
  16. 02 Feb, 2010 2 commits
    • Kent Boortz's avatar
      Changes to be able to create source TAR packages with longer · 673ec7b2
      Kent Boortz authored
      path names than 99 characters, using the USTAR format of the
      resulting source TAR.
      
      To be able to specify the use of USTAR when creating the source
      TAR, we needed both to update the GNU autotools version requirements
      slightly, and update the initiation of the tools to use more
      modern constructs.
      673ec7b2
    • Luis Soares's avatar
      BUG#47639: The rpl_binlog_corruption test fails on Windows · 56b911f8
      Luis Soares authored
      The test case rpl_binlog_corruption fails on windows because when
      adding a line to the binary log index file it gets terminated
      with a CR+LF (which btw, is the normal case in windows, but not on
      Unixes - LF). This causes mismatch between the relay log names,
      causing mysqld to report that it cannot find the log file.
      
      We fix this by creating the instrumented index file through
      mysql, ie, using SELECT ... INTO DUMPFILE ..., as opposed on
      relying on ultimatly OS commands like: -- echo "..." >
      index. These changes go into the file and make the procedure
      platform independent:
      
        include/setup_fake_relay_log.inc
      
      Side note: when using SELECT ... INTO DUMPFILE ..., one needs to
      check if mysqld is running with secure_file_priv. If it is, we do
      it in two steps: 1. create the file on the allowed location;
      2. move it to the datadir. If it is not, then we just create the
      file directly on the datadir (so previous step 2. is not needed).
      56b911f8
  17. 01 Feb, 2010 3 commits
  18. 31 Jan, 2010 2 commits
  19. 30 Jan, 2010 1 commit
    • unknown's avatar
      Bug #48321 CURRENT_USER() incorrectly replicated for DROP/RENAME USER; · d9e9a73e
      unknown authored
                  REVOKE/GRANT; ALTER EVENT.
      
      The following statements support the CURRENT_USER() where a user is needed.
        DROP USER 
        RENAME USER CURRENT_USER() ...
        GRANT ... TO CURRENT_USER()
        REVOKE ... FROM CURRENT_USER()
        ALTER DEFINER = CURRENT_USER() EVENT
      but, When these statements are binlogged, CURRENT_USER() just is binlogged
      as 'CURRENT_USER()', it is not expanded to the real user name. When slave 
      executes the log event, 'CURRENT_USER()' is expand to the user of slave 
      SQL thread, but SQL thread's user name always NULL. This breaks the replication.
      
      After this patch, All above statements are rewritten when they are binlogged.
      The CURRENT_USER() is expanded to the real user's name and host.
      d9e9a73e