1. 14 Jan, 2013 1 commit
    • unknown's avatar
      Fix for bug MDEV-3992 · cf79c01c
      unknown authored
      Analysis:
        The crash is a result of incorrect analysis of whether a secondary key
        can be extended with a primary in order to compute ORDER BY. The analysis
        is done in test_if_order_by_key(). This function doesn't take into account
        that the primary key may in fact index the same columns as the secondary
        key. For the test query test_if_order_by_key says that there is an extended
        key with total 2 keyparts.
        At the same time, the condition
          if (pkinfo->key_part[i].field->key_start.is_set(nr))
        in test_if_cheaper_oredring() becomes true for (i == 0), which results in
        an invalid access to rec_per_key[-1].
        
      Solution:
        The best solution would be to reuse KEY::ext_key_parts that is already computed
        by open_binary_frm(), however after detailed analysis the conclusion is that
        the change would be too intrusive for a GA release.
        The solution for 5.5 is to add a guard for the case when the 0-th key part is
        considered, and to assume that all keys will be scanned in this case.
      cf79c01c
  2. 11 Jan, 2013 1 commit
    • Michael Widenius's avatar
      Buildbot fixes and cleanups: · edc89f75
      Michael Widenius authored
      - Added --verbose to BUILD scripts to get make to write out compile commands.
      - Detect if AM_EXTRA_MAKEFLAGS=VERBOSE=1 was used with build scripts.
      - Don't write warnings about replication variables when doing bootstrap.
      - Fixed that mysql_cond_wait() and mysql_cond_timedwait() will report original source file in case of errors.
      - Ignore some compiler warnings
      
      BUILD/FINISH.sh:
        Detect if AM_EXTRA_MAKEFLAGS=VERBOSE=1 or --verbose was used
      BUILD/SETUP.sh:
        Added --verbose to print out the full compile lines
        Updated help message
      client/mysqltest.cc:
        Fixed that one can use 'replace' with cat_file
      cmake/configure.pl:
        If --verbose is used, get make to write out compile commands
      debian/dist/Debian/rules:
        Added $AM_EXTRA_MAKEFLAGS to get VERBOSE=1 on buildbot builds
      debian/dist/Ubuntu/rules:
        Added $AM_EXTRA_MAKEFLAGS to get VERBOSE=1 on buildbot builds
      include/my_pthread.h:
        Made set_timespec_time_nsec() more portable.
      include/mysql/psi/mysql_thread.h:
        Fixed that mysql_cond_wait() and mysql_cond_timedwait() will report original source file in case of errors.
      mysql-test/suite/innodb/r/auto_increment_dup.result:
        Fixed wrong DBUG_SYNC
      mysql-test/suite/innodb/t/auto_increment_dup.test:
        Fixed wrong DBUG_SYNC
      mysql-test/suite/perfschema/include/upgrade_check.inc:
        Make test more portable for changes in *.sql files
      mysql-test/suite/perfschema/r/pfs_upgrade.result:
        Updated test results
      mysql-test/valgrind.supp:
        Ignore running Aria checkpoint thread
      scripts/mysqlaccess.sh:
        Changed reference of bugs database
        Ensure that also client-server group is read.
      sql/handler.cc:
        Added missing syncpoint
      sql/mysqld.cc:
        Don't write warnings about replication variables when doing bootstrap
      sql/mysqld.h:
        Don't write warnings about replication variables when doing bootstrap
      sql/rpl_rli.cc:
        Don't write warnings about replication variables when doing bootstrap
      sql/sql_insert.cc:
        Don't mask SERVER_SHUTDOWN in insert_delayed
        This is done to be able to distingush between shutdown and interrupt errors
      support-files/compiler_warnings.supp:
        Ignore some compiler warnings in xtradb,innobase, oqgraph, yassl, string3.h
      edc89f75
  3. 10 Jan, 2013 5 commits
    • Michael Widenius's avatar
      Fixed crashing bug in GROUP_CONCAT with ROLLUP · 9684140f
      Michael Widenius authored
      Fixed MDEV-4002: Server crash or valgrind errors in Item_func_group_concat::setup and Item_func_group_concat::add
      
      mysql-test/r/group_by.result:
        Added test case for failing GROUP_CONCAT ... ROLLUP queries
      mysql-test/t/group_by.test:
        Added test case for failing GROUP_CONCAT ... ROLLUP queries
      sql/item_sum.cc:
        Fixed issue where field->table pointed to different temporary table than expected.
        Ensure that order->next points to the right object (could cause problems with setup_order())
      9684140f
    • Michael Widenius's avatar
      Fixed problem with failing mysql_upgrade when proc table was not correct. · 5f68820c
      Michael Widenius authored
      Moved out creation of performance schema tables from mysql_system_tables.sql as
      the performance_tables creation scripts needs a working mysql.proc to work.
      
      client/mysql_upgrade.c:
        Added option -V, --version
      debian/dist/Debian/mariadb-server-5.5.files:
        Added mysql_performance_tables.sql
      debian/dist/Ubuntu/mariadb-server-5.5.files:
        Added mysql_performance_tables.sql
      mysql-test/lib/v1/mysql-test-run.pl:
        Added mysql_performance_tables.sql
      mysql-test/mysql-test-run.pl:
        Added mysql_performance_tables.sql
      scripts/CMakeLists.txt:
        Moved out creation of performance schema tables from mysql_system_tables.sql 
        as the performance_tables creation scripts needs a working mysql.proc to work
      scripts/mysql_install_db.sh:
        Added mysql_performance_tables.sql
      scripts/mysql_performance_tables.sql:
        Moved out creation of performance schema tables from mysql_system_tables.sql 
        as the performance_tables creation scripts needs a working mysql.proc to work
      scripts/mysql_system_tables.sql:
        Move creation of performance schema tables to mysql_performance_tables.sql
        Added 'flush tables' to get things to work if someone deletes a table like mysql.proc before run
      scripts/mysql_system_tables_fix.sql:
        ove performance table things to mysql_performance_tables.sql
      storage/perfschema/pfs.cc:
        Fixed comment
      5f68820c
    • Michael Widenius's avatar
      Fixed MDEV-4013: Password length in replication setup · a42e1e38
      Michael Widenius authored
      Give error for wrong parameters to CHANGE MASTER
      Extend MASTER_PASSWORD and MASTER_HOST lengths
      
      
      mysql-test/suite/rpl/r/rpl_password_boundaries.result:
        Test length of MASTER_PASSWORD, MASTER_HOST and MASTER_USER
      mysql-test/suite/rpl/r/rpl_semi_sync.result:
        Use different password than user name for better test coverage
      mysql-test/suite/rpl/t/rpl_password_boundaries.test:
        Test length of MASTER_PASSWORD, MASTER_HOST and MASTER_USER
      mysql-test/suite/rpl/t/rpl_semi_sync.test:
        Use different password than user name for better test coverage
      sql/rpl_mi.h:
        Extend MASTER_PASSWORD and MASTER_HOST lengths
      sql/sql_repl.cc:
        Give error for wrong parameters to CHANGE MASTER
      sql/sql_repl.h:
        Extend MASTER_PASSWORD and MASTER_HOST lengths
      a42e1e38
    • Michael Widenius's avatar
      Fixed some race conditons and bugs related to killed queries · 6e9a48b6
      Michael Widenius authored
      KILL now breaks locks inside InnoDB
      Fixed possible deadlock when running INNODB STATUS
      Added ha_kill_query() and kill_query() to send kill signal to all storage engines
      Added reset_killed() to ensure we don't reset killed state while awake() is getting called
      
      
      include/mysql/plugin.h:
        Added thd_mark_as_hard_kill()
      include/mysql/plugin_audit.h.pp:
        Added thd_mark_as_hard_kill()
      include/mysql/plugin_auth.h.pp:
        Added thd_mark_as_hard_kill()
      include/mysql/plugin_ftparser.h.pp:
        Added thd_mark_as_hard_kill()
      sql/handler.cc:
        Added ha_kill_query() to send kill signal to all storage engines
      sql/handler.h:
        Added ha_kill_query() and kill_query() to send kill signal to all storage engines
      sql/log_event.cc:
        Use reset_killed()
      sql/mdl.cc:
        use thd->killed instead of thd_killed() to abort on soft kill
      sql/sp_rcontext.cc:
        Use reset_killed()
      sql/sql_class.cc:
        Fixed possible deadlock in INNODB STATUS by not getting thd->LOCK_thd_data if it's locked.
        Use reset_killed()
        Tell storge engines that KILL has been sent
      sql/sql_class.h:
        Added reset_killed() to ensure we don't reset killed state while awake() is getting called.
        Added mark_as_hard_kill()
      sql/sql_insert.cc:
        Use reset_killed()
      sql/sql_parse.cc:
        Simplify detection of killed queries.
        Use reset_killed()
      sql/sql_select.cc:
        Use reset_killed()
      sql/sql_union.cc:
        Use reset_killed()
      storage/innobase/handler/ha_innodb.cc:
        Added innobase_kill_query()
        Fixed error reporting for interrupted queries.
      storage/xtradb/handler/ha_innodb.cc:
        Added innobase_kill_query()
        Fixed error reporting for interrupted queries.
      6e9a48b6
    • Michael Widenius's avatar
      Fix for MDEV-4009: main.delayed sporadically fails with "query 'REPLACE... · 396f4d62
      Michael Widenius authored
      Fix for MDEV-4009: main.delayed sporadically fails with "query 'REPLACE DELAYED t1 VALUES (5)' failed: 1317: Query execution was interrupted"
      - Fixed broadcast without a proper mutex
      - Don't break existing locks if we are just testing if we can get the lock
      
      mysql-test/r/create_delayed.result:
        Added test case for failures with INSERT DELAYED with CREATE and DROP TABLE
      mysql-test/t/create_delayed.test:
        Added test case for failures with INSERT DELAYED with CREATE and DROP TABLE
      sql/mdl.cc:
        Don't break existing locks for timeout=0 (ie, just check if there are conflicting locks).
        This fixed the bug that INSERT DELAYED didn't work properly with CREATE TABLE
      sql/sql_base.cc:
        One neads to hold the mutex before doing a mysql_cond_broadcast()
        This fixed the bug that INSERT DELAYED didn't work properly with DROP TABLE
      sql/sql_insert.cc:
        Protect setting of mysys_var->current_mutex.
      396f4d62
  4. 09 Jan, 2013 2 commits
  5. 08 Jan, 2013 2 commits
  6. 07 Jan, 2013 1 commit
  7. 05 Jan, 2013 1 commit
  8. 01 Jan, 2013 1 commit
  9. 30 Dec, 2012 1 commit
  10. 28 Dec, 2012 1 commit
    • Elena Stepanova's avatar
      storage_engine tests and upstream engines/* suites went out of sync with... · 2371b6df
      Elena Stepanova authored
      storage_engine tests and upstream engines/* suites went out of sync with current MariaDB code. Reasons:
        - as of 5.5.27, YEAR(2) is deprecated, hence the new warning;
        - MDEV-553 - different error code/message on out-of-range autoincrement;
        - INSERT IGNORE now produces a warning if a duplicate was encountered (change pushed along with MDEV-553)
      
      2371b6df
  11. 06 Dec, 2012 2 commits
  12. 21 Dec, 2012 1 commit
  13. 20 Dec, 2012 2 commits
    • Vladislav Vaintroub's avatar
      MDEV-3945 - do not hold LOCK_thread_count when freeing THD. · 21b4fda3
      Vladislav Vaintroub authored
        
      The patch decreases the duration of LOCK_thread_count, so it is not hold during THD destructor and freeing memory.
      This mutex  now only protects the integrity of threads list, when removing THD from it,  and thread_count variable.
        
      The add_to_status() function that updates global status during client disconnect,  is now correctly protected by the LOCK_status mutex.
      
      Benchmark : in a  "non-persistent" sysbench test (oltp_ro with reconnect after each query),  ~ 25% more connects/disconnects were measured
      21b4fda3
    • unknown's avatar
      MDEV-3899 Valgrind warnings (blocks are definitely lost) in filesort on IN... · 1b2692d0
      unknown authored
      MDEV-3899  Valgrind warnings (blocks are definitely lost) in filesort on IN subquery with SUM and DISTINCT
        
      Analysys:
      In the beginning of JOIN::cleanup there is code that is supposed to
      free all filesort buffers. The code assumes that the table being sorted
      is the first non-constant table. To get this table it calls:
      first_top_level_tab(this, WITHOUT_CONST_TABLES)
        
      However, first_top_level_tab() instead returned the wrong table - the first
      one in the plan, instead of the first non-constant table. There is no other
      place outside filesort() where sort buffers may be freed. As a result, the
      sort buffer was not freed, and there was a memory leak.
        
      Solution:
      Change first_top_level_tab(), to test for WITH_CONST_TABLES instead of
      WITHOUT_CONST_TABLES.
      1b2692d0
  14. 19 Dec, 2012 1 commit
    • Michael Widenius's avatar
      Fixed some compiler warnings · 35b60208
      Michael Widenius authored
      client/mysqldump.c:
        Removed compiler warning
      extra/yassl/taocrypt/include/pwdbased.hpp:
        Removed compiler warning (iterations is always unsigned)
      support-files/compiler_warnings.supp:
        Ignore warnings from groff
      35b60208
  15. 18 Dec, 2012 1 commit
  16. 17 Dec, 2012 2 commits
    • Michael Widenius's avatar
      Fixed the CREATE TABLE IF EXIST generates warnings instead of errors · 2dbce3d0
      Michael Widenius authored
      mysql-test/r/create.result:
        Updated test results
      mysql-test/t/create.test:
        Updated test
      sql/sql_base.cc:
        Use push_internal_handler/pop_internal_handler to avoid errors & warnings instead of clear_error
        Give a warnings instead of an error for CREATE TABLE IF EXISTS
      sql/sql_parse.cc:
        Check if we failed because of table exists (can only happen from create)
      sql/sql_table.cc:
        Check if we failed because of table exists (can only happen from create)
      2dbce3d0
    • unknown's avatar
      MDEV-3818: Query against view over IS tables worse than equivalent query without view · d7a01487
      unknown authored
      Analysis:
      The reason for the suboptimal plan when querying IS tables through a view
      was that the view columns that participate in an equality are wrapped by
      an Item_direct_view_ref and were not recognized as being direct column
      references.
      
      Solution:
      Use the original Item_field objects via the real_item() method.
      d7a01487
  17. 16 Dec, 2012 4 commits
  18. 14 Dec, 2012 1 commit
  19. 26 Nov, 2012 1 commit
    • unknown's avatar
      Fix of MDEV-3874: Server crashes in Item_field::print on a SELECT from a MERGE... · b8b875cb
      unknown authored
      Fix of MDEV-3874: Server crashes in Item_field::print on a SELECT from a MERGE view with materialization+semijoin, subquery, ORDER BY.
      
      The problem was that in debugging binaries it try to print item to assign human readable name to the item.
      But subquery item was already freed (join_free/cleanup with full cleanup) so Item_field refers to temporary
      table which memory had been already freed.
      b8b875cb
  20. 05 Dec, 2012 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-3888. · 5e345281
      Igor Babaev authored
      When inserting a record with update on duplicate keys the server calls
      the ha_index_read_idx_map handler function to look for the record
      that violates unique key constraints. The third parameter of this call
      should mark only the base components of the index where the server is
      searched for the record. Possible hidden components of the primary key
      are to be unmarked.
      5e345281
  21. 01 Dec, 2012 2 commits
  22. 27 Nov, 2012 3 commits
  23. 26 Nov, 2012 2 commits
  24. 22 Nov, 2012 1 commit