mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
6aa9a552c2
There are a few different cases to consider Logging of CREATE TABLE and CREATE TABLE ... LIKE - If REPLACE is used and there was an existing table, DDL log the drop of the table. - If discovery of table is to be done - DDL LOG create table else - DDL log create table (with engine type) - create the table - If table was created - Log entry to binary log with xid - Mark DDL log completed Crash recovery: - If query was in binary log do nothing and exit - If discoverted table - Delete the .frm file -else - Drop created table and frm file - If table was dropped, write a DROP TABLE statement in binary log CREATE TABLE ... SELECT required a little more work as when one is using statement logging the query is written to the binary log before commit is done. This was fixed by adding a DROP TABLE to the binary log during crash recovery if the ddl log entry was not closed. In this case the binary log will contain: CREATE TABLE xxx ... SELECT .... DROP TABLE xxx; Other things: - Added debug_crash_here() functionality to Aria to be able to test crash in create table between the creation of the .MAI and the .MAD files. |
||
---|---|---|
.. | ||
create_table.result | ||
create_table.test | ||
drop_db.result | ||
drop_db.test | ||
drop_db_long_names.opt | ||
drop_db_long_names.result | ||
drop_db_long_names.test | ||
drop_sequence.result | ||
drop_sequence.test | ||
drop_table.result | ||
drop_table.test | ||
drop_trigger.result | ||
drop_trigger.test | ||
drop_view.result | ||
drop_view.test | ||
rename_case.result | ||
rename_case.test | ||
rename_combinations.result | ||
rename_combinations.test | ||
rename_table.result | ||
rename_table.test | ||
rename_table_binlog.result | ||
rename_table_binlog.test | ||
rename_trigger.result | ||
rename_trigger.test | ||
rename_view.result | ||
rename_view.test | ||
rename_view2.result | ||
rename_view2.test |