An error occurred fetching the project authors.
  1. 19 Mar, 2014 1 commit
  2. 17 Mar, 2014 1 commit
  3. 12 Mar, 2014 1 commit
  4. 11 Mar, 2014 1 commit
    • unknown's avatar
      MDEV-5804: If same GTID is received on multiple master connections in... · 8b9b7ec3
      unknown authored
      MDEV-5804: If same GTID is received on multiple master connections in multi-source replication, the event is double-executed causing corruption or replication failure
      
      Some fixes, mainly to make it work in non-parallel replication mode also
      (--slave-parallel-threads=0).
      
      Patch should be fairly complete now.
      8b9b7ec3
  5. 26 Feb, 2014 1 commit
    • unknown's avatar
      MDEV-5657: Parallel replication. · e90f68c0
      unknown authored
      Clean up and improve the parallel implementation code, mainly related to
      scheduling of work to threads and handling of stop and errors.
      
      Fix a lot of bugs in various corner cases that could lead to crashes or
      corruption.
      
      Fix that a single replication domain could easily grab all worker threads and
      stall all other domains; now a configuration variable
      --slave-domain-parallel-threads allows to limit the number of
      workers.
      
      Allow next event group to start as soon as previous group begins the commit
      phase (as opposed to when it ends it); this allows multiple event groups on
      the slave to participate in group commit, even when no other opportunities for
      parallelism are available.
      
      Various fixes:
      
       - Fix some races in the rpl.rpl_parallel test case.
      
       - Fix an old incorrect assertion in Log_event iocache read.
      
       - Fix repeated malloc/free of wait_for_commit and rpl_group_info objects.
      
       - Simplify wait_for_commit wakeup logic.
      
       - Fix one case in queue_for_group_commit() where killing one thread would
         fail to correctly signal the error to the next, causing loss of the
         transaction after slave restart.
      
       - Fix leaking of pthreads (and their allocated stack) due to missing
         PTHREAD_CREATE_DETACHED attribute.
      
       - Fix how one batch of group-committed transactions wait for the previous
         batch before starting to execute themselves. The old code had a very
         complex scheduling where the first transaction was handled differently,
         with subtle bugs in corner cases. Now each event group is always scheduled
         for a new worker (in a round-robin fashion amongst available workers).
         Keep a count of how many transactions have started to commit, and wait for
         that counter to reach the appropriate value.
      
       - Fix slave stop to wait for all workers to actually complete processing;
         before, the wait was for update of last_committed_sub_id, which happens a
         bit earlier, and could leave worker threads potentially accessing bits of
         the replication state that is no longer valid after slave stop.
      
       - Fix a couple of places where the test suite would kill a thread waiting
         inside enter_cond() in connection with debug_sync; debug_sync + kill can
         crash in rare cases due to a race with mysys_var_current_mutex in this
         case.
      
       - Fix some corner cases where we had enter_cond() but no exit_cond().
      
       - Fix that we could get failure in wait_for_prior_commit() but forget to flag
         the error with my_error().
      
       - Fix slave stop (both for normal stop and stop due to error). Now, at stop
         we pick a specific safe point (in terms of event groups executed) and make
         sure that all event groups before that point are executed to completion,
         and that no event group after start executing; this ensures a safe place to
         restart replication, even for non-transactional stuff/DDL. In error stop,
         make sure that all prior event groups are allowed to execute to completion,
         and that any later event groups that have started are rolled back, if
         possible. The old code could leave eg. T1 and T3 committed but T2 not, or
         it could even leave half a transaction not rolled back in some random
         worker, which would cause big problems when that worker was later reused
         after slave restart.
      
       - Fix the accounting of amount of events queued for one worker. Before, the
         amount was reduced immediately as soon as the events were dequeued (which
         happens all at once); this allowed twice the amount of events to be queued
         in memory for each single worker, which is not what users would expect.
      
       - Fix that an error set during execution of one event was sometimes not
         cleared before executing the next, causing problems with the error
         reporting.
      
       - Fix incorrect handling of thd->killed in worker threads.
      e90f68c0
  6. 24 Feb, 2014 1 commit
    • Sergey Petrunya's avatar
      MDEV-5244: Make extended_keys=ON by default in 10.0 · fb6183a8
      Sergey Petrunya authored
      - Change the default flag value to ON.
      - Update the testcases to be run extended_keys=ON:
        = trivial test result updates
        = If extended_keys setting makes a difference for a testcase, run the testcase 
          with extended_keys=off. There were only a few such cases
      - Update to vcol_select_innodb looks like a worse plan but it will be gone in 10.0.
      fb6183a8
  7. 11 Feb, 2014 1 commit
  8. 05 Feb, 2014 1 commit
    • Michael Widenius's avatar
      Replication changes for CREATE OR REPLACE TABLE · 5426facd
      Michael Widenius authored
      - CREATE TABLE is by default executed on the slave as CREATE OR REPLACE
      - DROP TABLE is by default executed on the slave as DROP TABLE IF NOT EXISTS
      
      This means that a slave will by default continue even if we try to create
      a table that existed on the slave (the table will be deleted and re-created) or
      if we try to drop a table that didn't exist on the slave.
      This should be safe as instead of having the slave stop because of an inconsistency between
      master and slave, it will fix the inconsistency.
      Those that would prefer to get a stopped slave instead for the above cases can set slave_ddl_exec_mode to STRICT. 
      
      - Ensure that a CREATE OR REPLACE TABLE which dropped a table is replicated
      - DROP TABLE that generated an error on master is handled as an identical DROP TABLE on the slave (IF NOT EXISTS is not added in this case)
      - Added slave_ddl_exec_mode variable to decide how DDL's are replicated
      
      New logic for handling BEGIN GTID ... COMMIT from the binary log:
      
      - When we find a BEGIN GTID, we start a transaction and set OPTION_GTID_BEGIN
      - When we find COMMIT, we reset OPTION_GTID_BEGIN and execute the normal COMMIT code.
      - While OPTION_GTID_BEGIN is set:
        - We don't generate implict commits before or after statements
        - All tables are regarded as transactional tables in the binary log (to ensure things are executed exactly as on the master)
      - We reset OPTION_GTID_BEGIN also on rollback
      
      This will help ensuring that we don't get any sporadic commits (and thus new GTID's) on the slave and will help keep the GTID's between master and slave in sync.
      
      
      mysql-test/extra/rpl_tests/rpl_log.test:
        Added testing of mode slave_ddl_exec_mode=STRICT
      mysql-test/r/mysqld--help.result:
        New help messages
      mysql-test/suite/rpl/r/create_or_replace_mix.result:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/r/create_or_replace_row.result:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/r/create_or_replace_statement.result:
        Testing replication of create or replace
      mysql-test/suite/rpl/r/rpl_gtid_startpos.result:
        Test must be run in slave_ddl_exec_mode=STRICT as part of the test depends on that DROP TABLE should fail on slave.
      mysql-test/suite/rpl/r/rpl_row_log.result:
        Updated result
      mysql-test/suite/rpl/r/rpl_row_log_innodb.result:
        Updated result
      mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result:
        Updated result
      mysql-test/suite/rpl/r/rpl_stm_log.result:
        Updated result
      mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result:
        Updated result
      mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result:
        Updated result
      mysql-test/suite/rpl/t/create_or_replace.inc:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/t/create_or_replace_mix.cnf:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/t/create_or_replace_mix.test:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/t/create_or_replace_row.cnf:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/t/create_or_replace_row.test:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/t/create_or_replace_statement.cnf:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/t/create_or_replace_statement.test:
        Testing of CREATE OR REPLACE TABLE with replication
      mysql-test/suite/rpl/t/rpl_gtid_startpos.test:
        Test must be run in slave_ddl_exec_mode=STRICT as part of the test depends on that DROP TABLE should fail on slave.
      mysql-test/suite/rpl/t/rpl_stm_log.test:
        Removed some lines
      mysql-test/suite/sys_vars/r/slave_ddl_exec_mode_basic.result:
        Testing of slave_ddl_exec_mode
      mysql-test/suite/sys_vars/t/slave_ddl_exec_mode_basic.test:
        Testing of slave_ddl_exec_mode
      sql/handler.cc:
        Regard all tables as transactional in commit if OPTION_GTID_BEGIN is set.
        This is to ensure that statments are not commited too early if non transactional tables are used.
      sql/log.cc:
        Regard all tables as transactional in commit if OPTION_GTID_BEGIN is set.
        Also treat 'direct' log events as transactional (to get them logged as they where on the master)
      sql/log_event.cc:
        Ensure that the new error from DROP TABLE when trying to drop a view is treated same as the old one.
        Store error code that slave expects in THD.
        Set OPTION_GTID_BEGIN if we find a BEGIN.
        Reset OPTION_GTID_BEGIN if we find a COMMIT.
      sql/mysqld.cc:
        Added slave_ddl_exec_mode_options
      sql/mysqld.h:
        Added slave_ddl_exec_mode_options
      sql/rpl_gtid.cc:
        Reset OPTION_GTID_BEGIN if we record a gtid (safety)
      sql/sql_class.cc:
        Regard all tables as transactional in commit if OPTION_GTID_BEGIN is set.
      sql/sql_class.h:
        Added to THD: log_current_statement and slave_expected_error
      sql/sql_insert.cc:
        Ensure that CREATE OR REPLACE is logged if table was deleted.
        Don't do implicit commit for CREATE if we are under OPTION_GTID_BEGIN
      sql/sql_parse.cc:
        Change CREATE TABLE -> CREATE OR REPLACE TABLE for slaves
        Change DROP TABLE -> DROP TABLE IF EXISTS for slaves
        CREATE TABLE doesn't force implicit commit in case of OPTION_GTID_BEGIN
        Don't do commits before or after any statement if OPTION_GTID_BEGIN was set.
      sql/sql_priv.h:
        Added OPTION_GTID_BEGIN
      sql/sql_show.cc:
        Enhanced store_create_info() to also be able to handle CREATE OR REPLACE
      sql/sql_show.h:
        Updated prototype
      sql/sql_table.cc:
        Ensure that CREATE OR REPLACE is logged if table was deleted.
      sql/sys_vars.cc:
        Added slave_ddl_exec_mode
      sql/transaction.cc:
        Added warning if we got a GTID under OPTION_GTID_BEGIN
      5426facd
  9. 26 Jan, 2014 1 commit
    • Michael Widenius's avatar
      Fix for MDEV-5168: MariaDB returns warnings for INSERT IGNORE · 68028887
      Michael Widenius authored
      Added variable "OLD_MODE" that can be used to turn off the new behavior
      
      mysql-test/r/insert.result:
        Added test case
      mysql-test/r/mysqld--help.result:
        Added old_mode
      mysql-test/suite/sys_vars/r/old_mode_basic.result:
        Added testing of new variable
      mysql-test/suite/sys_vars/t/old_mode_basic.test:
        Added testing of new variable
      mysql-test/t/insert.test:
        Added test case
      sql/sql_class.h:
        Added bit flags for OLD_MODE
      sql/sql_insert.cc:
        Disable duplicate key warnings for INSERT IGNORE of OLD_MODE NO_DUP_KEY_WARNINGS_WITH_IGNORE is used
      sql/sql_show.cc:
        Don't show progress reporting on SHOW PROCESSLIST if OLD_MODE NO_PROGRESS_INFO is used
      sql/sys_vars.cc:
        Added OLD_MODE
      68028887
  10. 02 Jan, 2014 1 commit
    • Michael Widenius's avatar
      Fixes to get valgrind to work with jemalloc · 273078c5
      Michael Widenius authored
      - Added MALLOC_LIBRARY variable to hold name of malloc library
      - Back ported valgrind related fixes from jemalloc 3.4.1 to the included jemalloc 3.3.1
      - Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() to avoid clash with jemalloc 3.4.1
      - Use option --soname-synonyms=somalloc=NON to valgrind when using jemalloc
      - Show version related variables in mysqld --help
        -- Added SHOW_VALUE_IN_HELP marker
      
      Increased back_log to 150 as the original value was a bit too small
      
      
      CMakeLists.txt:
        Added MALLOC_LIBRARY variable to hold name of malloc library
      cmake/jemalloc.cmake:
        Added MALLOC_LIBRARY variable to hold name of malloc library
      config.h.cmake:
        Added MALLOC_LIBRARY variable to hold name of malloc library
      extra/jemalloc/ChangeLog:
        Updates changelog
      extra/jemalloc/include/jemalloc/internal/arena.h:
        Backported valgrind fixes from jemalloc 3.4.1
      extra/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in:
        Backported valgrind fixes from jemalloc 3.4.1
      extra/jemalloc/include/jemalloc/internal/private_namespace.h:
        Backported valgrind fixes from jemalloc 3.4.1
      extra/jemalloc/include/jemalloc/internal/tcache.h:
        Backported valgrind fixes from jemalloc 3.4.1
      extra/jemalloc/src/arena.c:
        Backported valgrind fixes from jemalloc 3.4.1
      include/my_bitmap.h:
        Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() to avoid clash with jemalloc 3.4.1
      mysql-test/mysql-test-run.pl:
        Use option --soname-synonyms=somalloc=NON to valgrind when using jemalloc
      mysql-test/valgrind.supp:
        Supression of memory leak in OpenSuse 12.3
      mysys/my_bitmap.c:
        Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free()
      sql/ha_ndbcluster_binlog.cc:
        Renames
      sql/ha_ndbcluster_cond.h:
        Renames
      sql/ha_partition.cc:
        Renames
      sql/handler.cc:
        Renames
      sql/item_subselect.cc:
        Renames
      sql/log_event.cc:
        Renames
      sql/log_event_old.cc:
        Renames
      sql/mysqld.cc:
        Renames
        Show version related variables in mysqld --help
      sql/opt_range.cc:
        Renames
      sql/opt_table_elimination.cc:
        Renames
      sql/partition_info.cc:
        Renames
      sql/rpl_injector.h:
        Renames
      sql/set_var.h:
        Renames
      sql/slave.cc:
        Renames
      sql/sql_bitmap.h:
        Renames
      sql/sql_insert.cc:
        Renames
      sql/sql_lex.h:
        Renames
      sql/sql_parse.cc:
        Renames
      sql/sql_partition.cc:
        Renames
      sql/sql_select.cc:
        Renames
      sql/sql_show.cc:
        Renames
      sql/sql_update.cc:
        Renames
      sql/sys_vars.cc:
        Show version related variables in mysqld --help
      sql/sys_vars.h:
        Added SHOW_VALUE_IN_HELP marker for variables that should be shown in --help
      sql/table.cc:
        Renames
      sql/table.h:
        Removed not used bitmap_init_value
      storage/connect/ha_connect.cc:
        Removed compiler warning
      storage/maria/ma_open.c:
        Renames
      unittest/mysys/bitmap-t.c:
        Renames
      273078c5
  11. 25 Nov, 2013 1 commit
  12. 03 Nov, 2013 1 commit
    • Michael Widenius's avatar
      Fixed things missing in merge between 10.0-base and 10.0 · de9d9792
      Michael Widenius authored
      Updated --help text to declare --slave-parallel-threads as an alpha feature
      
      mysql-test/r/mysqld--help.result:
        Updated --help text
      sql/slave.cc:
        Added missing trans_retries++ that caused rpl_deadlock_innodb.test to fail.
        This is safe as this part is never run in parallel.
      sql/sql_base.cc:
        Fixed temporary table handling (part of merge)
      sql/sys_vars.cc:
        Updated --help text to declare --slave-parallel-threads as an alpha feature
      de9d9792
  13. 24 Oct, 2013 1 commit
  14. 25 Sep, 2013 1 commit
  15. 14 Aug, 2013 1 commit
    • Sergey Vojtovich's avatar
      MDEV-4702 - Reduce usage of LOCK_open · b7f9c894
      Sergey Vojtovich authored
      Following variables do not require LOCK_open protection anymore:
      - table_def_cache (renamed to tdc_hash) is protected by rw-lock
        LOCK_tdc_hash;
      - table_def_shutdown_in_progress doesn't need LOCK_open protection;
      - last_table_id use atomics;
      - TABLE_SHARE::ref_count (renamed to TABLE_SHARE::tdc.ref_count)
        is protected by TABLE_SHARE::tdc.LOCK_table_share;
      - TABLE_SHARE::next, ::prev (renamed to tdc.next and tdc.prev),
        oldest_unused_share, end_of_unused_share are protected by
        LOCK_unused_shares;
      - TABLE_SHARE::m_flush_tickets (renamed to tdc.m_flush_tickets)
        is protected by TABLE_SHARE::tdc.LOCK_table_share;
      - refresh_version (renamed to tdc_version) use atomics.
      b7f9c894
  16. 13 Aug, 2013 1 commit
  17. 25 Jul, 2013 1 commit
  18. 09 Jul, 2013 1 commit
  19. 04 Jul, 2013 1 commit
  20. 28 May, 2013 1 commit
    • unknown's avatar
      MDEV-4478: Implement GTID "strict mode" · ee2b7db3
      unknown authored
      When @@GLOBAL.gtid_strict_mode=1, then certain operations result
      in error that would otherwise result in out-of-order binlog files
      between servers.
      
      GTID sequence numbers are now allocated independently per domain;
      this results in less/no holes in GTID sequences, increasing the
      likelyhood that diverging binlogs will be caught by the slave when
      GTID strict mode is enabled.
      ee2b7db3
  21. 10 May, 2013 1 commit
    • Michael Widenius's avatar
      Added some fixes that should make MyISAM & Aria REPAIR work with more than 4G records · 53d44ad1
      Michael Widenius authored
      - If one specifies --force twice to myisamchk and aria_chk, then we will try to finnish the repair even if sort_buffer would be too small.
        This was done by dynamically allocate buffer handler objects as long as memory lasts.
      - New option for myisamchk and aria_chk: create-missing-keys
      - Changed default size of myisam_sort_buffer_size from 8M to 128M.
      - Changed default size of sort_buffer_size in aria_chk from 128M to 256M.
      - Increased information in error message about 'sort_buffer_size' beeing to small.
      - Print also to 'show warnings' if repair was retried.
      - Increased size of internal sort-buffer-readers from 16K to 128K
      - Changed printing of 'number of records' to use %ll instead of casting to long
      - Changed buffer sizes for myisam and aria to use MY_ALIGN_DOWN() to get same number of bytes allocated on different machines.
      
      
      
      
      
      include/my_global.h:
        Added MY_ALIGN_DOWN() to get previous alignment (for big memory areas)
      include/myisam.h:
        Increased size of types to be able to handle more records
      include/myisamchk.h:
        Increased size of types to be able to handle more records
        Added T_FORCE_SORT_MEMORY to force repair to work even if sort_buffer would not be big enough
      mysql-test/r/myisam.result:
        Updated result
      mysql-test/r/mysqld--help.result:
        Updated result
      mysql-test/r/repair.result:
        Updated result
      mysql-test/suite/maria/maria.result:
        Added test cases for some fixed bugs in MyISAM to verify that Aria doesn't have them too.
      mysql-test/suite/maria/maria.test:
        Added test cases for some fixed bugs in MyISAM to verify that Aria doesn't have them too.
      mysql-test/suite/maria/maria3.result:
        Updated result after sort buffer size increase
      mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic.result:
        Updated result after sort buffer size increase
      mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic.result:
        Updated result after sort buffer size increase
      mysql-test/suite/sys_vars/t/myisam_sort_buffer_size_basic.test:
        Updated result after sort buffer size increase
      mysql-test/t/myisam.test:
        Fixed error messages to not print system specific data
      mysql-test/t/repair.test:
        Fixed error messages to not print system specific data
      storage/maria/ha_maria.cc:
        Print also to 'show warnings' if repair was retried
        Changed default size of sort_buffer_size from 128M to 256M (same as in mysqld)
      storage/maria/ma_check.c:
        Renamed USE_BUFFER_INIT -> PAGE_BUFFER_INIT
      storage/maria/ma_sort.c:
        Increased size of internal sort-buffer-readers from 16K to 128K
        Increased size of types to be able to handle more records
        Added support for T_FORCE_SORT_MEMORY
        Don't allocate too many extra BUFFPEK at a time (they are probably not needed)
        Improved error message for "sort_buffer_size is too small"
        Changed printing of 'number of records' to use %ll instead of casting to long
        Fixed bug where maria_update_key_parts() was called too early.
        Fixed bug in detecting result from read_to_buffer().
        Added 'out of memory' checking when calling 'alloc_dynamic()'.
      storage/maria/maria_chk.c:
        Added --create-missing-keys
        If one specifies --force twice then we will try to finnish the repair even if sort_buffer would be too small.
        check_param.sort_buffer_length varialble was used with wrong type.
      storage/maria/maria_def.h:
        Increased size of types to be able to handle more records
        Use MY_ALIGN_DOWN() to get same number of bytes allocated on different machines
        Renamed USE_BUFFER_INIT -> PAGE_BUFFER_INIT
      storage/maria/maria_ftdump.c:
        Renamed USE_BUFFER_INIT -> PAGE_BUFFER_INIT
      storage/maria/maria_read_log.c:
        Use PAGE_BUFFER_INIT for page cache
      storage/myisam/ha_myisam.cc:
        Changed default size of myisam_sort_buffer_size from 8M to 128M
      storage/myisam/mi_check.c:
        Renamed USE_BUFFER_INIT -> KEY_BUFFER_INIT
      storage/myisam/myisam_ftdump.c:
        Renamed USE_BUFFER_INIT -> KEY_BUFFER_INIT
      storage/myisam/myisamchk.c:
        Added --create-missing-keys
        If one specifies --force twice then we will try to finnish the repair even if sort_buffer would be too small.
        check_param.sort_buffer_length varialble was used with wrong type.
        Renamed USE_BUFFER_INIT -> KEY_BUFFER_INIT
      storage/myisam/myisamdef.h:
        Increased SORT_BUFFER_INIT to 64M
        (speeds up repair a lot and most machines have nowadays a lot of memory)
        Use MY_ALIGN_DOWN() to get same number of bytes allocated on different machines
        Renamed USE_BUFFER_INIT -> KEY_BUFFER_INIT
      storage/myisam/sort.c:
        Increased size of internal sort-buffer-readers from 16K to 128K
        Increased size of types to be able to handle more records
        Added support for T_FORCE_SORT_MEMORY
        Don't allocate too many extra BUFFPEK at a time (they are probably not needed)
        Improved error message for "sort_buffer_size is too small"
        Changed printing of 'number of records' to use %ll instead of casting to long
        Fixed bug in detecting result from read_to_buffer().
        Added 'out of memory' checking when calling 'alloc_dynamic()'.
      53d44ad1
  22. 20 Apr, 2013 1 commit
    • Alexander Barkov's avatar
      Fixing a few problems found by Build Bot after merging the CONNECT engine. · a6a4fa1d
      Alexander Barkov authored
      modified:
        @ mysql-test/r/mysqld--help.result
        @ mysql-test/t/mysqld--help.test
        Supressing information about "--connect" in "mysqld --help" output,
        as it depends on the build parameters.
        As a side effect information about --connect-timeout is now also suppressed :(
      
        @ storage/connect/CMakeLists.txt
        Removing gcc warning switches that do not exists in some older gcc versions.
      
        @ storage/connect/ha_connect.cc
        Adding a quick fix: cast from "const char *" to "char *".
        Olivier should do a better fix eventually.
      a6a4fa1d
  23. 18 Apr, 2013 1 commit
    • unknown's avatar
      MDEV-4345 · 9441e536
      unknown authored
      Sampling of selectivity of LIKE predicate.
      9441e536
  24. 10 Apr, 2013 1 commit
    • Sergei Golubchik's avatar
      portability fixes for mysql-test · ff3407a1
      Sergei Golubchik authored
      mysql-test/r/mysqld--help.result:
        that's default to number of CPUs
      mysql-test/suite/archive/discover.test:
        move_file uses rename(2), which may end up
        with "Invalid cross-device link"
      mysql-test/suite/archive/partition_archive.test:
        on Solaris the error message is different
      ff3407a1
  25. 07 Apr, 2013 1 commit
  26. 31 Mar, 2013 1 commit
  27. 26 Mar, 2013 2 commits
    • unknown's avatar
      MDEV-26: Global transaction ID · d9f975d0
      unknown authored
      Adjust full test suite to work with GTID.
      
      Huge patch, mainly due to having to update .result file for all SHOW BINLOG
      EVENTS and mysqlbinlog outputs, where the new GTID events pop up.
      
      Everything was painstakingly checked to be still correct and valid .result
      file updates.
      d9f975d0
    • Igor Babaev's avatar
      Added histogams for table columns. · 1009832c
      Igor Babaev authored
      1009832c
  28. 11 Mar, 2013 1 commit
  29. 25 Feb, 2013 1 commit
  30. 15 Dec, 2012 1 commit
    • Sergei Golubchik's avatar
      MDEV-3860 backport --plugin-load-add (and related mysql-test changes) · 2217717f
      Sergei Golubchik authored
        revno: 3383
        revision-id: georgi.kodinov@oracle.com-20110818083108-qa3h3ufqu4zne80a
        committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
        timestamp: Thu 2011-08-18 11:31:08 +0300
        message:
      
        Bug #11766001: 59026: ALLOW MULTIPLE --PLUGIN-LOAD OPTIONS
        
        Implemented support for a new command line option :
        --plugin-load-add=<comma-separated-name-equals-value-list>
        This option takes the same type of arguments that --plugin-load does
        and complements --plugin-load (that continues to operate as before) by
        appending its argument to the list specified by --plugin-load.
        So --plugin-load can be considered a composite option consisting of 
        resetting the plugin load list and then calling --plugin-load-add to process
        the argument.
        Note that the order in which you specify --plugin-load and --plugin-load-add 
        is important : "--plugin-load=x --plugin-load-add=y" will be equivalent to
        "--plugin-load=x,y" whereas "--plugin-load-add=y --plugin-load=x" will be 
        equivalent to "plugin-load=x".
        
        Incompatible change : the --help --verbose command will no longer print the 
        --plugin-load variable's values (as it doesn't have one). Otherwise both --plugin-load 
        and --plugin-load-add are mentioned in it.
      2217717f
  31. 28 Sep, 2012 1 commit
  32. 08 Sep, 2012 1 commit
    • Michael Widenius's avatar
      Added new status variables: · 3a793b9d
      Michael Widenius authored
      feature_dynamic_columns,feature_fulltext,feature_gis,feature_locale,feature_subquery,feature_timezone,feature_trigger,feature_xml
      Opened_views, Executed_triggers, Executed_events
      Added new process status 'updating status' as part of 'freeing items'
      
      mysql-test/r/features.result:
        Test of feature_xxx status variables
      mysql-test/r/mysqld--help.result:
        Removed duplicated 'language' variable.
      mysql-test/r/view.result:
        Test of opened_views
      mysql-test/suite/rpl/t/rpl_start_stop_slave.test:
        Write more information on failure
      mysql-test/t/features.test:
        Test of feature_xxx status variables
      mysql-test/t/view.test:
        Test of opened_views
      sql/event_scheduler.cc:
        Increment executed_events status variable
      sql/field.cc:
        Increment status variable
      sql/item_func.cc:
        Increment status variable
      sql/item_strfunc.cc:
        Increment status variable
      sql/item_subselect.cc:
        Increment status variable
      sql/item_xmlfunc.cc:
        Increment status variable
      sql/mysqld.cc:
        Add new status variables to 'show status'
      sql/mysqld.h:
        Added executed_events
      sql/sql_base.cc:
        Increment status variable
      sql/sql_class.h:
        Add new status variables
      sql/sql_parse.cc:
        Added new process status 'updating status' as part of 'freeing items'
      sql/sql_trigger.cc:
        Increment status variable
      sql/sys_vars.cc:
        Increment status variable
      sql/tztime.cc:
        Increment status variable
      3a793b9d
  33. 22 Aug, 2012 1 commit
  34. 03 Jun, 2012 1 commit
    • Igor Babaev's avatar
      Removed the server option --stat-tables. · f549f495
      Igor Babaev authored
      Renamed the system variable optimizer_use_stat_tables to use_stat_tables.
      This variable now has only 3 possible values:
      'never', 'complementary', 'preferably'.
      If the server has been launched with
      --use-stat-tables='complementary'|'preferably'
      then the statictics tables can be employed by the optimizer and by the
      ANALYZE command. 
      f549f495
  35. 17 May, 2012 1 commit
    • unknown's avatar
      Fix for bug lp:944706, task MDEV-193 · da521483
      unknown authored
      The patch enables back constant subquery execution during
      query optimization after it was disabled during the development
      of MWL#89 (cost-based choice of IN-TO-EXISTS vs MATERIALIZATION).
      
      The main idea is that constant subqueries are allowed to be executed
      during optimization if their execution is not expensive.
      
      The approach is as follows:
      - Constant subqueries are recursively optimized in the beginning of
        JOIN::optimize of the outer query. This is done by the new method
        JOIN::optimize_constant_subqueries(). This is done so that the cost
        of executing these queries can be estimated.
      - Optimization of the outer query proceeds normally. During this phase
        the optimizer may request execution of non-expensive constant subqueries.
        Each place where the optimizer may potentially execute an expensive
        expression is guarded with the predicate Item::is_expensive().
      - The implementation of Item_subselect::is_expensive has been extended
        to use the number of examined rows (estimated by the optimizer) as a
        way to determine whether the subquery is expensive or not.
      - The new system variable "expensive_subquery_limit" controls how many
        examined rows are considered to be not expensive. The default is 100.
      
      In addition, multiple changes were needed to make this solution work
      in the light of the changes made by MWL#89. These changes were needed
      to fix various crashes and wrong results, and legacy bugs discovered
      during development.
      da521483
  36. 08 May, 2012 1 commit
  37. 23 Feb, 2012 1 commit
  38. 20 Feb, 2012 1 commit
  39. 18 Feb, 2012 1 commit