summaryrefslogtreecommitdiff
path: root/sql/sql_cmd.h
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2019-06-14 22:10:50 +0200
committerOleksandr Byelkin <sanja@mariadb.com>2019-06-14 22:10:50 +0200
commitf66d1850ac30922eaa49c0131d89efc8357155ff (patch)
treecb69c43694146bb7993078e76e203ded4ca48a5e /sql/sql_cmd.h
parent772c5f3c78fcdaea2169ba435bac8d851c7945c7 (diff)
parent1135244a647e423f6a7b2122ad9c305253039399 (diff)
downloadmariadb-git-f66d1850ac30922eaa49c0131d89efc8357155ff.tar.gz
Merge branch '10.3' into 10.4
Diffstat (limited to 'sql/sql_cmd.h')
-rw-r--r--sql/sql_cmd.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/sql/sql_cmd.h b/sql/sql_cmd.h
index 6c12a6689b3..7f1fd06aa46 100644
--- a/sql/sql_cmd.h
+++ b/sql/sql_cmd.h
@@ -118,6 +118,32 @@ enum enum_sql_command {
SQLCOM_END
};
+
+class Storage_engine_name
+{
+protected:
+ LEX_CSTRING m_storage_engine_name;
+public:
+ Storage_engine_name()
+ {
+ m_storage_engine_name.str= NULL;
+ m_storage_engine_name.length= 0;
+ }
+ Storage_engine_name(const LEX_CSTRING &name)
+ :m_storage_engine_name(name)
+ { }
+ Storage_engine_name(const LEX_STRING &name)
+ {
+ m_storage_engine_name.str= name.str;
+ m_storage_engine_name.length= name.length;
+ }
+ bool resolve_storage_engine_with_error(THD *thd,
+ handlerton **ha,
+ bool tmp_table);
+ bool is_set() { return m_storage_engine_name.str != NULL; }
+};
+
+
/**
@class Sql_cmd - Representation of an SQL command.
@@ -161,6 +187,11 @@ public:
*/
virtual bool execute(THD *thd) = 0;
+ virtual Storage_engine_name *option_storage_engine_name()
+ {
+ return NULL;
+ }
+
protected:
Sql_cmd()
{}
@@ -177,6 +208,26 @@ protected:
}
};
+class Sql_cmd_create_table_like: public Sql_cmd,
+ public Storage_engine_name
+{
+public:
+ Storage_engine_name *option_storage_engine_name() { return this; }
+ bool execute(THD *thd);
+};
+
+class Sql_cmd_create_table: public Sql_cmd_create_table_like
+{
+public:
+ enum_sql_command sql_command_code() const { return SQLCOM_CREATE_TABLE; }
+};
+
+class Sql_cmd_create_sequence: public Sql_cmd_create_table_like
+{
+public:
+ enum_sql_command sql_command_code() const { return SQLCOM_CREATE_SEQUENCE; }
+};
+
/**
Sql_cmd_call represents the CALL statement.