Commit 226e2be1 authored by mskold/marty@linux.site's avatar mskold/marty@linux.site

Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-ndb

into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
parents 74a5079f 3587ee8e
...@@ -96,6 +96,14 @@ enum ha_key_alg { ...@@ -96,6 +96,14 @@ enum ha_key_alg {
HA_KEY_ALG_FULLTEXT= 4 /* FULLTEXT (MyISAM tables) */ HA_KEY_ALG_FULLTEXT= 4 /* FULLTEXT (MyISAM tables) */
}; };
/* Storage media types */
enum ha_storage_media {
HA_SM_DEFAULT= 0, /* Not specified (engine default) */
HA_SM_DISK= 1, /* DISK storage */
HA_SM_MEMORY= 2 /* MAIN MEMORY storage */
};
/* The following is parameter to ha_extra() */ /* The following is parameter to ha_extra() */
enum ha_extra_function { enum ha_extra_function {
......
...@@ -282,7 +282,13 @@ a1 ...@@ -282,7 +282,13 @@ a1
18 18
19 19
20 20
SELECT * FROM information_schema.partitions WHERE table_name= 't1' AND partition_name = 'p0';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
NULL test t1 p0 NULL 1 NULL KEY NULL NULL NULL 0 0 0 NULL 0 0 NULL NULL NULL NULL default default ts
ALTER TABLE test.t1 ADD a2 FLOAT, ADD a3 DOUBLE; ALTER TABLE test.t1 ADD a2 FLOAT, ADD a3 DOUBLE;
SELECT * FROM information_schema.partitions WHERE table_name= 't1' AND partition_name = 'p0';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
NULL test t1 p0 NULL 1 NULL KEY NULL NULL NULL 0 0 0 NULL 0 0 NULL NULL NULL NULL default default ts
SELECT * FROM test.t1 ORDER BY a1; SELECT * FROM test.t1 ORDER BY a1;
a1 a2 a3 a1 a2 a3
1 2.2345 20000001 1 2.2345 20000001
...@@ -369,7 +375,7 @@ t1 CREATE TABLE `t1` ( ...@@ -369,7 +375,7 @@ t1 CREATE TABLE `t1` (
`a13` text, `a13` text,
`a14` blob, `a14` blob,
PRIMARY KEY (`a1`) PRIMARY KEY (`a1`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
ALTER TABLE test.t1 ADD INDEX a2_i (a2), ADD INDEX a3_i (a3); ALTER TABLE test.t1 ADD INDEX a2_i (a2), ADD INDEX a3_i (a3);
SHOW CREATE TABLE test.t1; SHOW CREATE TABLE test.t1;
Table Create Table Table Create Table
...@@ -391,7 +397,7 @@ t1 CREATE TABLE `t1` ( ...@@ -391,7 +397,7 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`a1`), PRIMARY KEY (`a1`),
KEY `a2_i` (`a2`), KEY `a2_i` (`a2`),
KEY `a3_i` (`a3`) KEY `a3_i` (`a3`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
ALTER TABLE test.t1 DROP INDEX a2_i; ALTER TABLE test.t1 DROP INDEX a2_i;
SHOW CREATE TABLE test.t1; SHOW CREATE TABLE test.t1;
Table Create Table Table Create Table
...@@ -412,7 +418,7 @@ t1 CREATE TABLE `t1` ( ...@@ -412,7 +418,7 @@ t1 CREATE TABLE `t1` (
`a14` blob, `a14` blob,
PRIMARY KEY (`a1`), PRIMARY KEY (`a1`),
KEY `a3_i` (`a3`) KEY `a3_i` (`a3`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
ALTER TABLE test.t1 DROP a14; ALTER TABLE test.t1 DROP a14;
ALTER TABLE test.t1 DROP a13; ALTER TABLE test.t1 DROP a13;
ALTER TABLE test.t1 DROP a12; ALTER TABLE test.t1 DROP a12;
...@@ -432,7 +438,7 @@ t1 CREATE TABLE `t1` ( ...@@ -432,7 +438,7 @@ t1 CREATE TABLE `t1` (
`a4` bit(1) DEFAULT NULL, `a4` bit(1) DEFAULT NULL,
`a5` tinyint(4) DEFAULT NULL, `a5` tinyint(4) DEFAULT NULL,
KEY `a3_i` (`a3`) KEY `a3_i` (`a3`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
DROP TABLE test.t1; DROP TABLE test.t1;
ALTER TABLESPACE ts ALTER TABLESPACE ts
DROP DATAFILE './table_space/datafile.dat' DROP DATAFILE './table_space/datafile.dat'
......
...@@ -237,7 +237,7 @@ t2 CREATE TABLE `t2` ( ...@@ -237,7 +237,7 @@ t2 CREATE TABLE `t2` (
`c2` int(11) NOT NULL, `c2` int(11) NOT NULL,
PRIMARY KEY (`pk2`) PRIMARY KEY (`pk2`)
) /*!50100 TABLESPACE table_space1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE table_space1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
ALTER TABLE test.t1 ENGINE=NDBCLUSTER; ALTER TABLE test.t1 STORAGE MEMORY ENGINE=NDBCLUSTER;
SHOW CREATE TABLE test.t1; SHOW CREATE TABLE test.t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
...@@ -341,7 +341,7 @@ t1 CREATE TABLE `t1` ( ...@@ -341,7 +341,7 @@ t1 CREATE TABLE `t1` (
KEY `a2` (`a2`), KEY `a2` (`a2`),
KEY `a3` (`a3`), KEY `a3` (`a3`),
KEY `a8` (`a8`) KEY `a8` (`a8`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE table_space1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
Table Create Table Table Create Table
t2 CREATE TABLE `t2` ( t2 CREATE TABLE `t2` (
`b1` smallint(6) NOT NULL, `b1` smallint(6) NOT NULL,
......
...@@ -70,7 +70,7 @@ t1 CREATE TABLE `t1` ( ...@@ -70,7 +70,7 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`c1`), PRIMARY KEY (`c1`),
KEY `t1_i` (`c2`,`c3`), KEY `t1_i` (`c2`,`c3`),
KEY `c5` (`c5`) KEY `c5` (`c5`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
**** Show first set of ALTERs on SLAVE **** **** Show first set of ALTERs on SLAVE ****
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
...@@ -83,7 +83,7 @@ t1 CREATE TABLE `t1` ( ...@@ -83,7 +83,7 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`c1`), PRIMARY KEY (`c1`),
KEY `t1_i` (`c2`,`c3`), KEY `t1_i` (`c2`,`c3`),
KEY `c5` (`c5`) KEY `c5` (`c5`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
**** Second set of alters test 1 **** **** Second set of alters test 1 ****
ALTER TABLE t1 RENAME t2; ALTER TABLE t1 RENAME t2;
ALTER TABLE t2 DROP INDEX c5; ALTER TABLE t2 DROP INDEX c5;
...@@ -102,7 +102,7 @@ t1 CREATE TABLE `t1` ( ...@@ -102,7 +102,7 @@ t1 CREATE TABLE `t1` (
`c5` double DEFAULT NULL, `c5` double DEFAULT NULL,
PRIMARY KEY (`c1`), PRIMARY KEY (`c1`),
KEY `t1_i` (`c2`,`c3`) KEY `t1_i` (`c2`,`c3`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
**** Show second set of ALTERs on SLAVE **** **** Show second set of ALTERs on SLAVE ****
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
...@@ -114,7 +114,7 @@ t1 CREATE TABLE `t1` ( ...@@ -114,7 +114,7 @@ t1 CREATE TABLE `t1` (
`c5` double DEFAULT NULL, `c5` double DEFAULT NULL,
PRIMARY KEY (`c1`), PRIMARY KEY (`c1`),
KEY `t1_i` (`c2`,`c3`) KEY `t1_i` (`c2`,`c3`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
**** Third and last set of alters for test1 **** **** Third and last set of alters for test1 ****
ALTER TABLE t1 CHANGE c1 c1 DOUBLE; ALTER TABLE t1 CHANGE c1 c1 DOUBLE;
ALTER TABLE t1 CHANGE c2 c2 DECIMAL(10,2); ALTER TABLE t1 CHANGE c2 c2 DECIMAL(10,2);
...@@ -136,7 +136,7 @@ t1 CREATE TABLE `t1` ( ...@@ -136,7 +136,7 @@ t1 CREATE TABLE `t1` (
`c5` double DEFAULT NULL, `c5` double DEFAULT NULL,
PRIMARY KEY (`c1`), PRIMARY KEY (`c1`),
KEY `t1_i` (`c2`) KEY `t1_i` (`c2`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
SELECT * FROM t1 ORDER BY c1 LIMIT 5; SELECT * FROM t1 ORDER BY c1 LIMIT 5;
c1 c2 c3 c5 c1 c2 c3 c5
1 2.00 b1b1b1b1b1b1b1b1b1b1 NULL 1 2.00 b1b1b1b1b1b1b1b1b1b1 NULL
...@@ -154,7 +154,7 @@ t1 CREATE TABLE `t1` ( ...@@ -154,7 +154,7 @@ t1 CREATE TABLE `t1` (
`c5` double DEFAULT NULL, `c5` double DEFAULT NULL,
PRIMARY KEY (`c1`), PRIMARY KEY (`c1`),
KEY `t1_i` (`c2`) KEY `t1_i` (`c2`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
SELECT * FROM t1 where c1 = 1; SELECT * FROM t1 where c1 = 1;
c1 c2 c3 c5 c1 c2 c3 c5
1 2.00 b1b1b1b1b1b1b1b1b1b1 NULL 1 2.00 b1b1b1b1b1b1b1b1b1b1 NULL
......
...@@ -156,8 +156,12 @@ enable_query_log; ...@@ -156,8 +156,12 @@ enable_query_log;
SELECT * FROM test.t1 ORDER BY a1; SELECT * FROM test.t1 ORDER BY a1;
SELECT * FROM information_schema.partitions WHERE table_name= 't1' AND partition_name = 'p0';
ALTER TABLE test.t1 ADD a2 FLOAT, ADD a3 DOUBLE; ALTER TABLE test.t1 ADD a2 FLOAT, ADD a3 DOUBLE;
SELECT * FROM information_schema.partitions WHERE table_name= 't1' AND partition_name = 'p0';
let $1=20; let $1=20;
disable_query_log; disable_query_log;
while ($1) while ($1)
......
...@@ -111,7 +111,7 @@ SHOW CREATE TABLE test.t1; ...@@ -111,7 +111,7 @@ SHOW CREATE TABLE test.t1;
ALTER TABLE test.t2 TABLESPACE table_space1 STORAGE DISK ALTER TABLE test.t2 TABLESPACE table_space1 STORAGE DISK
ENGINE=NDB; ENGINE=NDB;
SHOW CREATE TABLE test.t2; SHOW CREATE TABLE test.t2;
ALTER TABLE test.t1 ENGINE=NDBCLUSTER; ALTER TABLE test.t1 STORAGE MEMORY ENGINE=NDBCLUSTER;
SHOW CREATE TABLE test.t1; SHOW CREATE TABLE test.t1;
--echo --echo
######################### End Test Section 2 ################# ######################### End Test Section 2 #################
......
...@@ -4807,7 +4807,7 @@ int ha_ndbcluster::create(const char *name, ...@@ -4807,7 +4807,7 @@ int ha_ndbcluster::create(const char *name,
if ((my_errno= create_ndb_column(col, field, info))) if ((my_errno= create_ndb_column(col, field, info)))
DBUG_RETURN(my_errno); DBUG_RETURN(my_errno);
if (info->store_on_disk || getenv("NDB_DEFAULT_DISK")) if (info->storage_media == HA_SM_DISK || getenv("NDB_DEFAULT_DISK"))
col.setStorageType(NdbDictionary::Column::StorageTypeDisk); col.setStorageType(NdbDictionary::Column::StorageTypeDisk);
else else
col.setStorageType(NdbDictionary::Column::StorageTypeMemory); col.setStorageType(NdbDictionary::Column::StorageTypeMemory);
...@@ -4827,7 +4827,7 @@ int ha_ndbcluster::create(const char *name, ...@@ -4827,7 +4827,7 @@ int ha_ndbcluster::create(const char *name,
NdbDictionary::Column::StorageTypeMemory); NdbDictionary::Column::StorageTypeMemory);
} }
if (info->store_on_disk) if (info->storage_media == HA_SM_DISK)
{ {
if (info->tablespace) if (info->tablespace)
tab.setTablespace(info->tablespace); tab.setTablespace(info->tablespace);
...@@ -4837,7 +4837,7 @@ int ha_ndbcluster::create(const char *name, ...@@ -4837,7 +4837,7 @@ int ha_ndbcluster::create(const char *name,
else if (info->tablespace) else if (info->tablespace)
{ {
tab.setTablespace(info->tablespace); tab.setTablespace(info->tablespace);
info->store_on_disk = true; //if use tablespace, that also means store on disk info->storage_media = HA_SM_DISK; //if use tablespace, that also means store on disk
} }
// No primary key, create shadow key as 64 bit, auto increment // No primary key, create shadow key as 64 bit, auto increment
...@@ -9949,7 +9949,7 @@ int ha_ndbcluster::generate_scan_filter_from_key(NdbScanOperation *op, ...@@ -9949,7 +9949,7 @@ int ha_ndbcluster::generate_scan_filter_from_key(NdbScanOperation *op,
/* /*
get table space info for SHOW CREATE TABLE get table space info for SHOW CREATE TABLE
*/ */
char* ha_ndbcluster::get_tablespace_name(THD *thd) char* ha_ndbcluster::get_tablespace_name(THD *thd, char* name, uint name_len)
{ {
Ndb *ndb= check_ndb_in_thd(thd); Ndb *ndb= check_ndb_in_thd(thd);
NDBDICT *ndbdict= ndb->getDictionary(); NDBDICT *ndbdict= ndb->getDictionary();
...@@ -9967,7 +9967,13 @@ char* ha_ndbcluster::get_tablespace_name(THD *thd) ...@@ -9967,7 +9967,13 @@ char* ha_ndbcluster::get_tablespace_name(THD *thd)
ndberr= ndbdict->getNdbError(); ndberr= ndbdict->getNdbError();
if(ndberr.classification != NdbError::NoError) if(ndberr.classification != NdbError::NoError)
goto err; goto err;
return (my_strdup(ts.getName(), MYF(0))); if (name)
{
strxnmov(name, name_len, ts.getName(), NullS);
return name;
}
else
return (my_strdup(ts.getName(), MYF(0)));
} }
err: err:
if (ndberr.status == NdbError::TemporaryError) if (ndberr.status == NdbError::TemporaryError)
......
...@@ -824,7 +824,7 @@ private: ...@@ -824,7 +824,7 @@ private:
uint set_up_partition_info(partition_info *part_info, uint set_up_partition_info(partition_info *part_info,
TABLE *table, TABLE *table,
void *tab); void *tab);
char* get_tablespace_name(THD *thd); char* get_tablespace_name(THD *thd, char *name, uint name_len);
int set_range_data(void *tab, partition_info* part_info); int set_range_data(void *tab, partition_info* part_info);
int set_list_data(void *tab, partition_info* part_info); int set_list_data(void *tab, partition_info* part_info);
int complemented_read(const byte *old_data, byte *new_data, int complemented_read(const byte *old_data, byte *new_data,
......
...@@ -764,7 +764,7 @@ typedef struct st_ha_create_information ...@@ -764,7 +764,7 @@ typedef struct st_ha_create_information
bool table_existed; /* 1 in create if table existed */ bool table_existed; /* 1 in create if table existed */
bool frm_only; /* 1 if no ha_create_table() */ bool frm_only; /* 1 if no ha_create_table() */
bool varchar; /* 1 if table has a VARCHAR */ bool varchar; /* 1 if table has a VARCHAR */
bool store_on_disk; /* 1 if table stored on disk */ enum ha_storage_media storage_media; /* DEFAULT, DISK or MEMORY */
} HA_CREATE_INFO; } HA_CREATE_INFO;
...@@ -1410,7 +1410,7 @@ public: ...@@ -1410,7 +1410,7 @@ public:
{ return FALSE; } { return FALSE; }
virtual char* get_foreign_key_create_info() virtual char* get_foreign_key_create_info()
{ return(NULL);} /* gets foreign key create string from InnoDB */ { return(NULL);} /* gets foreign key create string from InnoDB */
virtual char* get_tablespace_name(THD *thd) virtual char* get_tablespace_name(THD *thd, char *name, uint name_len)
{ return(NULL);} /* gets tablespace name from handler */ { return(NULL);} /* gets tablespace name from handler */
/* used in ALTER TABLE; 1 if changing storage engine is allowed */ /* used in ALTER TABLE; 1 if changing storage engine is allowed */
virtual bool can_switch_engines() { return 1; } virtual bool can_switch_engines() { return 1; }
......
...@@ -1267,7 +1267,7 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, ...@@ -1267,7 +1267,7 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
to the CREATE TABLE statement to the CREATE TABLE statement
*/ */
if ((for_str= file->get_tablespace_name(thd))) if ((for_str= file->get_tablespace_name(thd,0,0)))
{ {
packet->append(STRING_WITH_LEN(" /*!50100 TABLESPACE ")); packet->append(STRING_WITH_LEN(" /*!50100 TABLESPACE "));
packet->append(for_str, strlen(for_str)); packet->append(for_str, strlen(for_str));
...@@ -3974,7 +3974,7 @@ static void store_schema_partitions_record(THD *thd, TABLE *schema_table, ...@@ -3974,7 +3974,7 @@ static void store_schema_partitions_record(THD *thd, TABLE *schema_table,
strlen(part_elem->tablespace_name), cs); strlen(part_elem->tablespace_name), cs);
else else
{ {
char *ts= showing_table->file->get_tablespace_name(thd); char *ts= showing_table->file->get_tablespace_name(thd,0,0);
if(ts) if(ts)
{ {
table->field[24]->store(ts, strlen(ts), cs); table->field[24]->store(ts, strlen(ts), cs);
......
...@@ -5307,7 +5307,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -5307,7 +5307,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
int error; int error;
char tmp_name[80],old_name[32],new_name_buff[FN_REFLEN]; char tmp_name[80],old_name[32],new_name_buff[FN_REFLEN];
char new_alias_buff[FN_REFLEN], *table_name, *db, *new_alias, *alias; char new_alias_buff[FN_REFLEN], *table_name, *db, *new_alias, *alias;
char index_file[FN_REFLEN], data_file[FN_REFLEN]; char index_file[FN_REFLEN], data_file[FN_REFLEN], tablespace[FN_LEN];
char path[FN_REFLEN]; char path[FN_REFLEN];
char reg_path[FN_REFLEN+1]; char reg_path[FN_REFLEN+1];
ha_rows copied,deleted; ha_rows copied,deleted;
...@@ -5630,6 +5630,15 @@ view_err: ...@@ -5630,6 +5630,15 @@ view_err:
if (!(used_fields & HA_CREATE_USED_KEY_BLOCK_SIZE)) if (!(used_fields & HA_CREATE_USED_KEY_BLOCK_SIZE))
create_info->key_block_size= table->s->key_block_size; create_info->key_block_size= table->s->key_block_size;
if (!create_info->tablespace && create_info->storage_media != HA_SM_MEMORY)
{
/*
Regular alter table of disk stored table (no tablespace/storage change)
Copy tablespace name
*/
if ((table->file->get_tablespace_name(thd, tablespace, FN_LEN)))
create_info->tablespace= tablespace;
}
restore_record(table, s->default_values); // Empty record for DEFAULT restore_record(table, s->default_values); // Empty record for DEFAULT
List_iterator<Alter_drop> drop_it(alter_info->drop_list); List_iterator<Alter_drop> drop_it(alter_info->drop_list);
List_iterator<create_field> def_it(fields); List_iterator<create_field> def_it(fields);
......
...@@ -3947,8 +3947,8 @@ create_table_option: ...@@ -3947,8 +3947,8 @@ create_table_option:
| DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys { Lex->create_info.data_file_name= $4.str; Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR; } | DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys { Lex->create_info.data_file_name= $4.str; Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR; }
| INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys { Lex->create_info.index_file_name= $4.str; Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR; } | INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys { Lex->create_info.index_file_name= $4.str; Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR; }
| TABLESPACE ident {Lex->create_info.tablespace= $2.str;} | TABLESPACE ident {Lex->create_info.tablespace= $2.str;}
| STORAGE_SYM DISK_SYM {Lex->create_info.store_on_disk= TRUE;} | STORAGE_SYM DISK_SYM {Lex->create_info.storage_media= HA_SM_DISK;}
| STORAGE_SYM MEMORY_SYM {Lex->create_info.store_on_disk= FALSE;} | STORAGE_SYM MEMORY_SYM {Lex->create_info.storage_media= HA_SM_MEMORY;}
| CONNECTION_SYM opt_equal TEXT_STRING_sys { Lex->create_info.connect_string.str= $3.str; Lex->create_info.connect_string.length= $3.length; Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION; } | CONNECTION_SYM opt_equal TEXT_STRING_sys { Lex->create_info.connect_string.str= $3.str; Lex->create_info.connect_string.length= $3.length; Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION; }
| KEY_BLOCK_SIZE opt_equal ulong_num | KEY_BLOCK_SIZE opt_equal ulong_num
{ {
...@@ -4690,6 +4690,7 @@ alter: ...@@ -4690,6 +4690,7 @@ alter:
lex->alter_info.reset(); lex->alter_info.reset();
lex->alter_info.flags= 0; lex->alter_info.flags= 0;
lex->no_write_to_binlog= 0; lex->no_write_to_binlog= 0;
lex->create_info.storage_media= HA_SM_DEFAULT;
} }
alter_commands alter_commands
{} {}
...@@ -8342,6 +8343,7 @@ show_param: ...@@ -8342,6 +8343,7 @@ show_param:
if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL,0)) if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL,0))
YYABORT; YYABORT;
lex->only_view= 0; lex->only_view= 0;
lex->create_info.storage_media= HA_SM_DEFAULT;
} }
| CREATE VIEW_SYM table_ident | CREATE VIEW_SYM table_ident
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment