- 05 Oct, 2017 6 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
For instant ADD COLUMN, the dictionary cache and the persistent data structures will be updated in ha_innobase::commit_inplace_alter_table(). The dict_table_t::cols[] will be updated before the transaction is committed or rolled back. If the transaction is rolled back, the changes must be reverted. dict_index_t::instant_add_field(): Instantly add clustered index fields to an existing index. dict_table_t::instant_add_column(): Instantly add columns to an existing table definition. dict_table_t::rollback_instant(): Roll back instant_add_column().
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The adaptive hash index is built on record prefixes on leaf pages, containing at most index->n_uniq fields. Because the info_bits are not part of the hash value calculation, the adaptive hash index cannot distinguish the 'default row' record from a genuine user record (and it cannot distinguish whether a record is delete-marked). rec_fold(): Move the function to the only module where it is used, and assert that the record is on a leaf page and not the 'default row'. btr_search_drop_page_hash_index(), btr_search_build_page_hash_index(): Skip the 'default row'
-
- 04 Oct, 2017 12 commits
-
-
Marko Mäkelä authored
btr_cur_optimistic_delete_func(): Do not try to discard a lock on the 'default row' because must be there none
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Only page_create_low() and PageBulk::finish() are entitled to reset PAGE_INSTANT. page_copy_rec_list_end_to_created_page() may be invoked on the root page, where PAGE_INSTANT would be set.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 03 Oct, 2017 22 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
functions. There is no reason to export IO this functionality from server, if it can be easily implemented with CRT. Note: for the sake of compatibility, we do not use _open() on Windows, but open file with CreateFile, with FILE_SHARE_DELETE flag, so it can be renamed or deleted when open. Also atomic append flag is used.
-
Vladislav Vaintroub authored
Fixes some warnings.
-
Sergei Golubchik authored
fix --ps-protocol
-
halfspawn authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
move binlog-dependent part (~6%) into a separate file, to be able to run the rest of multi_update with embedded server (include/have_log_bin.inc disables embedded)
-
Marko Mäkelä authored
-
Marko Mäkelä authored
fil_space_extend_must_retry(): If the table is being truncated, do not call fil_flush_low(). The operation is covered by the truncate log. File extension during TRUNCATE only occurs if there are many indexes on the table. With smaller innodb_page_size, the file extension occurs already with fewer indexes on the table.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
trx_t::in_rollback: Make the field available in non-debug builds. row_undo_ins_remove_clust_rec(): On the rollback of an insert into SYS_COLUMNS, revert instant ADD COLUMN in the cache by removing the last column from the table and the clustered index. page_set_instant(): Remove a too strict assertion. A rollback would not reset the root page from FIL_PAGE_TYPE_INSTANT to FIL_PAGE_INDEX, so the PAGE_INSTANT field could already be set. rec_init_offsets_comp_ordinary(), rec_copy_prefix_to_buf(), row_undo_search_clust_to_pcur(): Adjust too strict assertions. row_search_on_row_ref(), row_undo_mod_parse_undo_rec(), row_undo_mod(), trx_undo_update_rec_get_update(): Handle the 'default row' as a special case. btr_cur_trim(): In an update, trim the tuple as needed. For the 'default row', handle rollback specially. For user records, omit fields that match the 'default row'. btr_cur_optimistic_delete_func(), btr_cur_pessimistic_delete(): Skip locking and adaptive hash index for the 'default row'.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
A dictionary transaction must be flagged as such before it has generated any undo log records. This is because trx_undo_assign_undo() will mark the transaction as a dictionary transaction in the undo log header right before the very first undo log record is being written.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Sergei Petrunia authored
This is error-prone and causes warnings on Windows
-
Jan Lindström authored
wrep_sst_common and wsrep_sst_xtrabackup-v2 bugfixes to read sst parameters from configs
-
Alexander Barkov authored
Fixing the data type for the "fuzzydate" parameter to Item_func_hybrid_field_type::date_op() from uint to ulonglong, for consistency with Item::get_date().
-
Marko Mäkelä authored
The function dict_disable_redo_if_temporary() was supposed to disable redo logging for temporary tables. It was invoked unnecessarily for two read-only operations: row_undo_search_clust_to_pcur() and dict_stats_update_transient_for_index(). When a table is not temporary and not in the system tablespace, the tablespace should be flagged for MLOG_FILE_NAME logging. We do not need this overhead for temporary tables. Therefore, either mtr_t::set_log_mode() or mtr_t::set_named_space() should be invoked. dict_table_t::is_temporary(): Determine if a table is temporary. dict_table_is_temporary(): Redefined as a macro wrapper for dict_table_t::is_temporary(). dict_disable_redo_if_temporary(): Remove.
-
Vladislav Vaintroub authored
Fix truncation warning on Windows, in a populart header, with a cast.
-
Alice Sherepa authored
-