1. 29 Mar, 2018 4 commits
  2. 28 Mar, 2018 4 commits
  3. 27 Mar, 2018 5 commits
    • Daniel Bartholomew's avatar
      bump the VERSION · aafb9d44
      Daniel Bartholomew authored
      aafb9d44
    • Alexander Barkov's avatar
      MDEV-15689 Fix Item_func_set_collation to pass the collation using CHARSET_INFO instead of Item · 068450a3
      Alexander Barkov authored
      Main changes:
      
      - Changing the constructor to accept a CHARSET_INFO pointer, instead of an Item pointer
      - Updating the bison grammar accordingly
      
      Additional cleanups:
      
      - Simplifying Item_func_set_collation::eq() by reusing Item_func::eq()
      - Removing unused binary_keyword
      068450a3
    • Alexander Barkov's avatar
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-15325 Incomplete validation of missing tablespace during recovery · 73af8af0
      Thirunarayanan Balathandayuthapani authored
      Problem:
      =======
      	During validation of missing tablespace, missing tablespace id is
      being compared with hash table of redo logs (recv_sys->addr_hash). But if the
      hash table ran out of memory then there is a possibility that it will not contain
      the redo logs of all tablespace. In that case, Server will load the InnoDB
      even though there is a missing tablespace.
      
      Solution:
      ========
      	If the recv_sys->addr_hash hash table ran out of memory then InnoDB needs
      to scan the remaining redo log again to validate the missing tablespace.
      73af8af0
    • Alexander Barkov's avatar
      MDEV-15620 Crash when using "SET @@NEW.a=expr" inside a trigger · 902ace09
      Alexander Barkov authored
      The problem resided in this branch of the "option_value_no_option_type" rule:
      
      | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default
      
      Summary:
      
      1. internal_variable_name initialized tmp.var to trg_new_row_fake_var (0x01).
      2. The condition "if (tmp.var == NULL)" did not check
         the special case with trg_new_row_fake_var,
         so Lex->set_system_variable(&tmp, $3, $6) was
         called with tmp.var pointing to trg_new_row_fake_var,
         which created a sys_var instance pointing to 0x01 instead of
         a real system variable.
      3. Later, at the trigger invocation time, this method was called:
         sys_var::do_deprecated_warning (this=0x1, thd=0x7ffe6c000a98)
         Notice, "this" is equal to trg_new_row_fake_var (0x01)
      
      Solution:
      
      The old implementation with separate rules
      internal_variable_name (in sql_yacc.yy and sql_yacc_ora.yy) and
      internal_variable_name_directly_assignable (in sql_yacc_ora.yy only)
      was too complex and hard to follow.
      
      Rewriting the code in a more straightforward way.
      
      1. Changing LEX::set_system_variable()
      
      from:
      
      bool set_system_variable(struct sys_var_with_base *, enum_var_type, Item *);
      
      to:
      
      bool set_system_variable(enum_var_type, sys_var *, const LEX_CSTRING *, Item *);
      
      2. Adding new methods in LEX, which operate with variable names:
      
      bool set_trigger_field(const LEX_CSTRING *, const LEX_CSTRING *, Item *);
      bool set_system_variable(enum_var_type var_type, const LEX_CSTRING *name,
                               Item *val);
      bool set_system_variable(THD *thd, enum_var_type var_type,
                               const LEX_CSTRING *name1,
                               const LEX_CSTRING *name2,
                               Item *val);
      bool set_default_system_variable(enum_var_type var_type,
                                       const LEX_CSTRING *name,
                                       Item *val);
      bool set_variable(const LEX_CSTRING *name, Item *item);
      
      3. Changing the grammar to call the new methods directly
         in option_value_no_option_type,
         Removing rules internal_variable_name and
         internal_variable_name_directly_assignable.
      
      4. Removing "struct sys_var_with_base" and trg_new_row_fake_var.
      
      Good side effect:
      
      - The code in /sql reduced from 314 to 183 lines.
      - MDEV-15615 Unexpected syntax error instead of "Unknown system variable" ...
        was also fixed automatically
      902ace09
  4. 26 Mar, 2018 5 commits
  5. 25 Mar, 2018 1 commit
  6. 24 Mar, 2018 6 commits
  7. 23 Mar, 2018 10 commits
  8. 22 Mar, 2018 5 commits
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 4092f906
      Sergei Golubchik authored
      galera SST tests have a debug part, but we don't want to limit them
      to fulltest2 builder. So, add support for test files that
      have a debug part:
      
      * add maybe_debug.inc and maybe_debug.combinations
      * 'debug' combination is run when debug is available
      * 'release' combination is run otherwise
      * test wraps debug parts in if($with_debug) { ... }
      * and creates ,debug.rdiff for debug results
      4092f906
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 5ff7ed96
      Sergei Golubchik authored
      create galera.galera_sst_mariabackup
      5ff7ed96
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 60d4abc1
      Sergei Golubchik authored
      * make galera.galera_sst_xtrabackup* not big
      * auto-select between socat and nc, whatever available
      * auto-skip xtrabackup tests if no xtrabackup or neither socat nor nc
      60d4abc1
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 4b1cbff7
      Sergei Golubchik authored
      make galera.galera_sst_rsync not big
      4b1cbff7
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 8f1014e9
      Sergei Golubchik authored
      fix galera.galera_sst_mysqldump test to work:
      * must connect to 127.0.0.1, where mysqld is listening
      * disable wsrep_sync_wait in wsrep_sst_mysqldump, otherwise
        sst can deadlock
      * allow 127.0.0.1 for bind_address and wsrep_sst_receive_address.
        (it's useful in tests, or when two nodes are on the same box,
        or when nodes are on different boxes, but the connection is
        tunelled, or whatever. Don't judge user's setup). MDEV-14070
      * don't wait for client connections to die when doing
        mysqldump sst. they'll die in a due time, and if needed mysql
        will wait on locks until they do. MDEV-14069
      
      Also don't mark it big, to make sure it's sufficiently tested
      8f1014e9