- 31 Jan, 2018 5 commits
-
-
Marko Mäkelä authored
trx_undo_page_get_prev_rec(), trx_undo_page_get_last_rec(), trx_undo_page_get_first_rec(), trx_undo_page_get_start(): Move to the only caller, trx0undo.cc. Add some const qualifiers.
-
Marko Mäkelä authored
trx_rseg_get_nth_undo(), trx_rsegf_undo_find_free(): Add a const qualifier, and remove the unused parameter mtr_t*.
-
Marko Mäkelä authored
trx_sysf_t: Remove. trx_sysf_get(): Return the TRX_SYS page, not a pointer within it. trx_sysf_rseg_get_space(), trx_sysf_rseg_get_page_no(): Remove a parameter, and merge the declaration and definition. Take the TRX_SYS page as a parameter. TRX_SYS_N_RSEGS: Correct the comment. trx_sysf_rseg_find_free(), trx_sys_update_mysql_binlog_offset(), trx_sys_update_wsrep_checkpoint(): Take the TRX_SYS page as a parameter. trx_rseg_header_create(): Add a parameter for the TRX_SYS page. trx_sysf_rseg_set_space(), trx_sysf_rseg_set_page_no(): Remove; merge to the only caller, trx_rseg_header_create().
-
Marko Mäkelä authored
srv_init_abort_low(): Call srv_shutdown_bg_undo_sources() so that if startup aborts while creating InnoDB system tables, the shutdown will proceed correctly.
-
Igor Babaev authored
server crash in JOIN::fix_all_splittings_in_plan Cost formulas must take into account the case when a splittable table has now rows.
-
- 30 Jan, 2018 20 commits
-
-
Monty authored
Only give warning if warnings > 2, as there is no plan to change the current behavior.
-
Monty authored
-
Monty authored
- When adding LEX_CSTRING to String, we are now checking that string is \0 terminated (as normally LEX_CSTRING should be usable for printf(). In the cases when one wants to avoid the checking one can use String->append(ptr, length) instead of just String->append(LEX_CSTRING*)
-
Monty authored
This preserves const str for constant strings Other things - A few variables where changed from LEX_STRING to LEX_CSTRING - Incident_log_event::Incident_log_event and record_incident where changed to take LEX_CSTRING* as an argument instead of LEX_STRING
-
Monty authored
-
Monty authored
This is to make it easier to use the create_mysqld_error_find_printf_error tool to find wrong print
-
Monty authored
Rename was done as the old 'name' hide the original item name.
-
Monty authored
-
Monty authored
-
Monty authored
This was done in, among other things: - thd->db and thd->db_length - TABLE_LIST tablename, db, alias and schema_name - Audit plugin database name - lex->db - All db and table names in Alter_table_ctx - st_select_lex db Other things: - Changed a lot of functions to take const LEX_CSTRING* as argument for db, table_name and alias. See init_one_table() as an example. - Changed some function arguments from LEX_CSTRING to const LEX_CSTRING - Changed some lists from LEX_STRING to LEX_CSTRING - threads_mysql.result changed because process list_db wasn't always correctly updated - New append_identifier() function that takes LEX_CSTRING* as arguments - Added new element tmp_buff to Alter_table_ctx to separate temp name handling from temporary space - Ensure we store the length after my_casedn_str() of table/db names - Removed not used version of rename_table_in_stat_tables() - Changed Natural_join_column::table_name and db_name() to never return NULL (used for print) - thd->get_db() now returns db as a printable string (thd->db.str or "")
-
Marko Mäkelä authored
MDEV-11415 Remove excessive undo logging during ALTER TABLE…ALGORITHM=COPY Move a test from innodb.rename_table_debug to innodb.alter_copy. ha_innobase::extra(HA_EXTRA_BEGIN_ALTER_COPY): Register id-versioned tables so that mysql.transaction_registry will be updated, even for empty tables that are subjected to ALTER TABLE…ALGORITHM=COPY.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
If a crash occurs during ALTER TABLE…ALGORITHM=COPY, InnoDB would spend a lot of time rolling back writes to the intermediate copy of the table. To reduce the amount of busy work done, a work-around was introduced in commit fd069e2b in MySQL 4.1.8 and 5.0.2, to commit the transaction after every 10,000 inserted rows. A proper fix would have been to disable the undo logging altogether and to simply drop the intermediate copy of the table on subsequent server startup. This is what happens in MariaDB 10.3 with MDEV-14717,MDEV-14585. In MariaDB 10.2, the intermediate copy of the table would be left behind with a name starting with the string #sql. This is a backport of a bug fix from MySQL 8.0.0 to MariaDB, contributed by jixianliang <271365745@qq.com>. Unlike recent MySQL, MariaDB supports ALTER IGNORE. For that operation InnoDB must for now keep the undo logging enabled, so that the latest row can be rolled back in case of an error. In Galera cluster, the LOAD DATA statement will retain the existing behaviour and commit the transaction after every 10,000 rows if the parameter wsrep_load_data_splitting=ON is set. The logic to do so (the wsrep_load_data_split() function and the call handler::extra(HA_EXTRA_FAKE_START_STMT)) are joint work by Ji Xianliang and Marko Mäkelä. The original fix: Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com> Date: Wed Dec 2 16:09:15 2015 +0530 Bug#17479594 AVOID INTERMEDIATE COMMIT WHILE DOING ALTER TABLE ALGORITHM=COPY Problem: During ALTER TABLE, we commit and restart the transaction for every 10,000 rows, so that the rollback after recovery would not take so long. Fix: Suppress the undo logging during copy alter operation. If fts_index is present then insert directly into fts auxiliary table rather than doing at commit time. ha_innobase::num_write_row: Remove the variable. ha_innobase::write_row(): Remove the hack for committing every 10000 rows. row_lock_table_for_mysql(): Remove the extra 2 parameters. lock_get_src_table(), lock_is_table_exclusive(): Remove. Reviewed-by: Marko Mäkelä <marko.makela@oracle.com> Reviewed-by: Shaohua Wang <shaohua.wang@oracle.com> Reviewed-by: Jon Olav Hauglid <jon.hauglid@oracle.com>
-
Marko Mäkelä authored
-
Jan Lindström authored
Fortify wsrep_hton so that wsrep calls are not done to NULL-pointers.
-
Alexey Botchkov authored
Implementing the 'IF EXISTS' option for statements ALTER TABLE ALTER COLUMN SET/DROP DEFAULT.
-
Monty authored
- Galera tests that was not updated with connection change messages - Test where out of memory error was changed (We are now using the standard out of memory error in most places) - Removed tokudb tests that uses include files that doesn't exist in MariaDB - Removed not supported mariadb startup option from option file
-
Monty authored
- Galera tests that was not updated with connection change messages - Disabled some TokuDB tests that always timed out. These should be enabled again when we have an option to specicy timeouts per tests.
-
Igor Babaev authored
Do not apply splitting for constant tables.
-
- 29 Jan, 2018 15 commits
-
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
Do not SET DEBUG_DBUG=-d,... in tests. To disable debug instrumentation, save and restore the original value of the variable DEBUG_DBUG. Assigning -d,... will enable the output of a lot of unrelated DBUG messages to the server error log.
-
Vladislav Vaintroub authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Vladislav Vaintroub authored
rx_i_s_cache_t is now bool, not ibool.
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
-
-
Alexander Barkov authored
The patch for MDEV-15107 fixed this problem. Adding tests only.
-
Alexander Barkov authored
Tests started to fail after a merge of MDEV-15107 (from bb-10.2-ext to 10.3), because MDEV-15107 additionally fixed this problem: MDEV-15112 Inconsistent evaluation of spvariable=0 in strict mode Modifying tests not to reply on the pre-MDEV-15112 behavior.
-
Marko Mäkelä authored
This reverts commit 3486135b. The commit comment ended in the words: "This is needed later." Apparently the "later" never arrived.
-
Marko Mäkelä authored
Remove unnecessary repeated lookups for undo pages. trx_undo_assign(), trx_undo_assign_low(), trx_undo_seg_create(), trx_undo_create(): Return the undo log block to the caller.
-
Marko Mäkelä authored
Inside InnoDB, each mini-transaction that generates any redo log records will acquire log_sys->mutex during mtr_t::commit() in order to copy the records into the global log_sys->buf for writing into the redo log file. For single-row transactions, this incurs quite a bit of overhead. We would use two mini-transactions for writing a record into a freshly updated undo log page. (Only if the undo record will not fit in that page, then we will have to commit and restart the mini-transaction.) trx_undo_assign(): Assign undo log for a persistent transaction, or return the already assigned one. trx_undo_assign_low(): Assign undo log for an operation on a persistent or temporary table. trx_undo_create(), trx_undo_reuse_cached(): Remove redundant parameters. Merge the logic from trx_undo_mark_as_dict_operation().
-
Marko Mäkelä authored
-