1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-19653 Add class Sql_cmd_create_table

This commit is contained in:
Alexander Barkov
2019-05-31 15:24:40 +04:00
parent dd939d6f7e
commit 5a19908b95
8 changed files with 425 additions and 304 deletions

View File

@ -102,6 +102,31 @@ 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);
};
/**
@class Sql_cmd - Representation of an SQL command.
@ -145,6 +170,11 @@ public:
*/
virtual bool execute(THD *thd) = 0;
virtual Storage_engine_name *option_storage_engine_name()
{
return NULL;
}
protected:
Sql_cmd()
{}
@ -161,4 +191,15 @@ protected:
}
};
class Sql_cmd_create_table: public Sql_cmd,
public Storage_engine_name
{
public:
enum_sql_command sql_command_code() const { return SQLCOM_CREATE_TABLE; }
Storage_engine_name *option_storage_engine_name() { return this; }
bool execute(THD *thd);
};
#endif // SQL_CMD_INCLUDED