Skip to content
/ server Public

Commit ea6075a

Browse files
committed
MDEV-30645: CREATE TRIGGER FOR { STARTUP | SHUTDOWN }
Follow-up to fix building with EMBEDDED server. Since support of events isn't compiled in for embedded server but some stuff from implementation of events is used for support of triggers, common source code used both for events and triggers was extracted into the separate files event_common.cc/event_common.h
1 parent 6a98f22 commit ea6075a

File tree

12 files changed

+467
-412
lines changed

12 files changed

+467
-412
lines changed

libmysqld/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
166166
../sql/opt_hints.cc ../sql/opt_hints.h
167167
../sql/opt_trace_ddl_info.cc ../sql/opt_trace_ddl_info.h
168168
../sql/sql_path.cc
169+
../sql/sql_sys_or_ddl_trigger.cc
170+
../sql/event_common.cc
169171
${GEN_SOURCES}
170172
${MYSYS_LIBWRAP_SOURCE}
171173
)

mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,13 @@ def mysql event comment 16 '' NO char 64 192 NULL NULL NULL utf8mb3 utf8mb3_bin
5252
def mysql event created 8 current_timestamp() NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp on update current_timestamp() NEVER NULL NO NO
5353
def mysql event db 1 '' NO char 64 192 NULL NULL NULL utf8mb3 utf8mb3_bin char(64) PRI NEVER NULL NO NO
5454
def mysql event db_collation 21 NULL YES char 64 192 NULL NULL NULL utf8mb3 utf8mb3_bin char(64) NEVER NULL NO NO
55+
def mysql event ddl_type 25 NULL YES set 54 162 NULL NULL NULL utf8mb3 utf8mb3_general_ci set('CREATE','ALTER','DROP','TRUNCATE','ANALYZE','RENAME','GRANT','REVOKE') NEVER NULL NO NO
5556
def mysql event definer 4 '' NO varchar 384 1152 NULL NULL NULL utf8mb3 utf8mb3_bin varchar(384) NEVER NULL NO NO
5657
def mysql event ends 12 NULL YES datetime NULL NULL NULL NULL 0 NULL NULL datetime NEVER NULL NO NO
5758
def mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL 0 NULL NULL datetime NEVER NULL NO NO
5859
def mysql event interval_field 7 NULL YES enum 18 54 NULL NULL NULL utf8mb3 utf8mb3_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') NEVER NULL NO NO
5960
def mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL NULL int(11) NEVER NULL NO NO
61+
def mysql event kind 23 'SCHEDULE' NO set 42 126 NULL NULL NULL utf8mb3 utf8mb3_general_ci set('SCHEDULE','STARTUP','SHUTDOWN','LOGON','LOGOFF','DDL') NEVER NULL NO NO
6062
def mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL 0 NULL NULL datetime NEVER NULL NO NO
6163
def mysql event modified 9 '0000-00-00 00:00:00' NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp NEVER NULL NO NO
6264
def mysql event name 2 '' NO char 64 192 NULL NULL NULL utf8mb3 utf8mb3_general_ci char(64) PRI NEVER NULL NO NO
@@ -66,6 +68,7 @@ def mysql event sql_mode 15 '' NO set 561 1683 NULL NULL NULL utf8mb3 utf8mb3_ge
6668
def mysql event starts 11 NULL YES datetime NULL NULL NULL NULL 0 NULL NULL datetime NEVER NULL NO NO
6769
def mysql event status 13 'ENABLED' NO enum 18 54 NULL NULL NULL utf8mb3 utf8mb3_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NEVER NULL NO NO
6870
def mysql event time_zone 18 'SYSTEM' NO char 64 64 NULL NULL NULL latin1 latin1_swedish_ci char(64) NEVER NULL NO NO
71+
def mysql event when 24 NULL YES enum 6 18 NULL NULL NULL utf8mb3 utf8mb3_general_ci enum('BEFORE','AFTER') NEVER NULL NO NO
6972
def mysql func dl 3 '' NO char 128 384 NULL NULL NULL utf8mb3 utf8mb3_bin char(128) NEVER NULL NO NO
7073
def mysql func name 1 '' NO char 64 192 NULL NULL NULL utf8mb3 utf8mb3_bin char(64) PRI NEVER NULL NO NO
7174
def mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL NULL tinyint(1) NEVER NULL NO NO
@@ -393,6 +396,9 @@ NULL mysql event originator int NULL NULL NULL NULL int(10) unsigned
393396
3.0000 mysql event collation_connection char 64 192 utf8mb3 utf8mb3_bin char(64)
394397
3.0000 mysql event db_collation char 64 192 utf8mb3 utf8mb3_bin char(64)
395398
1.0000 mysql event body_utf8 longblob 4294967295 4294967295 NULL NULL longblob
399+
3.0000 mysql event kind set 42 126 utf8mb3 utf8mb3_general_ci set('SCHEDULE','STARTUP','SHUTDOWN','LOGON','LOGOFF','DDL')
400+
3.0000 mysql event when enum 6 18 utf8mb3 utf8mb3_general_ci enum('BEFORE','AFTER')
401+
3.0000 mysql event ddl_type set 54 162 utf8mb3 utf8mb3_general_ci set('CREATE','ALTER','DROP','TRUNCATE','ANALYZE','RENAME','GRANT','REVOKE')
396402
3.0000 mysql func name char 64 192 utf8mb3 utf8mb3_bin char(64)
397403
NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1)
398404
3.0000 mysql func dl char 128 384 utf8mb3 utf8mb3_bin char(128)

mysql-test/suite/perfschema/r/transaction_nested_events.result

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,7 +1159,7 @@ FROM performance_schema.events_transactions_current
11591159
WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
11601160
ORDER BY thread_id, event_id;
11611161
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
1162-
thread_id 22 22 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
1162+
thread_id 23 23 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
11631163
#
11641164
# EVENTS_TRANSACTIONS_HISTORY_LONG
11651165
#
@@ -1180,6 +1180,7 @@ THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATIO
11801180
thread_id 2 19 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
11811181
thread_id 21 21 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
11821182
thread_id 22 22 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
1183+
thread_id 23 23 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
11831184
#
11841185
# EVENTS_STATEMENTS_HISTORY_LONG
11851186
#
@@ -1214,7 +1215,7 @@ thread_id 16 16 statement/sp/jump_if_not trigger_befo
12141215
thread_id 17 17 statement/sp/stmt trigger_befo 10 STATEMENT 1 SIGNAL sqlstate '45001' SET message_text = "FORCE ERROR"
12151216
thread_id 18 18 statement/sql/select NULL 2 TRANSACTION 0 SELECT * FROM t1 ORDER BY s1
12161217
thread_id 19 19 statement/sql/commit NULL 2 TRANSACTION 0 COMMIT
1217-
thread_id 20 22 statement/sql/drop_trigger NULL NULL NULL 0 DROP TRIGGER trigger_before_update
1218+
thread_id 20 23 statement/sql/drop_trigger NULL NULL NULL 0 DROP TRIGGER trigger_before_update
12181219
#
12191220
### Combined statement and transaction event history ordered by event id
12201221
#
@@ -1260,9 +1261,10 @@ thread_id 16 16 statement/sp/jump_if_not 10
12601261
thread_id 17 17 statement/sp/stmt 10 STATEMENT SIGNAL sqlstate '45001' SET message_text = "FORCE ERROR"
12611262
thread_id 18 18 statement/sql/select 2 TRANSACTION SELECT * FROM t1 ORDER BY s1
12621263
thread_id 19 19 statement/sql/commit 2 TRANSACTION COMMIT
1263-
thread_id 20 22 statement/sql/drop_trigge NULL NULL DROP TRIGGER trigger_before_update
1264+
thread_id 20 23 statement/sql/drop_trigge NULL NULL DROP TRIGGER trigger_before_update
12641265
thread_id 21 21 transaction 20 STATEMENT <transaction started>
12651266
thread_id 22 22 transaction 20 STATEMENT <transaction started>
1267+
thread_id 23 23 transaction 20 STATEMENT <transaction started>
12661268
#
12671269
### Clear statement and transaction history
12681270
# CALL test.clear_history();

sql/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ SET (SQL_SOURCE
147147
sql_time.cc tztime.cc unireg.cc item_xmlfunc.cc
148148
uniques.cc
149149
rpl_tblmap.cc sql_binlog.cc event_scheduler.cc
150-
event_data_objects.cc
150+
event_data_objects.cc event_common.cc
151151
event_queue.cc event_db_repository.cc
152152
events.cc ../sql-common/my_user.c
153153
partition_info.cc rpl_utility.cc rpl_utility_server.cc

0 commit comments

Comments
 (0)