diff --git a/sql/ha_partition.h b/sql/ha_partition.h index f47cc3f8957..1c50dde348a 100644 --- a/sql/ha_partition.h +++ b/sql/ha_partition.h @@ -1464,7 +1464,7 @@ public: virtual int get_foreign_key_list(THD *thd, List *f_key_list) - virtual uint referenced_by_foreign_key() + bool referenced_by_foreign_key() const noexcept override */ bool can_switch_engines() override; /* diff --git a/sql/handler.h b/sql/handler.h index 91879010ff9..d7dddd95da5 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -4078,7 +4078,7 @@ public: virtual int get_parent_foreign_key_list(THD *thd, List *f_key_list) { return 0; } - virtual uint referenced_by_foreign_key() { return 0;} + virtual bool referenced_by_foreign_key() const noexcept { return false;} virtual void init_table_handle_for_HANDLER() { return; } /* prepare InnoDB for HANDLER */ virtual void free_foreign_key_create_info(char* str) {} diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 689cf76e1ce..2c24bbf4485 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -10052,8 +10052,8 @@ wsrep_append_key( static bool referenced_by_foreign_key2( /*=======================*/ - dict_table_t* table, - dict_index_t* index) + const dict_table_t* table, + const dict_index_t* index) noexcept { ut_ad(table != NULL); ut_ad(index != NULL); @@ -15451,16 +15451,12 @@ ha_innobase::can_switch_engines(void) DBUG_RETURN(can_switch); } -/*******************************************************************//** -Checks if a table is referenced by a foreign key. The MySQL manual states that -a REPLACE is either equivalent to an INSERT, or DELETE(s) + INSERT. Only a +/** Checks if a table is referenced by a foreign key. The MySQL manual states +that a REPLACE is either equivalent to an INSERT, or DELETE(s) + INSERT. Only a delete is then allowed internally to resolve a duplicate key conflict in REPLACE, not an update. -@return > 0 if referenced by a FOREIGN KEY */ - -uint -ha_innobase::referenced_by_foreign_key(void) -/*========================================*/ +@return whether the table is referenced by a FOREIGN KEY */ +bool ha_innobase::referenced_by_foreign_key() const noexcept { if (dict_table_is_referenced_by_foreign_key(m_prebuilt->table)) { diff --git a/storage/innobase/handler/ha_innodb.h b/storage/innobase/handler/ha_innodb.h index ba4f5b62f90..bd99b230a67 100644 --- a/storage/innobase/handler/ha_innodb.h +++ b/storage/innobase/handler/ha_innodb.h @@ -222,7 +222,7 @@ public: bool can_switch_engines() override; - uint referenced_by_foreign_key() override; + bool referenced_by_foreign_key() const noexcept override; void free_foreign_key_create_info(char* str) override; diff --git a/storage/mroonga/ha_mroonga.cpp b/storage/mroonga/ha_mroonga.cpp index 75f2387beab..442146fae95 100644 --- a/storage/mroonga/ha_mroonga.cpp +++ b/storage/mroonga/ha_mroonga.cpp @@ -16790,10 +16790,10 @@ int ha_mroonga::get_parent_foreign_key_list(THD *thd, DBUG_RETURN(res); } -uint ha_mroonga::wrapper_referenced_by_foreign_key() +inline bool ha_mroonga::wrapper_referenced_by_foreign_key() const noexcept { MRN_DBUG_ENTER_METHOD(); - uint res; + bool res; MRN_SET_WRAP_SHARE_KEY(share, table->s); MRN_SET_WRAP_TABLE_KEY(this, table); res = wrap_handler->referenced_by_foreign_key(); @@ -16802,17 +16802,17 @@ uint ha_mroonga::wrapper_referenced_by_foreign_key() DBUG_RETURN(res); } -uint ha_mroonga::storage_referenced_by_foreign_key() +inline bool ha_mroonga::storage_referenced_by_foreign_key() const noexcept { MRN_DBUG_ENTER_METHOD(); - uint res = handler::referenced_by_foreign_key(); + bool res = handler::referenced_by_foreign_key(); DBUG_RETURN(res); } -uint ha_mroonga::referenced_by_foreign_key() +bool ha_mroonga::referenced_by_foreign_key() const noexcept { MRN_DBUG_ENTER_METHOD(); - uint res; + bool res; if (share->wrapper_mode) { res = wrapper_referenced_by_foreign_key(); diff --git a/storage/mroonga/ha_mroonga.hpp b/storage/mroonga/ha_mroonga.hpp index 2bc5c2b30f3..7a5628a2b1f 100644 --- a/storage/mroonga/ha_mroonga.hpp +++ b/storage/mroonga/ha_mroonga.hpp @@ -618,7 +618,7 @@ protected: bool can_switch_engines() mrn_override; int get_foreign_key_list(THD *thd, List *f_key_list) mrn_override; int get_parent_foreign_key_list(THD *thd, List *f_key_list) mrn_override; - uint referenced_by_foreign_key() mrn_override; + bool referenced_by_foreign_key() const noexcept mrn_override; void init_table_handle_for_HANDLER() mrn_override; void free_foreign_key_create_info(char* str) mrn_override; #ifdef MRN_HAVE_HA_REBIND_PSI @@ -1268,8 +1268,8 @@ private: int storage_get_foreign_key_list(THD *thd, List *f_key_list); int wrapper_get_parent_foreign_key_list(THD *thd, List *f_key_list); int storage_get_parent_foreign_key_list(THD *thd, List *f_key_list); - uint wrapper_referenced_by_foreign_key(); - uint storage_referenced_by_foreign_key(); + bool wrapper_referenced_by_foreign_key() const noexcept; + bool storage_referenced_by_foreign_key() const noexcept; void wrapper_init_table_handle_for_HANDLER(); void storage_init_table_handle_for_HANDLER(); void wrapper_free_foreign_key_create_info(char* str);