1
0
mirror of https://github.com/MariaDB/server.git synced 2025-09-03 20:43:11 +03:00
Files
mariadb/mysql-test/suite/atomic/drop_trigger.result
Monty 407e9b78cf MDEV-24395 Atomic DROP TRIGGER
The purpose of this task is to ensure that DROP TRIGGER is atomic.

Description of how atomic drop trigger works:

Logging of DROP TRIGGER
    Log the following information:
    db
    table name
    trigger name
    xid /* Used to check if query was already logged to binary log */
    initial length of the .TRG file
    query if there is space for it, if not log a zero length query.

Recovery operations:
- Delete if exists 'database/trigger_name.TRN~'
  - If this file existed, it means that we crashed before the trigger
    was deleted and there is nothing else to do.
- Get length of .TRG file
  - If file length is unchanged, trigger was not dropped. Nothing else to
    do.
- Log original query to binary, if it was stored in the ddl log. If it was
  not stored (long query string), log the following query to binary log:
  use `database` ; DROP TRIGGER IF EXISTS `trigger_name`
  /* generated by ddl log */;

Other things:
- Added trigger name and DDL_LOG_STATE to drop_trigger()
  Trigger name was added to make the interface more consistent and
  more general.
2021-05-19 22:54:13 +02:00

50 lines
2.1 KiB
Plaintext

"engine: aria crash point: ddl_log_drop_before_drop_trigger position: 1"
t1.TRG
t1_trg.TRN
t2_trg.TRN
"engine: aria crash point: ddl_log_drop_before_drop_trigger position: 2"
t1.TRG
t2_trg.TRN
master-bin.000001 # Query # # use `test`; DROP TRIGGER t1_trg
"engine: aria crash point: ddl_log_drop_before_drop_trn position: 1"
t1.TRG
t2_trg.TRN
master-bin.000002 # Query # # use `test`; DROP TRIGGER t1_trg
"engine: aria crash point: ddl_log_drop_before_drop_trn position: 2"
master-bin.000001 # Query # # use `test`; DROP TRIGGER t1_trg
master-bin.000002 # Query # # use `test`; DROP TRIGGER t2_trg /* some comment */
"engine: aria crash point: ddl_log_drop_after_drop_trigger position: 1"
t1.TRG
t2_trg.TRN
master-bin.000002 # Query # # use `test`; DROP TRIGGER t1_trg
"engine: aria crash point: ddl_log_drop_after_drop_trigger position: 2"
master-bin.000001 # Query # # use `test`; DROP TRIGGER t1_trg
master-bin.000002 # Query # # use `test`; DROP TRIGGER t2_trg /* some comment */
"engine: aria crash point: definition_file_after_create position: 1"
t1.TRG
t1_trg.TRN
t2_trg.TRN
"engine: aria crash point: definition_file_after_create position: 2"
"No crash!"
master-bin.000001 # Query # # use `test`; DROP TRIGGER t1_trg
master-bin.000001 # Query # # use `test`; DROP TRIGGER t2_trg /* some comment */
"engine: aria crash point: ddl_log_drop_before_binlog position: 1"
t1.TRG
t2_trg.TRN
master-bin.000002 # Query # # use `test`; DROP TRIGGER t1_trg
"engine: aria crash point: ddl_log_drop_before_binlog position: 2"
master-bin.000001 # Query # # use `test`; DROP TRIGGER t1_trg
master-bin.000002 # Query # # use `test`; DROP TRIGGER t2_trg /* some comment */
"engine: aria crash point: ddl_log_drop_after_binlog position: 1"
t1.TRG
t2_trg.TRN
master-bin.000001 # Query # # use `test`; DROP TRIGGER t1_trg
"engine: aria crash point: ddl_log_drop_after_binlog position: 2"
master-bin.000001 # Query # # use `test`; DROP TRIGGER t1_trg
master-bin.000001 # Query # # use `test`; DROP TRIGGER t2_trg /* some comment */
# Test deleting not existing trigger
#
Warnings:
Note 1360 Trigger does not exist