- 27 Nov, 2017 7 commits
-
-
Aleksey Midenkov authored
Disabled DROP and SURVIVE modes.
-
Aleksey Midenkov authored
-
Marko Mäkelä authored
-
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.
-
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().
-
Eugene Kosov authored
-
Marko Mäkelä authored
-
- 23 Nov, 2017 14 commits
-
-
Aleksey Midenkov authored
Merge branch '10.3' into trunk
-
Aleksey Midenkov authored
Related to #212. Extra update of sys_trx_start removed [#87].
-
Marko Mäkelä authored
-
Aleksey Midenkov authored
Windows platform is suffered with this problem.
-
Aleksey Midenkov authored
-
Marko Mäkelä authored
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
Big endian checksum is needed to workaround 10+ years old bug, where checksum was calculated incorrectly on big endian hardware. We can still checksum such tablespaces using software implementation of CRC32.
-
Sergey Vojtovich authored
-
Monty authored
- make hp_mask an inline function (short and called 16 times) - Simplify hp_search. Biggest benefit is for doing key lookup without a matching row. Matching rows may be a bit slower, but is offseted by having hp_mask inlined.
-
Marko Mäkelä authored
The non-persistent UPDATE_TIME for InnoDB tables was not being updated consistently at transaction commit. If a transaction is partly rolled back so that in the end it will not modify a table that it intended to modify, the update_time will be updated nevertheless. This will also happen when InnoDB fails to write an undo log record for the intended modification. If a transaction is committed internally in InnoDB, instead of being committed from the SQL interface, then the trx_t::mod_tables will not be applied to the update_time of the tables. trx_t::mod_tables: Replace the std::set<dict_table_t*> with std::map<dict_table_t*,undo_no_t>, so that the very first modification within the transaction is identified. trx_undo_report_row_operation(): Update mod_tables for every operation after the undo log record was successfully written. trx_rollback_to_savepoint_low(): After partial rollback, erase from trx_t::mod_tables any tables for which all changes were rolled back. trx_commit_in_memory(): Tighten some assertions and simplify conditions. Invoke trx_update_mod_tables_timestamp() if persistent tables were affected. trx_commit_for_mysql(): Remove the call to trx_update_mod_tables_timestamp(), as it is now invoked at the lower level, in trx_commit_in_memory(). trx_rollback_finish(): Clear mod_tables before invoking trx_commit(), because the trx_commit_in_memory() would otherwise wrongly process mod_tables after a full ROLLBACK.
-
Marko Mäkelä authored
-
Michael Widenius authored
-
Michael Widenius authored
TODO: - Make get_thd_memroot() inline - To do this, we need to reduce dependence of include files, especially so that sql_class.h is not depending in item.h
-
- 22 Nov, 2017 7 commits
-
-
Aleksey Midenkov authored
Added schema check logging messages.
-
Eugene Kosov authored
-
Eugene Kosov authored
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
-
Sergey Vojtovich authored
-
- 21 Nov, 2017 9 commits
-
-
Aleksey Midenkov authored
Warnings cleanup in vtmd.cc Stale thd->vers_update_trt after rollback to savepoint fix
-
Eugene Kosov authored
-
Aleksey Midenkov authored
main.shm (Windows) main.named_pipe (Windows) tokudb_parts.partition_syntax_tokudb
-
Aleksey Midenkov authored
main.tc_heuristic_recover main.func_regexp_pcre main.mysql_client_test main.mysql_client_test_comp main.mysql_client_test_nonblock encryption.innodb_encrypt_log_corruption innodb.group_commit_binlog_pos innodb.group_commit_binlog_pos_no_optimize_thread innodb.innodb-alter-tempfile innodb.log_file innodb.log_file_name innodb.log_file_name_debug innodb.log_file_size innodb.log_corruption innodb_gis.rtree_compress innodb_gis.rtree_compress2 innodb_gis.rtree_purge innodb_gis.rtree_split mariabackup.huge_lsn rpl.rpl_semi_sync_event_after_sync rpl.rpl_semi_sync_after_sync_row rpl.rpl_semi_sync_after_sync
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
Removed needless combinations.
-
Otto Kekäläinen authored
This will make these files easier to maintain in the future.
-
Otto Kekäläinen authored
The Debian packaging build was failing on Travis-CI due to timeouts. These changes make it faster by skipping less relevant parts of the build, like the test suite, RocksDB, TokuDB and Mroonga. Also fix the usage of the 'make -j' flag to not have any spaces as recommended in an example in the Debian policy.
-
Otto Kekäläinen authored
-
- 19 Nov, 2017 1 commit
-
-
bigs authored
-
- 17 Nov, 2017 2 commits
-
-
Vladislav Vaintroub authored
Based on pull request by Oleg Obleukhov https://github.com/MariaDB/server/pull/400
-
Vladislav Vaintroub authored
-