1. 09 Mar, 2020 7 commits
  2. 07 Mar, 2020 3 commits
    • Marko Mäkelä's avatar
      Cleanup: Remove recv_sys.remove_extra_log_files · 57c592f7
      Marko Mäkelä authored
      create_log_file(): Delete all old redo log files where they used to be
      deleted, after the crash injection point innodb_log_abort_6,
      before commit 9ef2d29f
      deprecated and ignored the setting innodb_log_files_in_group.
      57c592f7
    • Marko Mäkelä's avatar
      Cleanup: log upgrade and encryption · 70f0dbe4
      Marko Mäkelä authored
      log_crypt_101_read_checkpoint(), log_crypt_101_read_block():
      Declare as ATTRIBUTE_COLD. These are only used when
      checking that a MariaDB 10.1 encrypted redo log is clean.
      
      log_block_calc_checksum_format_0(): Define in the only
      compilation unit where it is needed. This is only used
      when reading the checkpoint information from redo logs
      before MariaDB 10.2.2.
      
      crypt_info_t: Declare the byte arrays directly with alignas().
      
      log_crypt(): Use memcpy_aligned instead of reinterpret_cast
      on integers.
      70f0dbe4
    • Marko Mäkelä's avatar
      Cleanup: Remove recv_sys.buf_size · 522fbfcb
      Marko Mäkelä authored
      Also, correctly document what recv_sys.mutex is protecting.
      522fbfcb
  3. 06 Mar, 2020 4 commits
  4. 05 Mar, 2020 7 commits
  5. 04 Mar, 2020 5 commits
    • Marko Mäkelä's avatar
      MDEV-21870 Deprecate and ignore innodb_scrub_log and innodb_scrub_log_speed · 64be4ab4
      Marko Mäkelä authored
      The configuration parameter innodb_scrub_log never really worked, as
      reported in MDEV-13019 and MDEV-18370.
      
      Because MDEV-14425 is changing the redo log format, the innodb_scrub_log
      feature would have to be adjusted for it. Due to the known problems,
      it is easier to remove the feature for now, and to ignore and deprecate
      the parameters.
      
      If old log contents should be kept secret, then enabling innodb_encrypt_log
      or setting a smaller innodb_log_file_size could help.
      64be4ab4
    • Ian Gilfillan's avatar
      MDEV-21228: mariadb-conv man page · d62766a8
      Ian Gilfillan authored
      d62766a8
    • Marko Mäkelä's avatar
      MDEV-18214 cleanup: Remove redundant MONITOR_INC calls · 8a25eb66
      Marko Mäkelä authored
      MONITOR_PENDING_CHECKPOINT_WRITE and MONITOR_LOG_IO track
      log_sys.n_pending_checkpoint_writes and log_sys.n_log_ios,
      respectively. The MONITOR_INC calls are redundant, because
      the values will be overwritten in srv_mon_process_existing_counter().
      8a25eb66
    • Marko Mäkelä's avatar
      Cleanup: Make MONITOR_LSN_CHECKPOINT_AGE a value. · 9e488653
      Marko Mäkelä authored
      Compute MONITOR_LSN_CHECKPOINT_AGE on demand in
      srv_mon_process_existing_counter().
      This allows us to remove the overhead of MONITOR_SET
      calls for the counter.
      9e488653
    • Marko Mäkelä's avatar
      MDEV-14425 preparation: Remove log_header_read() · 4383897a
      Marko Mäkelä authored
      The function log_header_read() was only used during server startup,
      and it will mostly be used only for reading checkpoint information
      from pre-MDEV-14425 format redo log files.
      
      Let us replace the function with more direct calls, so that
      it is clearer what is going on. It is not strictly necessary to
      hold any mutex during this operation, and because there will be
      only a limited number of operations during early server startup,
      it is not necessary to increment any I/O counters.
      4383897a
  6. 03 Mar, 2020 9 commits
    • Marko Mäkelä's avatar
      MDEV-14425 preparation: Remove log_t::append_on_checkpoint · 37e7bde1
      Marko Mäkelä authored
      Simplify the logging of ALTER TABLE operations, by making use of the
      TRX_UNDO_RENAME_TABLE undo log record that was introduced in
      commit 0bc36758.
      
      commit_try_rebuild(): Invoke row_rename_table_for_mysql() and
      actually rename the files before committing the transaction.
      
      fil_mtr_rename_log(), commit_cache_rebuild(),
      log_append_on_checkpoint(), row_merge_rename_tables_dict(): Remove.
      
      mtr_buf_copy_t, log_t::append_on_checkpoint: Remove.
      
      row_rename_table_for_mysql(): If !use_fk, ignore missing foreign
      keys. Remove a call to dict_table_rename_in_cache(), because
      trx_rollback_to_savepoint() should invoke the function if needed.
      37e7bde1
    • Marko Mäkelä's avatar
      MDEV-21534: Fix -Wmaybe-uninitialized · 1ef10744
      Marko Mäkelä authored
      group_commit_lock::release(): Ensure that prev will be initialized,
      simplify a comparison, and fix some white space.
      1ef10744
    • Marko Mäkelä's avatar
      MDEV-21724: Correctly invoke page_dir_split_slot() · a736a2cb
      Marko Mäkelä authored
      In commit 138cbec5, we
      computed an incorrect parameter to page_dir_split_slot(),
      leading us to splitting the wrong directory slot, or
      an out-of-bounds access when splitting the supremum slot.
      This was once caught in the test innodb_gis.kill_server for
      inserting records to a clustered index root page.
      
      page_dir_split_slot(): Take the slot as a pointer, instead of
      a numeric index.
      
      page_apply_insert_redundant(), page_apply_insert_dynamic():
      Rename slot to last_slot, and make owner_slot a pointer.
      a736a2cb
    • Marko Mäkelä's avatar
      MDEV-12353: Introduce an EXTENDED record subtype TRIM_PAGES · fae259f0
      Marko Mäkelä authored
      For undo log truncation, commit 055a3334
      repurposed the MLOG_FILE_CREATE2 record with a nonzero page size
      to indicate that an undo tablespace will be shrunk in size.
      In commit 7ae21b18 the
      MLOG_FILE_CREATE2 record was replaced by a FILE_CREATE record.
      
      Now that the redo log encoding was changed, there is no actual need
      to write a file name in the log record; it suffices to write the
      page identifier of the first page that is not part of the file.
      
      This TRIM_PAGES record could allow us to shrink any data files in the
      future. For now, it will be limited to undo tablespaces.
      
      mtr_t::log_file_op(): Remove the parameter first_page_no, because
      it would always be 0 for file operations.
      
      mtr_t::trim_pages(): Replaces fil_truncate_log().
      
      mtr_t::log_write(): Avoid same_page encoding if !bpage&&!m_last.
      
      fil_op_replay_rename(): Remove the constant parameter first_page_no=0.
      fae259f0
    • Rahul Anand's avatar
      73dfb402
    • Andy Fiddaman's avatar
      Merge pull request #1434 from citrus-it/illumos-auth-socket · 8f8cc5f4
      Andy Fiddaman authored
      MDEV-21476: auth_socket: add support for illumos with getpeerucred()
      8f8cc5f4
    • Aleksey Midenkov's avatar
    • Aleksey Midenkov's avatar
      MDEV-7318 RENAME INDEX · 193725b8
      Aleksey Midenkov authored
      This patch adds support of RENAME INDEX operation to the ALTER TABLE
      statement. Code which determines if ALTER TABLE can be done in-place
      for "simple" storage engines like MyISAM, Heap and etc. was updated to
      handle ALTER TABLE ... RENAME INDEX as an in-place operation. Support
      for in-place ALTER TABLE ... RENAME INDEX for InnoDB was covered by
      MDEV-13301.
      
      Syntax changes
      ==============
      
      A new type of <alter_specification> is added:
      
      <rename index clause> ::= RENAME ( INDEX | KEY ) <oldname> TO <newname>
      
      Where <oldname> and <newname> are identifiers for old name and new
      name of the index.
      
      Semantic changes
      ================
      
      The result of "ALTER TABLE t1 RENAME INDEX a TO b" is a table which
      contents and structure are identical to the old version of 't1' with
      the only exception index 'a' being called 'b'.
      
      Neither <oldname> nor <newname> can be "primary". The index being
      renamed should exist and its new name should not be occupied
      by another index on the same table.
      
      Related to: WL#6555, MDEV-13301
      193725b8
    • Aleksey Midenkov's avatar
      MDEV-16290 ALTER TABLE ... RENAME COLUMN syntax · fa8ad754
      Aleksey Midenkov authored
      The existing syntax for renaming a column uses "ALTER TABLE ...  CHANGE"
      command. This requires full column specification to rename the column.
      This patch adds new syntax "ALTER TABLE ...  RENAME COLUMN", which do not
      expect users to provide full column specification.  It means that the new
      syntax would pick in-place or copy algorithm in the same way as that of
      existing "ALTER TABLE ... CHANGE" command. The existing syntax
      "ALTER TABLE ... CHANGE" will continue to work.
      
      Syntax changes
      ==============
      
      ALTER TABLE tbl_name
          [alter_specification [, alter_specification] ...]
          [partition_options]
      
      Following is a new <alter_specification> added:
      
       | RENAME COLUMN <oldname> TO <newname>
      
      Where <oldname> and <newname> are identifiers for old name and new
      name of the column.
      
      Related to: WL#10761
      fa8ad754
  7. 02 Mar, 2020 4 commits
  8. 01 Mar, 2020 1 commit