- 21 Dec, 2017 12 commits
-
-
Aleksey Midenkov authored
Error ER_VERS_TRT_IS_DISABLED is not thrown.
-
Eugene Kosov authored
MDEV-14689 Server crashes in find_field_in_tables on 2nd execution of PS with versioned table and view SQL: wrong usage of Item::transform()
-
Eugene Kosov authored
MDEV-14632 Assertion `!((new_col->prtype ^ col->prtype) & ~256U)' failed in row_log_table_apply_convert_mrec ha_innobase::check_if_supported_inplace_alter(): enabled non-rebuilding operations for trx_id-based system-versioning tables Also added better error message for not implemented operations.
-
Aleksey Midenkov authored
debug_key_management encrypt_and_grep Related to 62b44b0e
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
1. Reverts "Tests: disabled TRT for some IB tests [#302]" 6d78496a 2. Removes setting TRANSACTION_REGISTRY=0 in mysqldump --system-versioning-transaction-registry now is OFF by default. This commit should be reverted back if the default will change. Tests affected: mysqldump mysqldump-max openssl_1
-
Aleksey Midenkov authored
Merge branch '10.3' into trunk
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
-
Eugene Kosov authored
SQL: disable system-versioning stuff on TEMPORARY tables
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 20 Dec, 2017 10 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Now that MDEV-14717 made RENAME TABLE crash-safe within InnoDB, it should be safe to drop the #sql- tables within InnoDB during crash recovery. These tables can be one of two things: (1) #sql-ib related to deferred DROP TABLE (follow-up to MDEV-13407) or to table-rebuilding ALTER TABLE...ALGORITHM=INPLACE (since MDEV-14378, only related to the intermediate copy of a table), (2) #sql- related to the intermediate copy of a table during ALTER TABLE...ALGORITHM=COPY We will not drop tables whose name starts with #sql2, because the server can be killed during an ALGORITHM=COPY operation at a point where the original table was renamed to #sql2 but the finished intermediate copy was not yet renamed from #sql- to the original table name.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
InnoDB in MariaDB 10.2 appears to only write MLOG_FILE_RENAME2 redo log records during table-rebuilding ALGORITHM=INPLACE operations. We must write the records for any .ibd file renames, so that the operations are crash-safe. If InnoDB is killed during a RENAME TABLE operation, it can happen that the transaction for updating the data dictionary will be rolled back. But, nothing will roll back the renaming of the .ibd file (the MLOG_FILE_RENAME2 only guarantees roll-forward), or for that matter, the renaming of the dict_table_t::name in the dict_sys cache. We introduce the undo log record TRX_UNDO_RENAME_TABLE to fix this. fil_space_for_table_exists_in_mem(): Remove the parameters adjust_space, table_id and some code that was trying to work around these deficiencies. fil_name_write_rename(): Write a MLOG_FILE_RENAME2 record. dict_table_rename_in_cache(): Invoke fil_name_write_rename(). trx_undo_rec_copy(): Set the first 2 bytes to the length of the copied undo log record. trx_undo_page_report_rename(), trx_undo_report_rename(): Write a TRX_UNDO_RENAME_TABLE record with the old table name. row_rename_table_for_mysql(): Invoke trx_undo_report_rename() before modifying any data dictionary tables. row_undo_ins_parse_undo_rec(): Roll back TRX_UNDO_RENAME_TABLE by invoking dict_table_rename_in_cache(), which will take care of both renaming the table and the file.
-
Eugene Kosov authored
-
Aleksey Midenkov authored
-
Eugene Kosov authored
MDEV-14632 Assertion `!((new_col->prtype ^ col->prtype) & ~256U)' failed in row_log_table_apply_convert_mrec SQL, IB: proper fix is to disable unimplemented Online DDL for system-versioned tables inside InnoDB
-
Eugene Kosov authored
-
Aleksey Midenkov authored
Also fixes broken truncate after 617e108f
-
- 19 Dec, 2017 18 commits
-
-
Monty authored
-
Aleksey Midenkov authored
ER_VERS_NOT_VERSIONED vs ER_VERSIONING_REQUIRED
-
Aleksey Midenkov authored
ER_VERS_GENERATED_ALWAYS_NOT_EMPTY vs ER_VERS_ALTER_SYSTEM_FIELD Related to #310 (91ba4f04).
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Follow-up to MDEV-13407 innodb.drop_table_background failed in buildbot with "Tablespace for table exists" The InnoDB background DROP TABLE queue is something that we should really remove, but are unable to until we remove dict_operation_lock so that DDL and DML operations can be combined in a single transaction. Because the queue is not persistent, it is not crash-safe. We should in some way ensure that the deferred-dropped tables will be dropped after server restart. The existence of two separate transactions complicates the error handling of CREATE TABLE...SELECT. We should really not break locks in DROP TABLE. Our solution to these problems is to rename the table to a temporary name, and to drop such-named tables on InnoDB startup. Also, the queue will use table IDs instead of names from now on. check-testcase.test: Ignore #sql-ib*.ibd files, because tables may enter the background DROP TABLE queue shortly before the test finishes. innodb.drop_table_background: Test CREATE...SELECT and the creation of tables whose file name starts with #sql-ib. innodb.alter_crash: Adjust the recovery, now that the #sql-ib tables will be dropped on InnoDB startup. row_mysql_drop_garbage_tables(): New function, to drop all #sql-ib tables on InnoDB startup. row_drop_table_for_mysql_in_background(): Remove an unnecessary and misplaced call to log_buffer_flush_to_disk(). (The call should have been after the transaction commit. We do not care about flushing the redo log here, because the table would be dropped again at server startup.) Remove the entry from the list after the table no longer exists. If server shutdown has been initiated, empty the list without actually dropping any tables. They will be dropped again on startup. row_drop_table_for_mysql(): Do not call lock_remove_all_on_table(). Instead, if locks exist, defer the DROP TABLE until they do not exist. If the table name does not start with #sql-ib, rename it to that prefix before adding it to the background DROP TABLE queue.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Follow-up fix to MDEV-14008: Let Field_double::val_uint() silently return 0 on error
-
Jan Lindström authored
WSREP_TO_ISOLATION_BEGIN() call must be after view name is back on tables list.
-
Marko Mäkelä authored
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Aleksey Midenkov authored
-
Marko Mäkelä authored
-
Eugene Kosov authored
SQL: disable TRUNCATE table_name TO statement for VIEWs
-
Galina Shalygina authored
During the user-defined variable defined by the recursive CTE handling procedure check_dependencies_in_with_clauses that checks dependencies between the tables that are defined in the CTE and find recursive definitions wasn't called.
-
Daniel Black authored
Signed-off-by: Daniel Black <daniel@linux.vnet.ibm.com>
-
Eugene Kosov authored
-
Daniel Black authored
-