mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#60111 storage type for table not saved in .frm
- Add new "format section" in extra data segment with additional table and column properties. This was originally introduced in 5.1.20 based MySQL Cluster - Remove hardcoded STORAGE DISK for table and instead output the real storage format used. Keep both TABLESPACE and STORAGE inside same version guard. - Implement default version of handler::get_tablespace_name() since tablespace is now available in share and it's unnecessary for each handler to implement. (the function could actually be removed totally now). - Add test for combinations of TABLESPACE and STORAGE with CREATE TABLE and ALTER TABLE - Add test to show that 5.5 now can read a .frm file created by MySQL Cluster 7.0.22. Although it does not yet show the column level attributes, they are read.
This commit is contained in:
@ -1379,17 +1379,24 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
|
||||
if (!(thd->variables.sql_mode & MODE_NO_TABLE_OPTIONS) && !foreign_db_mode)
|
||||
{
|
||||
show_table_options= TRUE;
|
||||
/*
|
||||
Get possible table space definitions and append them
|
||||
to the CREATE TABLE statement
|
||||
*/
|
||||
|
||||
if ((for_str= file->get_tablespace_name(thd,0,0)))
|
||||
/* TABLESPACE and STORAGE */
|
||||
if (share->tablespace ||
|
||||
share->default_storage_media != HA_SM_DEFAULT)
|
||||
{
|
||||
packet->append(STRING_WITH_LEN(" /*!50100 TABLESPACE "));
|
||||
packet->append(for_str, strlen(for_str));
|
||||
packet->append(STRING_WITH_LEN(" STORAGE DISK */"));
|
||||
my_free(for_str);
|
||||
packet->append(STRING_WITH_LEN(" /*!50100"));
|
||||
if (share->tablespace)
|
||||
{
|
||||
packet->append(STRING_WITH_LEN(" TABLESPACE "));
|
||||
packet->append(share->tablespace, strlen(share->tablespace));
|
||||
}
|
||||
|
||||
if (share->default_storage_media == HA_SM_DISK)
|
||||
packet->append(STRING_WITH_LEN(" STORAGE DISK"));
|
||||
if (share->default_storage_media == HA_SM_MEMORY)
|
||||
packet->append(STRING_WITH_LEN(" STORAGE MEMORY"));
|
||||
|
||||
packet->append(STRING_WITH_LEN(" */"));
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user