1. 25 Feb, 2019 3 commits
    • Teemu Ollakka's avatar
      Fixed and recorded galera_sr.galera_sr_rollback_statement · 1ab2e757
      Teemu Ollakka authored
      Disabled GCF-437 which relies on InnoDB redo log size limitation
      which does not seem to exist or is increased in MariaDB 10.4.
      
      Require debug sync for mysql-wsrep#215.
      1ab2e757
    • Teemu Ollakka's avatar
      Simplified Wsrep_client_service::interrupted() · 24be8438
      Teemu Ollakka authored
      Wsrep-lib is now guaranteed to hold the underlying mutex
      which is wrapped in lock object passed to Wsrep_client_service
      interrupted() call. The library part will now take care of
      checking the wsrep::transaction specific state, so it is
      enough to check the thd->killed state for the result.
      24be8438
    • Teemu Ollakka's avatar
      Fixes to streaming replication BF aborts · 6edfeb82
      Teemu Ollakka authored
      The InnoDB DeadlockChecker::check_and_resolve() was missing a
      call to wsrep_handle_SR_rollback() in the case when the
      transaction running deadlock detection was chosen as victim.
      
      Refined wsrep_handle_SR_rollback() to skip store_globals() calls
      if the transaction was BF aborting itself.
      
      Made mysql-wsrep-features#165 more deterministic by waiting until
      the update is in progress before sending next update.
      6edfeb82
  2. 24 Feb, 2019 4 commits
  3. 23 Feb, 2019 2 commits
  4. 22 Feb, 2019 4 commits
  5. 21 Feb, 2019 25 commits
    • Sachin's avatar
      MDEV-371 Unique Index for long columns · d00f19e8
      Sachin authored
      This patch implements engine independent unique hash index.
      
      Usage:- Unique HASH index can be created automatically for blob/varchar/test column whose key
       length > handler->max_key_length()
      or it can be explicitly specified.
      
        Automatic Creation:-
         Create TABLE t1 (a blob unique);
        Explicit Creation:-
         Create TABLE t1 (a int , unique(a) using HASH);
      
      Internal KEY_PART Representations:-
       Long unique key_info will have 2 representations.
       (lets understand this with an example create table t1(a blob, b blob , unique(a, b)); )
      
       1. User Given Representation:- key_info->key_part array will be similar to what user has defined.
       So in case of example it will have 2 key_parts (a, b)
      
       2. Storage Engine Representation:- In this case there will be only one key_part and it will point to
       HASH_FIELD. This key_part will be always after user defined key_parts.
      
       So:- User Given Representation          [a] [b] [hash_key_part]
                        key_info->key_part ----^
        Storage Engine Representation          [a] [b] [hash_key_part]
                        key_info->key_part ------------^
      
       Table->s->key_info will have User Given Representation, While table->key_info will have Storage Engine
       Representation.Representation can be changed into each other by calling re/setup_keyinfo_hash function.
      
      Working:-
      
      1. So when user specifies HASH_INDEX or key_length is > handler->max_key_length(), In mysql_prepare_create_table
      One extra vfield is added (for each long unique key). And key_info->algorithm is set to HA_KEY_ALG_LONG_HASH.
      
      2. In init_from_binary_frm_image values for hash_keypart is set (like fieldnr , field and flags)
      
      3. In parse_vcol_defs, HASH_FIELD->vcol_info is created. Item_func_hash is used with list of Item_fields,
         When Explicit length is given by user then Item_left is used to concatenate Item_field values.
      
      4. In ha_write_row/ha_update_row check_duplicate_long_entry_key is called which will create the hash key from
      table->record[0] and then call ha_index_read_map , if we found duplicated hash , we will compare the result
      field by field.
      d00f19e8
    • Oleksandr Byelkin's avatar
      fix test to pass on embedded serever · 5b4d6595
      Oleksandr Byelkin authored
      5b4d6595
    • Sergei Golubchik's avatar
      mysql_install_db: make sure the variable's value is visible · 33b9f805
      Sergei Golubchik authored
      move the assignment out of a function, so that it wouldn't
      happen in a subshell
      33b9f805
    • Marko Mäkelä's avatar
      MDEV-18677 clang-cl 7 fails to compile innodb · 7c8e17b9
      Marko Mäkelä authored
      ib_counter_element_t: Declare as struct, not union.
      
      Based on patch by Vladislav Vaintroub
      7c8e17b9
    • Sergei Golubchik's avatar
      MDEV-12484 Enable unix socket authentication by default · 7f6d8894
      Sergei Golubchik authored
      Debian part. Do not ask to set a root password,
      do not create debian-sys-maint user (but preserve an existing one
      on upgrades - user scripts might be relying on it).
      
      Just create an empty /etc/mysql/debian.cnf for --defaults-file not to fail
      7f6d8894
    • Sergei Golubchik's avatar
      don't invoke error interceptors for fatal errors · 132216fa
      Sergei Golubchik authored
      and, again, *don't use thd->clear_error()*
      
      this fixed main.sp_notembedded failure on various amd64 platforms
      (where ER_STACK_OVERRUN_NEED_MORE happens to fire in open_stat_tables()
      under Dummy_error_handler)
      132216fa
    • Sergei Golubchik's avatar
      65ffea39
    • Sergei Golubchik's avatar
      MDEV-18297 How to reset a forgotten root password · 4386d935
      Sergei Golubchik authored
      After FLUSH PRIVILEGES remember if the connection started under
      --skip-grant-tables and keep it all-powerful, not a lowly anonymous.
      
      One could use this connection to reset passwords as needed.
      
      Also fix a crash in SHOW CREATE USER
      4386d935
    • Sergei Golubchik's avatar
    • Sergei Golubchik's avatar
      MDEV-7597 Expiration of user passwords · 1e621016
      Sergei Golubchik authored
      post-merge changes:
      * handle password expiration on old tables like everything else -
        make changes in memory, even if they cannot be done on disk
      * merge "debug" tests with non-debug tests, they don't use dbug anyway
      * only run rpl password expiration in MIXED mode, it doesn't replicate
        anything, so no need to repeat it thrice
      * restore update_user_table_password() prototype, it should not change
        ACL_USER, this is done in acl_user_update()
      * don't parse json twice in get_password_lifetime and get_password_expired
      * remove LEX_USER::is_changing_password, see if there was any auth instead
      * avoid overflow in expiration calculations
      * don't initialize Account_options in the constructor, it's bzero-ed later
      * don't create ulong sysvars - they're not portable, prefer uint or ulonglong
      * misc simplifications
      1e621016
    • Robert Bindar's avatar
      MDEV-7597 Expiration of user passwords · 90ad4dbd
      Robert Bindar authored
      This patch adds support for expiring user passwords.
      The following statements are extended:
        CREATE USER user@localhost PASSWORD EXPIRE [option]
        ALTER USER user@localhost PASSWORD EXPIRE [option]
      If no option is specified, the password is expired with immediate
      effect. If option is DEFAULT, global policy applies according to
      the default_password_lifetime system var (if 0, password never
      expires, if N, password expires every N days). If option is NEVER,
      the password never expires and if option is INTERVAL N DAY, the
      password expires every N days.
      The feature also supports the disconnect_on_expired_password system
      var and the --connect-expired-password client option.
      
      Closes #1166
      90ad4dbd
    • Sergei Golubchik's avatar
      try harder to link unix_socket plugin statically · 83de75d6
      Sergei Golubchik authored
      fix unix_socket tests to work if unix_socket is a built-in
      83de75d6
    • Sergei Golubchik's avatar
      update C/C · 38bf9319
      Sergei Golubchik authored
      38bf9319
    • Sergei Golubchik's avatar
      81ecc2b2
    • Sergei Golubchik's avatar
      8ad23ff4
    • Sergei Golubchik's avatar
    • Sergei Golubchik's avatar
      9718e374
    • Sergei Golubchik's avatar
      misc cleanups · 81e4b9b3
      Sergei Golubchik authored
      81e4b9b3
    • Sergei Golubchik's avatar
      tests · 7ec3a4d7
      Sergei Golubchik authored
      * don't suppress output unnecessary
      * only run system versioning tests with two innodb combinations
      * show results of delete/update (add SELECTs as needed)
      7ec3a4d7
    • Nikita Malyavin's avatar
      MDEV-16975 Application-time periods: ALTER TABLE · 6294516a
      Nikita Malyavin authored
      * implicit period constraint is hidden and cannot be dropped independently
      * create...like and create...select support
      6294516a
    • Nikita Malyavin's avatar
      b2bd5229
    • Nikita Malyavin's avatar
      MDEV-16973 Application-time periods: DELETE · 47e28a94
      Nikita Malyavin authored
      * inject portion of time updates into mysql_delete main loop
      * triggered case emits delete+insert, no updates
      * PORTION OF `SYSTEM_TIME` is forbidden
      * `DELETE HISTORY .. FOR PORTION OF ...` is forbidden as well
      47e28a94
    • Nikita Malyavin's avatar
      MDEV-17082 Application-time periods: CREATE · 073c93b1
      Nikita Malyavin authored
      * add syntax `CREATE TABLE ... PERIOD FOR <apptime>`
      * add table period entity
      073c93b1
    • Sergei Golubchik's avatar
      move aws_sdk to extra/ · b6360461
      Sergei Golubchik authored
      b6360461
    • Oleksandr Byelkin's avatar
      Merge branch '10.3' into 10.4 · 93ac7ae7
      Oleksandr Byelkin authored
      93ac7ae7
  6. 20 Feb, 2019 2 commits