1. 10 Jan, 2013 3 commits
    • 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
  2. 09 Jan, 2013 2 commits
  3. 08 Jan, 2013 2 commits
  4. 07 Jan, 2013 1 commit
  5. 05 Jan, 2013 1 commit
  6. 01 Jan, 2013 1 commit
  7. 30 Dec, 2012 1 commit
  8. 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
  9. 06 Dec, 2012 2 commits
  10. 21 Dec, 2012 1 commit
  11. 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
  12. 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
  13. 18 Dec, 2012 1 commit
  14. 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
  15. 16 Dec, 2012 4 commits
  16. 14 Dec, 2012 1 commit
  17. 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
  18. 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
  19. 01 Dec, 2012 2 commits
  20. 27 Nov, 2012 3 commits
  21. 26 Nov, 2012 2 commits
  22. 22 Nov, 2012 2 commits
  23. 21 Nov, 2012 2 commits
  24. 17 Nov, 2012 1 commit
    • Sergei Golubchik's avatar
      MDEV-736 LP:1004615 - Unexpected warnings "Encountered illegal value '' when... · 13ba0dd2
      Sergei Golubchik authored
      MDEV-736 LP:1004615 - Unexpected warnings "Encountered illegal value '' when converting to DECIMAL" on a query with aggregate functions and GROUP BY
      
      fix: don't call field->val_decimal() if the field->is_null()
      because the buffer at field->ptr might not hold a valid decimal value
      
      sql/item_sum.cc:
        do not call field->val_decimal() if the field->is_null()
      storage/maria/ma_blockrec.c:
        cleanup
      storage/maria/ma_rrnd.c:
        cleanup
      strings/decimal.c:
        typo
      13ba0dd2