From 2f6d464fec569a4d1939698e9851206ba9ccafbb Mon Sep 17 00:00:00 2001
From: Sergei Golubchik <serg@mariadb.org>
Date: Tue, 11 Jul 2023 14:25:12 +0200
Subject: [PATCH] cleanup: reorder enum_fk_option

---
 sql/table.cc |  8 +-------
 sql/table.h  | 10 +++++++---
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/sql/table.cc b/sql/table.cc
index 9dadd208244..7e5db62d4dd 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -9771,20 +9771,14 @@ LEX_CSTRING *fk_option_name(enum_fk_option opt)
   {
     { STRING_WITH_LEN("???") },
     { STRING_WITH_LEN("RESTRICT") },
+    { STRING_WITH_LEN("NO ACTION") },
     { STRING_WITH_LEN("CASCADE") },
     { STRING_WITH_LEN("SET NULL") },
-    { STRING_WITH_LEN("NO ACTION") },
     { STRING_WITH_LEN("SET DEFAULT") }
   };
   return names + opt;
 }
 
-bool fk_modifies_child(enum_fk_option opt)
-{
-  static bool can_write[]= { false, false, true, true, false, true };
-  return can_write[opt];
-}
-
 enum TR_table::enabled TR_table::use_transaction_registry= TR_table::MAYBE;
 
 TR_table::TR_table(THD* _thd, bool rw) :
diff --git a/sql/table.h b/sql/table.h
index f28e1268fad..dd34e9e9a79 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -1860,8 +1860,8 @@ enum enum_schema_table_state
   PROCESSED_BY_JOIN_EXEC
 };
 
-enum enum_fk_option { FK_OPTION_UNDEF, FK_OPTION_RESTRICT, FK_OPTION_CASCADE,
-               FK_OPTION_SET_NULL, FK_OPTION_NO_ACTION, FK_OPTION_SET_DEFAULT};
+enum enum_fk_option { FK_OPTION_UNDEF, FK_OPTION_RESTRICT, FK_OPTION_NO_ACTION,
+  FK_OPTION_CASCADE, FK_OPTION_SET_NULL, FK_OPTION_SET_DEFAULT };
 
 typedef struct st_foreign_key_info
 {
@@ -1878,7 +1878,11 @@ typedef struct st_foreign_key_info
 } FOREIGN_KEY_INFO;
 
 LEX_CSTRING *fk_option_name(enum_fk_option opt);
-bool fk_modifies_child(enum_fk_option opt);
+static inline bool fk_modifies_child(enum_fk_option opt)
+{
+  return opt >= FK_OPTION_CASCADE;
+}
+
 
 class IS_table_read_plan;
 
-- 
2.30.9