1. 18 Sep, 2017 6 commits
  2. 17 Sep, 2017 3 commits
    • Marko Mäkelä's avatar
      Null-merge 10.1 into 10.2 · 72c838b9
      Marko Mäkelä authored
      72c838b9
    • Marko Mäkelä's avatar
      MDEV-12634 after-merge test fix: Exercise row_merge_write(), row_merge_read() · d6baf3d3
      Marko Mäkelä authored
      MySQL 5.7 introduced some optimizations to avoid file I/O during
      ALGORITHM=INPLACE operations. While both innodb-index-online and
      innodb-table-online will exercise both the merge sort files and
      the online log files in 10.1, in 10.2 they would only exercise the
      online log files.
      
      Modify one test case in innodb.innodb-table-online so that
      skip_pk_sort will not hold. In this way, this test case will
      write and read the merge sort files. The other instrumented tests
      in innodb-index-online and innodb-table-online will only write
      and read online_log files.
      d6baf3d3
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · d9277732
      Marko Mäkelä authored
      This should also fix the MariaDB 10.2.2 bug
      MDEV-13826 CREATE FULLTEXT INDEX on encrypted table fails.
      
      MDEV-12634 FIXME: Modify innodb-index-online, innodb-table-online
      so that they will write and read merge sort files. InnoDB 5.7
      introduced some optimizations to avoid using the files for small tables.
      
      Many collation test results have been adjusted for MDEV-10191.
      d9277732
  3. 16 Sep, 2017 8 commits
  4. 15 Sep, 2017 9 commits
  5. 14 Sep, 2017 8 commits
    • Marko Mäkelä's avatar
      MDEV-13626 Merge InnoDB test cases from MySQL 5.7 (part 2) · e9d2f37a
      Marko Mäkelä authored
      Import the changes to innodb.innodb-index innodb.innodb-index-debug
      
      Note: As noted in MDEV-13613, due to the behaviour change in MDEV-11114,
      DROP COLUMN will not imply DROP/ADD PRIMARY/UNIQUE KEY, like it does
      in MySQL. The tests have been adjusted accordingly.
      e9d2f37a
    • Alexey Botchkov's avatar
      e2b9f676
    • Alexey Botchkov's avatar
      Compiler warning avoided. · c94fb7b7
      Alexey Botchkov authored
      c94fb7b7
    • Jan Lindström's avatar
      MDEV-12634: Uninitialised ROW_MERGE_RESERVE_SIZE bytes written to tem… · fa2701c6
      Jan Lindström authored
      …porary file
      
      Fixed by removing writing key version to start of every block that
      was encrypted. Instead we will use single key version from log_sys
      crypt info.
      
      After this MDEV also blocks writen to row log are encrypted and blocks
      read from row log aren decrypted if encryption is configured for the
      table.
      
      innodb_status_variables[], struct srv_stats_t
      	Added status variables for merge block and row log block
      	encryption and decryption amounts.
      
      Removed ROW_MERGE_RESERVE_SIZE define.
      
      row_merge_fts_doc_tokenize
      	Remove ROW_MERGE_RESERVE_SIZE
      
      row_log_t
      	Add index, crypt_tail, crypt_head to be used in case of
      	encryption.
      
      row_log_online_op, row_log_table_close_func
      	Before writing a block encrypt it if encryption is enabled
      
      row_log_table_apply_ops, row_log_apply_ops
      	After reading a block decrypt it if encryption is enabled
      
      row_log_allocate
      	Allocate temporary buffers crypt_head and crypt_tail
      	if needed.
      
      row_log_free
      	Free temporary buffers crypt_head and crypt_tail if they
      	exist.
      
      row_merge_encrypt_buf, row_merge_decrypt_buf
      	Removed.
      
      row_merge_buf_create, row_merge_buf_write
      	Remove ROW_MERGE_RESERVE_SIZE
      
      row_merge_build_indexes
      	Allocate temporary buffer used in decryption and encryption
      	if needed.
      
      log_tmp_blocks_crypt, log_tmp_block_encrypt, log_temp_block_decrypt
      	New functions used in block encryption and decryption
      
      log_tmp_is_encrypted
      	New function to check is encryption enabled.
      
      Added test case innodb-rowlog to force creating a row log and
      verify that operations are done using introduced status
      variables.
      fa2701c6
    • Marko Mäkelä's avatar
      Follow-up to MDEV-13563 mariabackup --lock-ddl-per-table · 3f17f511
      Marko Mäkelä authored
      Fix memory leaks, and add a missing newline to a message.
      3f17f511
    • Marko Mäkelä's avatar
      cfd51c01
    • Marko Mäkelä's avatar
      Fix warnings for page_header_get_field() comparisons · 126a581b
      Marko Mäkelä authored
      The type uint16_t is apparently promoted to int in a comparison,
      causing a sign mismatch when comparing to ulint. Convert to ulint
      before comparison.
      126a581b
    • Marko Mäkelä's avatar
      Fix a warning for a debug assertion · 88106ef3
      Marko Mäkelä authored
      The type uint16_t is apparently promoted to int in a comparison,
      causing a sign mismatch when comparing to ulint.
      Convert both operands to uint16_t.
      88106ef3
  6. 13 Sep, 2017 6 commits
    • Marko Mäkelä's avatar
      Clean up the logging of virtual column values in table-rebuilding online ALTER · f5a833c3
      Marko Mäkelä authored
      In online table-rebuilding ALTER TABLE (LOCK=NONE), virtual column values
      are being written to the online_log. WL#8149 in MySQL 5.7 changed some
      low-level functions that are also being used outside row0log.cc, causing
      performance penalty to other code.
      
      We revert those changes, and introduce separate functions for writing
      the virtual column values.
      
      The only functional change should be the one that is mentioned in
      MDEV-13795: row_log_table_low_redundant() will no longer write
      virtual column values along with old_pk, just like row_log_table_low().
      
      As noted in MDEV-13795, some forms of table-rebuilding ALTER with
      virtual columns is broken. At least DROP PRIMARY KEY, ADD PRIMARY KEY
      is broken.
      
      rec_get_converted_size_temp(), rec_convert_dtuple_to_temp():
      Remove the parameter for passing virtual column values.
      
      rec_get_converted_size_temp_v(), rec_convert_dtuple_to_temp_v():
      New functions for appending virtual column values to the online_log.
      
      rec_get_converted_size_comp_prefix_low(),
      rec_convert_dtuple_to_rec_comp(): Remove the v_entry parameter,
      and do not allow n_fields=0.
      f5a833c3
    • Marko Mäkelä's avatar
      Remove the debug variables innodb_purge_stop_now, innodb_purge_run_now · 24062fed
      Marko Mäkelä authored
      The InnoDB purge subsystem can be best stopped by opening a read view,
      for example by START TRANSACTION WITH CONSISTENT SNAPSHOT.
      
      To ensure that everything is purged, use wait_all_purged.inc,
      which waits for the History list length in SHOW ENGINE INNODB STATUS
      to reach 0. Setting innodb_purge_run_now never guaranteed this.
      24062fed
    • Marko Mäkelä's avatar
      Do not require a debug non-embedded server in the test · d06e4fc6
      Marko Mäkelä authored
      This also avoids hitting the hang at server shutdown.
      That hang should be fixed, of course.
      d06e4fc6
    • Marko Mäkelä's avatar
      Return uint16_t instead of ulint · dd35fb35
      Marko Mäkelä authored
      dd35fb35
    • Alexander Barkov's avatar
    • Alexey Botchkov's avatar
      MDEV-13633 JSON_ARRAY() - bad output with some UTF8 characters. · dc82f70e
      Alexey Botchkov authored
              set_charset() calls added for Item_func_json_arran
              and Item_func_json_object::val_str-s.
      dc82f70e