summaryrefslogtreecommitdiffstats
path: root/sql/datadict.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/datadict.h')
-rw-r--r--sql/datadict.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/sql/datadict.h b/sql/datadict.h
new file mode 100644
index 00000000..bec093aa
--- /dev/null
+++ b/sql/datadict.h
@@ -0,0 +1,52 @@
+#ifndef DATADICT_INCLUDED
+#define DATADICT_INCLUDED
+/* Copyright (c) 2010, Oracle and/or its affiliates.
+ Copyright (c) 2017 MariaDB corporation.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include "handler.h"
+
+/*
+ Data dictionary API.
+*/
+
+enum Table_type
+{
+ TABLE_TYPE_UNKNOWN,
+ TABLE_TYPE_NORMAL, /* Normal table */
+ TABLE_TYPE_SEQUENCE,
+ TABLE_TYPE_VIEW
+};
+
+/*
+ Take extra care when using dd_frm_type() - it only checks the .frm file,
+ and it won't work for any engine that supports discovery.
+
+ Prefer to use ha_table_exists() instead.
+ To check whether it's an frm of a view, use dd_frm_is_view().
+*/
+
+enum Table_type dd_frm_type(THD *thd, char *path, LEX_CSTRING *engine_name,
+ LEX_CSTRING *partition_engine_name,
+ LEX_CUSTRING *table_version);
+
+static inline bool dd_frm_is_view(THD *thd, char *path)
+{
+ return dd_frm_type(thd, path, NULL, NULL, NULL) == TABLE_TYPE_VIEW;
+}
+
+bool dd_recreate_table(THD *thd, const char *db, const char *table_name);
+
+#endif // DATADICT_INCLUDED