summaryrefslogtreecommitdiff
path: root/sql/table.h
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2018-07-17 14:35:04 +0200
committerSergei Golubchik <serg@mariadb.org>2018-09-04 08:37:44 +0200
commit22bcfa011acd81c44c2ad969a0edc2401a32a311 (patch)
tree165f6ab775eb9af5418970292325c87a83a817e9 /sql/table.h
parentb9bc3c24630980b260b91fc856689dbad336064e (diff)
downloadmariadb-git-22bcfa011acd81c44c2ad969a0edc2401a32a311.tar.gz
cleanup: FOREIGN_KEY_INFO
instead of returning strings for CASCADE/RESTRICT from every storage engine, use enum values Backport of a3614d33e8a
Diffstat (limited to 'sql/table.h')
-rw-r--r--sql/table.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/table.h b/sql/table.h
index 05596b605a5..1b7a447eaf1 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -1429,6 +1429,9 @@ 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};
+
typedef struct st_foreign_key_info
{
LEX_STRING *foreign_id;
@@ -1436,13 +1439,15 @@ typedef struct st_foreign_key_info
LEX_STRING *foreign_table;
LEX_STRING *referenced_db;
LEX_STRING *referenced_table;
- LEX_STRING *update_method;
- LEX_STRING *delete_method;
+ enum_fk_option update_method;
+ enum_fk_option delete_method;
LEX_STRING *referenced_key_name;
List<LEX_STRING> foreign_fields;
List<LEX_STRING> referenced_fields;
} FOREIGN_KEY_INFO;
+LEX_CSTRING *fk_option_name(enum_fk_option opt);
+
#define MY_I_S_MAYBE_NULL 1
#define MY_I_S_UNSIGNED 2