summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2019-01-05 11:49:35 +0100
committerSergei Golubchik <serg@mariadb.org>2019-01-25 19:59:04 +0100
commite99e6f29e98df8762305c0f7c1caebc728cfc6dc (patch)
tree288f259fd1169147f14f6aa8718dad9ab68ad2c9
parent0e1f7f5c4a7eb90f345f2c2da6b4d7ce0b4056c4 (diff)
downloadmariadb-git-e99e6f29e98df8762305c0f7c1caebc728cfc6dc.tar.gz
cleanup: trg2bit() helper
-rw-r--r--sql/log_event.cc9
-rw-r--r--sql/sql_lex.cc23
-rw-r--r--sql/sql_trigger.cc6
-rw-r--r--sql/sql_trigger.h3
4 files changed, 16 insertions, 25 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index f16abb13003..ffcb1f9dfa2 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -13445,9 +13445,8 @@ err:
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
uint8 Write_rows_log_event::get_trg_event_map()
{
- return (static_cast<uint8> (1 << static_cast<int>(TRG_EVENT_INSERT)) |
- static_cast<uint8> (1 << static_cast<int>(TRG_EVENT_UPDATE)) |
- static_cast<uint8> (1 << static_cast<int>(TRG_EVENT_DELETE)));
+ return trg2bit(TRG_EVENT_INSERT) | trg2bit(TRG_EVENT_UPDATE) |
+ trg2bit(TRG_EVENT_DELETE);
}
#endif
@@ -14154,7 +14153,7 @@ err:
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
uint8 Delete_rows_log_event::get_trg_event_map()
{
- return static_cast<uint8> (1 << static_cast<int>(TRG_EVENT_DELETE));
+ return trg2bit(TRG_EVENT_DELETE);
}
#endif
@@ -14429,7 +14428,7 @@ err:
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
uint8 Update_rows_log_event::get_trg_event_map()
{
- return static_cast<uint8> (1 << static_cast<int>(TRG_EVENT_UPDATE));
+ return trg2bit(TRG_EVENT_UPDATE);
}
#endif
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 40d5e53c7a0..ca4876413b6 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -3473,12 +3473,8 @@ void LEX::set_trg_event_type_for_tables()
On a LOCK TABLE, all triggers must be pre-loaded for this TABLE_LIST
when opening an associated TABLE.
*/
- new_trg_event_map= static_cast<uint8>
- (1 << static_cast<int>(TRG_EVENT_INSERT)) |
- static_cast<uint8>
- (1 << static_cast<int>(TRG_EVENT_UPDATE)) |
- static_cast<uint8>
- (1 << static_cast<int>(TRG_EVENT_DELETE));
+ new_trg_event_map= trg2bit(TRG_EVENT_INSERT) | trg2bit(TRG_EVENT_UPDATE) |
+ trg2bit(TRG_EVENT_DELETE);
break;
/*
Basic INSERT. If there is an additional ON DUPLIATE KEY UPDATE
@@ -3509,20 +3505,17 @@ void LEX::set_trg_event_type_for_tables()
*/
case SQLCOM_CREATE_TABLE:
case SQLCOM_CREATE_SEQUENCE:
- new_trg_event_map|= static_cast<uint8>
- (1 << static_cast<int>(TRG_EVENT_INSERT));
+ new_trg_event_map|= trg2bit(TRG_EVENT_INSERT);
break;
/* Basic update and multi-update */
case SQLCOM_UPDATE: /* fall through */
case SQLCOM_UPDATE_MULTI:
- new_trg_event_map|= static_cast<uint8>
- (1 << static_cast<int>(TRG_EVENT_UPDATE));
+ new_trg_event_map|= trg2bit(TRG_EVENT_UPDATE);
break;
/* Basic delete and multi-delete */
case SQLCOM_DELETE: /* fall through */
case SQLCOM_DELETE_MULTI:
- new_trg_event_map|= static_cast<uint8>
- (1 << static_cast<int>(TRG_EVENT_DELETE));
+ new_trg_event_map|= trg2bit(TRG_EVENT_DELETE);
break;
default:
break;
@@ -3530,12 +3523,10 @@ void LEX::set_trg_event_type_for_tables()
switch (duplicates) {
case DUP_UPDATE:
- new_trg_event_map|= static_cast<uint8>
- (1 << static_cast<int>(TRG_EVENT_UPDATE));
+ new_trg_event_map|= trg2bit(TRG_EVENT_UPDATE);
break;
case DUP_REPLACE:
- new_trg_event_map|= static_cast<uint8>
- (1 << static_cast<int>(TRG_EVENT_DELETE));
+ new_trg_event_map|= trg2bit(TRG_EVENT_DELETE);
break;
case DUP_ERROR:
default:
diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc
index dde93dc6ed6..d03807c63d5 100644
--- a/sql/sql_trigger.cc
+++ b/sql/sql_trigger.cc
@@ -2192,8 +2192,7 @@ bool Table_triggers_list::process_triggers(THD *thd,
This trigger must have been processed by the pre-locking
algorithm.
*/
- DBUG_ASSERT(trigger_table->pos_in_table_list->trg_event_map &
- static_cast<uint>(1 << static_cast<int>(event)));
+ DBUG_ASSERT(trigger_table->pos_in_table_list->trg_event_map & trg2bit(event));
thd->reset_sub_statement_state(&statement_state, SUB_STMT_TRIGGER);
@@ -2245,8 +2244,7 @@ add_tables_and_routines_for_triggers(THD *thd,
for (int i= 0; i < (int)TRG_EVENT_MAX; i++)
{
- if (table_list->trg_event_map &
- static_cast<uint8>(1 << static_cast<int>(i)))
+ if (table_list->trg_event_map & trg2bit(static_cast<trg_event_type>(i)))
{
for (int j= 0; j < (int)TRG_ACTION_MAX; j++)
{
diff --git a/sql/sql_trigger.h b/sql/sql_trigger.h
index 0fddb94fde1..9cd6c61891a 100644
--- a/sql/sql_trigger.h
+++ b/sql/sql_trigger.h
@@ -38,6 +38,9 @@ enum trg_event_type
TRG_EVENT_MAX
};
+static inline uint8 trg2bit(enum trg_event_type trg)
+{ return static_cast<uint8>(1 << static_cast<int>(trg)); }
+
#include "table.h" /* GRANT_INFO */
/*