1. 27 Nov, 2017 7 commits
    • Aleksey Midenkov's avatar
      SQL: versioning_alter_history ERROR mode [closes #350] · 0c571f8c
      Aleksey Midenkov authored
      Disabled DROP and SURVIVE modes.
      0c571f8c
    • Aleksey Midenkov's avatar
      7320c683
    • Marko Mäkelä's avatar
      Remove upd_node_t::versioned · 86e57eaa
      Marko Mäkelä authored
      86e57eaa
    • Marko Mäkelä's avatar
      Remove the flag vers_update_trt · 0b89a42f
      Marko Mäkelä authored
      THD::vers_update_trt, trx_t::vers_update_trt, trx_savept_t::vers_update_trt:
      Remove. Instead, determine from trx_t::mod_tables whether versioned
      columns were affected by the transaction.
      
      handlerton::prepare_commit_versioned: Replaces vers_get_trt_data.
      Return the transaction start ID and also the commit ID, in case
      the transaction modified any system-versioned columns (0 if not).
      
      TR_table::store_data(): Remove (merge with update() below).
      
      TR_table::update(): Add the parameters start_id, end_id.
      
      ha_commit_trans(): Remove a condition on SQLCOM_ALTER_TABLE.
      If we need something special for ALTER TABLE...ALGORITHM=INPLACE,
      that can be done inside InnoDB by modifying trx_t::mod_tables.
      
      innodb_prepare_commit_versioned(): Renamed from innodb_get_trt_data().
      Check trx_t::mod_tables to see if any changes to versioned columns
      are present.
      
      trx_mod_table_time_t: A pair of logical timestamps, replacing the
      undo_no_t in trx_mod_tables_t. Keep track of not only the first
      modification to a persistent table in each transaction, but also
      the first modification of a versioned column in a table.
      
      dtype_t, dict_col_t: Add the accessor is_any_versioned(), to check
      if the type refers to a system-versioned user or system column.
      
      upd_t::affects_versioned(): Check if an update affects a versioned
      column.
      
      trx_undo_report_row_operation(): If a versioned column is affected
      by the update, invoke trx_mod_table_time_t::set_versioned().
      
      trx_rollback_to_savepoint_low(): If all changes to versioned columns
      were rolled back, invoke trx_mod_table_time_t::rollback_versioned(),
      so that trx_mod_table_time_t::is_versioned() will no longer hold.
      0b89a42f
    • Marko Mäkelä's avatar
      Identify system-versioned columns in the InnoDB dictionary · 03fbfeef
      Marko Mäkelä authored
      Both bits DATA_VERSIONED will be set in prtype if the column
      is system-versioned. The bits will be 0 for normal unversioned
      columns. For the special columns identifying the logical start
      and end times of versions, only one bit will be set:
      DATA_VERS_START or DATA_VERS_END.
      
      create_table_info_t::create_table_def(),
      prepare_inplace_alter_table_dict(): Set prtype |= DATA_VERSIONED
      for system-versioned columns.
      
      dfield_t::is_version_historical_end(): Determine if a data tuple
      field is_version_end() and contains a timestamp in the past
      (not TRX_ID_MAX).
      
      dtype_t, dict_col_t: Add the accessors
      is_versioned(), is_version_start(), is_version_end().
      
      trx_id_max_bytes[]: The bit pattern of TRX_ID_MAX, for use with
      memcmp().
      03fbfeef
    • Eugene Kosov's avatar
      SQL, IB: various refactoring [#337] · 0cdc1164
      Eugene Kosov authored
      0cdc1164
    • Marko Mäkelä's avatar
      4dd8736c
  2. 23 Nov, 2017 14 commits
  3. 22 Nov, 2017 7 commits
  4. 21 Nov, 2017 9 commits
  5. 19 Nov, 2017 1 commit
  6. 17 Nov, 2017 2 commits