1. 03 Jul, 2017 1 commit
    • Kristian Nielsen's avatar
      MDEV-8075: DROP TEMPORARY TABLE not marked as ddl, causing optimistic parallel replication to fail · 228479a2
      Kristian Nielsen authored
      CREATE/DROP TEMPORARY TABLE are not safe to optimistically replicate in
      parallel with other transactions, so they need to be marked as "ddl" in the
      binlog.
      
      This was already done for stand-alone CREATE/DROP TEMPORARY. But temporary
      tables can also be created and dropped inside a BEGIN...END transaction, and
      such transactions were not marked as ddl. Nor was the DROP TEMPORARY TABLE
      statement emitted implicitly when a client connection is closed.
      
      So this patch adds such ddl mark for the missing cases.
      
      The difference to Kristian's original patch is mainly a fix in
      mysql_trans_commit_alter_copy_data() to remember the unsafe_rollback_flags
      over the temporary commit.
      228479a2
  2. 01 Jul, 2017 1 commit
  3. 30 Jun, 2017 7 commits
  4. 29 Jun, 2017 3 commits
  5. 28 Jun, 2017 1 commit
  6. 27 Jun, 2017 4 commits
  7. 26 Jun, 2017 1 commit
    • Vicențiu Ciorbaru's avatar
      Fix merge error from 10.0 · 32659db8
      Vicențiu Ciorbaru authored
      Item_func_sysconst behaves as a non-constant function during prepared
      statements and view creation and constant otherwise. Current condition
      implied the opposite.
      32659db8
  8. 23 Jun, 2017 1 commit
  9. 22 Jun, 2017 9 commits
  10. 21 Jun, 2017 1 commit
  11. 20 Jun, 2017 1 commit
  12. 19 Jun, 2017 10 commits
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      MDEV-12709 : mariabackup - during backup phase read some innodb parameter · b9a326b6
      Vladislav Vaintroub authored
      using "show variables", rather than take the value from my.cnf.
      
      "show variables" is more accurate than my.cnf,it also works for parameters
      set on the mysqld command line, which is especially important for MTR.
      b9a326b6
    • Sergei Golubchik's avatar
    • Marko Mäkelä's avatar
      MDEV-12975 InnoDB redo log minimum size check uses detected file size instead... · d1e182d6
      Marko Mäkelä authored
      MDEV-12975 InnoDB redo log minimum size check uses detected file size instead of requested innodb_log_file_size
      
      log_calc_max_ages(): Use the requested size in the check, instead of
      the detected redo log size. The redo log will be resized at startup
      if it differs from what has been requested.
      d1e182d6
    • Marko Mäkelä's avatar
      MDEV-12975 InnoDB redo log minimum size check uses detected file size instead... · 5e4f4ec8
      Marko Mäkelä authored
      MDEV-12975 InnoDB redo log minimum size check uses detected file size instead of requested innodb_log_file_size
      
      log_calc_max_ages(): Use the requested size in the check, instead of
      the detected redo log size. The redo log will be resized at startup
      if it differs from what has been requested.
      5e4f4ec8
    • Alexander Barkov's avatar
      MDEV-10306 Wrong results with combination of CONCAT, SUBSTR and CONVERT in subquery · 3a37afec
      Alexander Barkov authored
      The bug happens because of a combination of unfortunate circumstances:
      
      1. Arguments args[0] and args[2] of Item_func_concat point recursively
      (through Item_direct_view_ref's) to the same Item_func_conv_charset.
      Both args[0]->args[0]->ref[0] and args[2]->args[0]->ref[0] refer to
      this Item_func_conv_charset.
      
      2. When Item_func_concat::args[0]->val_str() is called,
      Item_func_conv_charset::val_str() writes its result to
      Item_func_conc_charset::tmp_value.
      
      3. Then, for optimization purposes (to avoid copying),
      Item_func_substr::val_str() initializes Item_func_substr::tmp_value
      to point to the buffer fragment owned by Item_func_conv_charset::tmp_value
      Item_func_substr::tmp_value is returned as a result of
      Item_func_concat::args[0]->val_str().
      
      4. Due to optimization to avoid memory reallocs,
      Item_func_concat::val_str() remembers the result of args[0]->val_str()
      in "res" and further uses "res" to collect the return value.
      
      5. When Item_func_concat::args[2]->val_str() is called,
      Item_func_conv_charset::tmp_value gets overwritten (see #1),
      which effectively overwrites args[0]'s Item_func_substr::tmp_value (see #3),
      which effectively overwrites "res" (see #4).
      
      This patch does the following:
      
      a. Changes Item_func_conv_charset::val_str(String *str) to use
         tmp_value and str the other way around. After this change tmp_value
         is used to store a temporary result, while str is used to return the value.
         The fixes the second problem (without SUBSTR):
           SELECT CONCAT(t2,'-',t2) c2
             FROM (SELECT CONVERT(t USING latin1) t2 FROM t1) sub;
         As Item_func_concat::val_str() supplies two different buffers when calling
         args[0]->val_str() and args[2]->val_str(), in the new reduction the result
         created during args[0]->val_str() does not get overwritten by
         args[2]->val_str().
      
      b. Fixing the same problem in val_str() for similar classes
      
         Item_func_to_base64
         Item_func_from_base64
         Item_func_weight_string
         Item_func_hex
         Item_func_unhex
         Item_func_quote
         Item_func_compress
         Item_func_uncompress
         Item_func_des_encrypt
         Item_func_des_decrypt
         Item_func_conv_charset
         Item_func_reverse
         Item_func_soundex
         Item_func_aes_encrypt
         Item_func_aes_decrypt
         Item_func_buffer
      
      c. Fixing Item_func::val_str_from_val_str_ascii() the same way.
         Now Item_str_ascii_func::ascii_buff is used for temporary value,
         while the parameter passed to val_str() is used to return the result.
         This fixes the same problem when conversion (from ASCII to e.g. UCS2)
         takes place. See the ctype_ucs.test for example queries that returned
         wrong results before the fix.
      
      d. Some Item_func descendand classes had temporary String buffers
         (tmp_value and tmp_str), but did not really use them.
         Removing these temporary buffers from:
      
         Item_func_decode_histogram
         Item_func_format
         Item_func_binlog_gtid_pos
         Item_func_spatial_collection:
      
      e. Removing Item_func_buffer::tmp_value, because it's not used any more.
      
      f. Renaming Item_func_[un]compress::buffer to "tmp_value",
         for consistency with other classes.
      
      Note, this patch does not fix the following classes
      (although they have a similar problem):
      
         Item_str_conv
         Item_func_make_set
         Item_char_typecast
      
      They have a complex implementations and simple swapping between "tmp_value"
      and "str" won't work. These classes will be fixed separately.
      3a37afec
    • Marko Mäkelä's avatar
      Mariabackup: Remove the --stats option · 9a646c91
      Marko Mäkelä authored
      The option was basically duplicating InnoDB functionality.
      Persistent statistics can be accessed via the tables
      mysql.innodb_table_stats and mysql.innodb_index_stats.
      9a646c91
    • Marko Mäkelä's avatar
      cede2b6f
    • Marko Mäkelä's avatar
    • Marko Mäkelä's avatar
      Mariabackup: Remove the options --to-archived-lsn --innodb-log-arch-dir · fa70d077
      Marko Mäkelä authored
      These functions cannot possibly work in MariaDB 10.2, and it is
      uncertain if they really work in 10.1 either.
      fa70d077