From: Stewart Smith Date: December 23 2005 4:32am Subject: bk commit into 5.1 tree (stewart:1.1981) List-Archive: http://lists.mysql.com/commits/379 Message-Id: <20051223043253.E6C991412930@localhost.localdomain> Below is the list of changes that have just been committed into a local 5.1 repository of stewart. When stewart does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.1981 05/12/23 15:32:45 stewart@stripped +9 -0 Merge fixes for ndb-dd mysqld merge. sql/sql_tablespace.cc 1.1 05/12/23 15:32:41 stewart@stripped +55 -0 Import sql_tablespace.cc from ndb-dd tree. Updated so it works with the changes to pluggable storage engine code. sql/sql_tablespace.cc 1.0 05/12/23 15:32:41 stewart@stripped +0 -0 BitKeeper file /home/stewart/Documents/MySQL/5.1/dd-new-merge/sql/sql_tablespace.cc mysql-test/t/ndb_basic_disk.test 1.1 05/12/23 15:32:40 stewart@stripped +274 -0 ndb-dd basic test mysql-test/r/ndb_basic_disk.result 1.1 05/12/23 15:32:40 stewart@stripped +351 -0 ndb-dd basic test BitKeeper/etc/ignore 1.218 05/12/23 15:32:41 stewart@stripped +1 -0 Added libmysqld/sql_tablespace.cc to the ignore list sql/sql_yacc.yy 1.424 05/12/23 15:32:40 stewart@stripped +22 -16 fix some formatting, special handling of READ_ONLY so that you can alter a tablespace to read only and set the read_only variable. mysql-test/t/ndb_basic_disk.test 1.0 05/12/23 15:32:40 stewart@stripped +0 -0 BitKeeper file /home/stewart/Documents/MySQL/5.1/dd-new-merge/mysql-test/t/ndb_basic_disk.test mysql-test/r/ndb_basic_disk.result 1.0 05/12/23 15:32:40 stewart@stripped +0 -0 BitKeeper file /home/stewart/Documents/MySQL/5.1/dd-new-merge/mysql-test/r/ndb_basic_disk.result sql/sql_parse.cc 1.485 05/12/23 15:32:39 stewart@stripped +1 -1 pass thd to mysql_alter_tablespace sql/mysql_priv.h 1.346 05/12/23 15:32:39 stewart@stripped +1 -1 update mysql_alter_tablespace prototype sql/handler.h 1.169 05/12/23 15:32:39 stewart@stripped +1 -1 fix st_alter_tablespace use of db_type to be legacy_db_type This should probably be updated to not use the legacy_db_type sometime soon. mysql-test/t/rpl_multi_engine.test 1.2 05/12/23 15:32:39 stewart@stripped +2 -0 Make test more deterministic # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: stewart # Host: willster.(none) # Root: /home/stewart/Documents/MySQL/5.1/dd-new-merge --- 1.168/sql/handler.h 2005-12-22 19:07:58 +11:00 +++ 1.169/sql/handler.h 2005-12-23 15:32:39 +11:00 @@ -828,7 +828,7 @@ ulonglong autoextend_size; ulonglong max_size; uint nodegroup_id; - enum db_type storage_engine; + enum legacy_db_type storage_engine; bool wait_until_completed; char *ts_comment; enum tablespace_access_mode ts_access_mode; --- 1.345/sql/mysql_priv.h 2005-12-22 19:07:58 +11:00 +++ 1.346/sql/mysql_priv.h 2005-12-23 15:32:39 +11:00 @@ -693,7 +693,7 @@ bool mysql_xa_recover(THD *thd); bool check_simple_select(); -int mysql_alter_tablespace(st_alter_tablespace *ts_info); +int mysql_alter_tablespace(THD* thd, st_alter_tablespace *ts_info); SORT_FIELD * make_unireg_sortorder(ORDER *order, uint *length); int setup_order(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables, --- 1.484/sql/sql_parse.cc 2005-12-22 19:07:59 +11:00 +++ 1.485/sql/sql_parse.cc 2005-12-23 15:32:39 +11:00 @@ -4820,7 +4820,7 @@ case SQLCOM_ALTER_TABLESPACE: if (check_access(thd, ALTER_ACL, thd->db, 0, 1, 0, thd->db ? is_schema_db(thd->db) : 0)) break; - if (!(res= mysql_alter_tablespace(lex->alter_tablespace_info))) + if (!(res= mysql_alter_tablespace(thd, lex->alter_tablespace_info))) send_ok(thd); break; case SQLCOM_INSTALL_PLUGIN: --- 1.423/sql/sql_yacc.yy 2005-12-22 19:07:59 +11:00 +++ 1.424/sql/sql_yacc.yy 2005-12-23 15:32:40 +11:00 @@ -1309,7 +1309,11 @@ } view_or_trigger {} - | CREATE LOGFILE_SYM GROUP logfile_group_info + | CREATE USER clear_privileges grant_list + { + Lex->sql_command = SQLCOM_CREATE_USER; + } + | CREATE LOGFILE_SYM GROUP logfile_group_info { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP; @@ -1319,10 +1323,6 @@ LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE; } - | CREATE USER clear_privileges grant_list - { - Lex->sql_command = SQLCOM_CREATE_USER; - } ; clear_privileges: @@ -2865,7 +2865,7 @@ "STORAGE ENGINE"); YYABORT; } - lex->alter_tablespace_info->storage_engine= $4; + lex->alter_tablespace_info->storage_engine= $4->db_type; }; opt_ts_wait: @@ -8535,6 +8535,12 @@ ident: IDENT_sys { $$=$1; } + | READ_ONLY_SYM + { + THD *thd= YYTHD; + $$.str= thd->strmake("read_only",9); + $$.length= 9; + } | keyword { THD *thd= YYTHD; @@ -8657,7 +8663,7 @@ | ALGORITHM_SYM {} | ANY_SYM {} | AUTO_INC {} - | AUTOEXTEND_SIZE_SYM {} + | AUTOEXTEND_SIZE_SYM {} | AVG_ROW_LENGTH {} | AVG_SYM {} | BERKELEY_DB_SYM {} @@ -8682,7 +8688,7 @@ | CONSISTENT_SYM {} | CUBE_SYM {} | DATA_SYM {} - | DATAFILE_SYM {} + | DATAFILE_SYM {} | DATETIME {} | DATE_SYM {} | DAY_SYM {} @@ -8691,7 +8697,7 @@ | DES_KEY_FILE {} | DIRECTORY_SYM {} | DISCARD {} - | DISK_SYM {} + | DISK_SYM {} | DUMPFILE {} | DUPLICATE_SYM {} | DYNAMIC_SYM {} @@ -8703,7 +8709,7 @@ | EVENTS_SYM {} | EXPANSION_SYM {} | EXTENDED_SYM {} - | EXTENT_SIZE_SYM {} + | EXTENT_SIZE_SYM {} | FAST_SYM {} | FOUND_SYM {} | DISABLE_SYM {} @@ -8725,7 +8731,7 @@ | INVOKER_SYM {} | IMPORT {} | INDEXES {} - | INITIAL_SIZE_SYM {} + | INITIAL_SIZE_SYM {} | ISOLATION {} | ISSUER_SYM {} | INNOBASE_SYM {} @@ -8739,7 +8745,7 @@ | LIST_SYM {} | LOCAL_SYM {} | LOCKS_SYM {} - | LOGFILE_SYM {} + | LOGFILE_SYM {} | LOGS_SYM {} | MAX_ROWS {} | MASTER_SYM {} @@ -8759,7 +8765,7 @@ | MASTER_SSL_KEY_SYM {} | MAX_CONNECTIONS_PER_HOUR {} | MAX_QUERIES_PER_HOUR {} - | MAX_SIZE_SYM {} + | MAX_SIZE_SYM {} | MAX_UPDATES_PER_HOUR {} | MAX_USER_CONNECTIONS_SYM {} | MAX_VALUE_SYM {} @@ -8784,8 +8790,8 @@ | NDBCLUSTER_SYM {} | NEXT_SYM {} | NEW_SYM {} - | NO_WAIT_SYM {} - | NODEGROUP_SYM {} + | NO_WAIT_SYM {} + | NODEGROUP_SYM {} | NONE_SYM {} | NVARCHAR_SYM {} | OFFSET_SYM {} @@ -8880,7 +8886,7 @@ | VIEW_SYM {} | VALUE_SYM {} | WARNINGS {} - | WAIT_SYM {} + | WAIT_SYM {} | WEEK_SYM {} | WORK_SYM {} | X509_SYM {} --- 1.1/mysql-test/t/rpl_multi_engine.test 2005-12-22 16:34:59 +11:00 +++ 1.2/mysql-test/t/rpl_multi_engine.test 2005-12-23 15:32:39 +11:00 @@ -49,6 +49,8 @@ alter table t1 engine=memory; show create table t1; +sync_slave_with_master; + connection slave; alter table t1 engine=myisam; show create table t1; --- 1.217/BitKeeper/etc/ignore 2005-12-07 14:55:19 +11:00 +++ 1.218/BitKeeper/etc/ignore 2005-12-23 15:32:41 +11:00 @@ -1659,3 +1659,4 @@ zlib/*.ds? zlib/*.vcproj client/mysqlslap +libmysqld/sql_tablespace.cc --- New file --- +++ mysql-test/r/ndb_basic_disk.result 05/12/23 15:32:40 DROP TABLE IF EXISTS t1; CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undofile.dat' INITIAL_SIZE 16M UNDO_BUFFER_SIZE = 1M ENGINE=NDB; alter logfile group lg1 add undofile 'undofile02.dat' initial_size 4M engine=ndb; CREATE TABLESPACE ts1 ADD DATAFILE 'datafile.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 12M ENGINE NDB; alter tablespace ts1 add datafile 'datafile02.dat' initial_size 4M engine=ndb; CREATE TABLE t1 (pk1 int not null primary key, b int not null, c int not null) tablespace ts1 storage disk engine ndb; INSERT INTO t1 VALUES (0, 0, 0); SELECT * FROM t1; pk1 b c 0 0 0 INSERT INTO t1 VALUES (1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5), (6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10), (11,11,11),(12,12,12),(13,13,13),(14,14,14),(15,15,15), (16,16,16),(17,17,17),(18,18,18),(19,19,19),(20,20,20), (21,21,21),(22,22,22),(23,23,23),(24,24,24),(25,25,25), (26,26,26),(27,27,27),(28,28,28),(29,29,29),(30,30,30), (31,31,31),(32,32,32),(33,33,33),(34,34,34),(35,35,35), (36,36,36),(37,37,37),(38,38,38),(39,39,39),(40,40,40), (41,41,41),(42,42,42),(43,43,43),(44,44,44),(45,45,45), (46,46,46),(47,47,47),(48,48,48),(49,49,49),(50,50,50), (51,51,51),(52,52,52),(53,53,53),(54,54,54),(55,55,55), (56,56,56),(57,57,57),(58,58,58),(59,59,59),(60,60,60), (61,61,61),(62,62,62),(63,63,63),(64,64,64),(65,65,65), (66,66,66),(67,67,67),(68,68,68),(69,69,69),(70,70,70), (71,71,71),(72,72,72),(73,73,73),(74,74,74),(75,75,75), (76,76,76),(77,77,77),(78,78,78),(79,79,79),(80,80,80), (81,81,81),(82,82,82),(83,83,83),(84,84,84),(85,85,85), (86,86,86),(87,87,87),(88,88,88),(89,89,89),(90,90,90), (91,91,91),(92,92,92),(93,93,93),(94,94,94),(95,95,95), (96,96,96),(97,97,97),(98,98,98),(99,99,99),(100,100,100), (101,101,101),(102,102,102),(103,103,103),(104,104,104),(105,105,105), (106,106,106),(107,107,107),(108,108,108),(109,109,109),(110,110,110), (111,111,111),(112,112,112),(113,113,113),(114,114,114),(115,115,115), (116,116,116),(117,117,117),(118,118,118),(119,119,119),(120,120,120), (121,121,121),(122,122,122),(123,123,123),(124,124,124),(125,125,125), (126,126,126),(127,127,127),(128,128,128),(129,129,129),(130,130,130), (131,131,131),(132,132,132),(133,133,133),(134,134,134),(135,135,135), (136,136,136),(137,137,137),(138,138,138),(139,139,139),(140,140,140), (141,141,141),(142,142,142),(143,143,143),(144,144,144),(145,145,145), (146,146,146),(147,147,147),(148,148,148),(149,149,149),(150,150,150), (151,151,151),(152,152,152),(153,153,153),(154,154,154),(155,155,155), (156,156,156),(157,157,157),(158,158,158),(159,159,159),(160,160,160), (161,161,161),(162,162,162),(163,163,163),(164,164,164),(165,165,165), (166,166,166),(167,167,167),(168,168,168),(169,169,169),(170,170,170), (171,171,171),(172,172,172),(173,173,173),(174,174,174),(175,175,175), (176,176,176),(177,177,177),(178,178,178),(179,179,179),(180,180,180), (181,181,181),(182,182,182),(183,183,183),(184,184,184),(185,185,185), (186,186,186),(187,187,187),(188,188,188),(189,189,189),(190,190,190), (191,191,191),(192,192,192),(193,193,193),(194,194,194),(195,195,195), (196,196,196),(197,197,197),(198,198,198),(199,199,199),(200,200,200), (201,201,201),(202,202,202),(203,203,203),(204,204,204),(205,205,205), (206,206,206),(207,207,207),(208,208,208),(209,209,209),(210,210,210), (211,211,211),(212,212,212),(213,213,213),(214,214,214),(215,215,215), (216,216,216),(217,217,217),(218,218,218),(219,219,219),(220,220,220), (221,221,221),(222,222,222),(223,223,223),(224,224,224),(225,225,225), (226,226,226),(227,227,227),(228,228,228),(229,229,229),(230,230,230), (231,231,231),(232,232,232),(233,233,233),(234,234,234),(235,235,235), (236,236,236),(237,237,237),(238,238,238),(239,239,239),(240,240,240), (241,241,241),(242,242,242),(243,243,243),(244,244,244),(245,245,245), (246,246,246),(247,247,247),(248,248,248),(249,249,249),(250,250,250), (251,251,251),(252,252,252),(253,253,253),(254,254,254),(255,255,255), (256,256,256),(257,257,257),(258,258,258),(259,259,259),(260,260,260), (261,261,261),(262,262,262),(263,263,263),(264,264,264),(265,265,265), (266,266,266),(267,267,267),(268,268,268),(269,269,269),(270,270,270), (271,271,271),(272,272,272),(273,273,273),(274,274,274),(275,275,275), (276,276,276),(277,277,277),(278,278,278),(279,279,279),(280,280,280), (281,281,281),(282,282,282),(283,283,283),(284,284,284),(285,285,285), (286,286,286),(287,287,287),(288,288,288),(289,289,289),(290,290,290), (291,291,291),(292,292,292),(293,293,293),(294,294,294),(295,295,295), (296,296,296),(297,297,297),(298,298,298),(299,299,299),(300,300,300), (301,301,301),(302,302,302),(303,303,303),(304,304,304),(305,305,305), (306,306,306),(307,307,307),(308,308,308),(309,309,309),(310,310,310), (311,311,311),(312,312,312),(313,313,313),(314,314,314),(315,315,315), (316,316,316),(317,317,317),(318,318,318),(319,319,319),(320,320,320), (321,321,321),(322,322,322),(323,323,323),(324,324,324),(325,325,325), (326,326,326),(327,327,327),(328,328,328),(329,329,329),(330,330,330), (331,331,331),(332,332,332),(333,333,333),(334,334,334),(335,335,335), (336,336,336),(337,337,337),(338,338,338),(339,339,339),(340,340,340), (341,341,341),(342,342,342),(343,343,343),(344,344,344),(345,345,345), (346,346,346),(347,347,347),(348,348,348),(349,349,349),(350,350,350), (351,351,351),(352,352,352),(353,353,353),(354,354,354),(355,355,355), (356,356,356),(357,357,357),(358,358,358),(359,359,359),(360,360,360), (361,361,361),(362,362,362),(363,363,363),(364,364,364),(365,365,365), (366,366,366),(367,367,367),(368,368,368),(369,369,369),(370,370,370), (371,371,371),(372,372,372),(373,373,373),(374,374,374),(375,375,375), (376,376,376),(377,377,377),(378,378,378),(379,379,379),(380,380,380), (381,381,381),(382,382,382),(383,383,383),(384,384,384),(385,385,385), (386,386,386),(387,387,387),(388,388,388),(389,389,389),(390,390,390), (391,391,391),(392,392,392),(393,393,393),(394,394,394),(395,395,395), (396,396,396),(397,397,397),(398,398,398),(399,399,399),(400,400,400), (401,401,401),(402,402,402),(403,403,403),(404,404,404),(405,405,405), (406,406,406),(407,407,407),(408,408,408),(409,409,409),(410,410,410), (411,411,411),(412,412,412),(413,413,413),(414,414,414),(415,415,415), (416,416,416),(417,417,417),(418,418,418),(419,419,419),(420,420,420), (421,421,421),(422,422,422),(423,423,423),(424,424,424),(425,425,425), (426,426,426),(427,427,427),(428,428,428),(429,429,429),(430,430,430), (431,431,431),(432,432,432),(433,433,433),(434,434,434),(435,435,435), (436,436,436),(437,437,437),(438,438,438),(439,439,439),(440,440,440), (441,441,441),(442,442,442),(443,443,443),(444,444,444),(445,445,445), (446,446,446),(447,447,447),(448,448,448),(449,449,449),(450,450,450), (451,451,451),(452,452,452),(453,453,453),(454,454,454),(455,455,455), (456,456,456),(457,457,457),(458,458,458),(459,459,459),(460,460,460), (461,461,461),(462,462,462),(463,463,463),(464,464,464),(465,465,465), (466,466,466),(467,467,467),(468,468,468),(469,469,469),(470,470,470), (471,471,471),(472,472,472),(473,473,473),(474,474,474),(475,475,475), (476,476,476),(477,477,477),(478,478,478),(479,479,479),(480,480,480), (481,481,481),(482,482,482),(483,483,483),(484,484,484),(485,485,485), (486,486,486),(487,487,487),(488,488,488),(489,489,489),(490,490,490), (491,491,491),(492,492,492),(493,493,493),(494,494,494),(495,495,495), (496,496,496),(497,497,497),(498,498,498),(499,499,499),(500, 500, 500); SELECT COUNT(*) FROM t1; COUNT(*) 501 CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 10y engine = ndb; ERROR HY000: A size parameter was incorrectly specified, either number or on the form 10M CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 10MB engine=ndb; ERROR HY000: A size parameter was incorrectly specified, either number or on the form 10M CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 10 MB engine=ndb; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MB engine=ndb' at line 3 CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 10 M engine=ndb; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'M engine=ndb' at line 3 CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 1000000000000K engine=ndb; ERROR HY000: The size number was correct but we don't allow the digit part to be more than 2 billion DROP TABLE t1; create table t1 (a int primary key, b char(4) not null, c char(4) not null, key(b)) tablespace ts1 storage disk engine ndb; insert into t1 values (1,'1','1'), (2,'2','2'), (3,'3','3'); begin; update t1 set b = '2' where a = 1; select b from t1 where a = 1; b 2 select * from t1 where a = 1; a b c 1 2 1 update t1 set c = '2' where a = 1; select b from t1 where a = 1; b 2 select * from t1 where a = 1; a b c 1 2 2 update t1 set b = '3' where a = 1; select b from t1 where a = 1; b 3 select * from t1 where a = 1; a b c 1 3 2 commit; select * from t1 order by 1; a b c 1 3 2 2 2 2 3 3 3 begin; update t1 set c = '3' where a = 1; select b from t1 where a = 1; b 3 select * from t1 where a = 1; a b c 1 3 3 update t1 set b = '4' where a = 1; select b from t1 where a = 1; b 4 select * from t1 where a = 1; a b c 1 4 3 update t1 set c = '4' where a = 1; select b from t1 where a = 1; b 4 select * from t1 where a = 1; a b c 1 4 4 commit; select * from t1 order by 1; a b c 1 4 4 2 2 2 3 3 3 update t1 set b = '5' where a = 1; select * from t1 order by 1; a b c 1 5 4 2 2 2 3 3 3 update t1 set b = '6' where b = '5'; select * from t1 order by 1; a b c 1 6 4 2 2 2 3 3 3 update t1 set b = '7' where c = '4'; select * from t1 order by 1; a b c 1 7 4 2 2 2 3 3 3 update t1 set c = '5' where a = 1; select * from t1 order by 1; a b c 1 7 5 2 2 2 3 3 3 update t1 set c = '6' where b = '7'; select * from t1 order by 1; a b c 1 7 6 2 2 2 3 3 3 update t1 set c = '7' where c = '6'; select * from t1 order by 1; a b c 1 7 7 2 2 2 3 3 3 drop table t1; create table t1 (a int primary key, b varchar(4) not null, c char(4) not null, key(b)) tablespace ts1 storage disk engine ndb; insert into t1 values (1,'1','1'), (2,'2','2'), (3,'3','3'); begin; update t1 set b = '2' where a = 1; select b from t1 where a = 1; b 2 select * from t1 where a = 1; a b c 1 2 1 update t1 set c = '2' where a = 1; select b from t1 where a = 1; b 2 select * from t1 where a = 1; a b c 1 2 2 update t1 set b = '3' where a = 1; select b from t1 where a = 1; b 3 select * from t1 where a = 1; a b c 1 3 2 commit; select * from t1 order by 1; a b c 1 3 2 2 2 2 3 3 3 begin; update t1 set c = '3' where a = 1; select b from t1 where a = 1; b 3 select * from t1 where a = 1; a b c 1 3 3 update t1 set b = '4' where a = 1; select b from t1 where a = 1; b 4 select * from t1 where a = 1; a b c 1 4 3 update t1 set c = '4' where a = 1; select b from t1 where a = 1; b 4 select * from t1 where a = 1; a b c 1 4 4 commit; select * from t1 order by 1; a b c 1 4 4 2 2 2 3 3 3 update t1 set b = '5' where a = 1; select * from t1 order by 1; a b c 1 5 4 2 2 2 3 3 3 update t1 set b = '6' where b = '5'; select * from t1 order by 1; a b c 1 6 4 2 2 2 3 3 3 update t1 set b = '7' where c = '4'; select * from t1 order by 1; a b c 1 7 4 2 2 2 3 3 3 update t1 set c = '5' where a = 1; select * from t1 order by 1; a b c 1 7 5 2 2 2 3 3 3 update t1 set c = '6' where b = '7'; select * from t1 order by 1; a b c 1 7 6 2 2 2 3 3 3 update t1 set c = '7' where c = '6'; select * from t1 order by 1; a b c 1 7 7 2 2 2 3 3 3 drop table t1; alter tablespace ts1 drop datafile 'datafile.dat' engine = ndb; alter tablespace ts1 drop datafile 'datafile02.dat' engine = ndb; drop tablespace ts1 engine = ndb; drop logfile group lg1 engine = ndb; --- New file --- +++ mysql-test/t/ndb_basic_disk.test 05/12/23 15:32:40 -- source include/have_ndb.inc --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings # # Basic test of disk tables for NDB # # # Start by creating a logfile group # CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undofile.dat' INITIAL_SIZE 16M UNDO_BUFFER_SIZE = 1M ENGINE=NDB; alter logfile group lg1 add undofile 'undofile02.dat' initial_size 4M engine=ndb; # # Create a tablespace connected to the logfile group # CREATE TABLESPACE ts1 ADD DATAFILE 'datafile.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 12M ENGINE NDB; alter tablespace ts1 add datafile 'datafile02.dat' initial_size 4M engine=ndb; # # Create a table using this tablespace # CREATE TABLE t1 (pk1 int not null primary key, b int not null, c int not null) tablespace ts1 storage disk engine ndb; INSERT INTO t1 VALUES (0, 0, 0); SELECT * FROM t1; INSERT INTO t1 VALUES (1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5), (6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10), (11,11,11),(12,12,12),(13,13,13),(14,14,14),(15,15,15), (16,16,16),(17,17,17),(18,18,18),(19,19,19),(20,20,20), (21,21,21),(22,22,22),(23,23,23),(24,24,24),(25,25,25), (26,26,26),(27,27,27),(28,28,28),(29,29,29),(30,30,30), (31,31,31),(32,32,32),(33,33,33),(34,34,34),(35,35,35), (36,36,36),(37,37,37),(38,38,38),(39,39,39),(40,40,40), (41,41,41),(42,42,42),(43,43,43),(44,44,44),(45,45,45), (46,46,46),(47,47,47),(48,48,48),(49,49,49),(50,50,50), (51,51,51),(52,52,52),(53,53,53),(54,54,54),(55,55,55), (56,56,56),(57,57,57),(58,58,58),(59,59,59),(60,60,60), (61,61,61),(62,62,62),(63,63,63),(64,64,64),(65,65,65), (66,66,66),(67,67,67),(68,68,68),(69,69,69),(70,70,70), (71,71,71),(72,72,72),(73,73,73),(74,74,74),(75,75,75), (76,76,76),(77,77,77),(78,78,78),(79,79,79),(80,80,80), (81,81,81),(82,82,82),(83,83,83),(84,84,84),(85,85,85), (86,86,86),(87,87,87),(88,88,88),(89,89,89),(90,90,90), (91,91,91),(92,92,92),(93,93,93),(94,94,94),(95,95,95), (96,96,96),(97,97,97),(98,98,98),(99,99,99),(100,100,100), (101,101,101),(102,102,102),(103,103,103),(104,104,104),(105,105,105), (106,106,106),(107,107,107),(108,108,108),(109,109,109),(110,110,110), (111,111,111),(112,112,112),(113,113,113),(114,114,114),(115,115,115), (116,116,116),(117,117,117),(118,118,118),(119,119,119),(120,120,120), (121,121,121),(122,122,122),(123,123,123),(124,124,124),(125,125,125), (126,126,126),(127,127,127),(128,128,128),(129,129,129),(130,130,130), (131,131,131),(132,132,132),(133,133,133),(134,134,134),(135,135,135), (136,136,136),(137,137,137),(138,138,138),(139,139,139),(140,140,140), (141,141,141),(142,142,142),(143,143,143),(144,144,144),(145,145,145), (146,146,146),(147,147,147),(148,148,148),(149,149,149),(150,150,150), (151,151,151),(152,152,152),(153,153,153),(154,154,154),(155,155,155), (156,156,156),(157,157,157),(158,158,158),(159,159,159),(160,160,160), (161,161,161),(162,162,162),(163,163,163),(164,164,164),(165,165,165), (166,166,166),(167,167,167),(168,168,168),(169,169,169),(170,170,170), (171,171,171),(172,172,172),(173,173,173),(174,174,174),(175,175,175), (176,176,176),(177,177,177),(178,178,178),(179,179,179),(180,180,180), (181,181,181),(182,182,182),(183,183,183),(184,184,184),(185,185,185), (186,186,186),(187,187,187),(188,188,188),(189,189,189),(190,190,190), (191,191,191),(192,192,192),(193,193,193),(194,194,194),(195,195,195), (196,196,196),(197,197,197),(198,198,198),(199,199,199),(200,200,200), (201,201,201),(202,202,202),(203,203,203),(204,204,204),(205,205,205), (206,206,206),(207,207,207),(208,208,208),(209,209,209),(210,210,210), (211,211,211),(212,212,212),(213,213,213),(214,214,214),(215,215,215), (216,216,216),(217,217,217),(218,218,218),(219,219,219),(220,220,220), (221,221,221),(222,222,222),(223,223,223),(224,224,224),(225,225,225), (226,226,226),(227,227,227),(228,228,228),(229,229,229),(230,230,230), (231,231,231),(232,232,232),(233,233,233),(234,234,234),(235,235,235), (236,236,236),(237,237,237),(238,238,238),(239,239,239),(240,240,240), (241,241,241),(242,242,242),(243,243,243),(244,244,244),(245,245,245), (246,246,246),(247,247,247),(248,248,248),(249,249,249),(250,250,250), (251,251,251),(252,252,252),(253,253,253),(254,254,254),(255,255,255), (256,256,256),(257,257,257),(258,258,258),(259,259,259),(260,260,260), (261,261,261),(262,262,262),(263,263,263),(264,264,264),(265,265,265), (266,266,266),(267,267,267),(268,268,268),(269,269,269),(270,270,270), (271,271,271),(272,272,272),(273,273,273),(274,274,274),(275,275,275), (276,276,276),(277,277,277),(278,278,278),(279,279,279),(280,280,280), (281,281,281),(282,282,282),(283,283,283),(284,284,284),(285,285,285), (286,286,286),(287,287,287),(288,288,288),(289,289,289),(290,290,290), (291,291,291),(292,292,292),(293,293,293),(294,294,294),(295,295,295), (296,296,296),(297,297,297),(298,298,298),(299,299,299),(300,300,300), (301,301,301),(302,302,302),(303,303,303),(304,304,304),(305,305,305), (306,306,306),(307,307,307),(308,308,308),(309,309,309),(310,310,310), (311,311,311),(312,312,312),(313,313,313),(314,314,314),(315,315,315), (316,316,316),(317,317,317),(318,318,318),(319,319,319),(320,320,320), (321,321,321),(322,322,322),(323,323,323),(324,324,324),(325,325,325), (326,326,326),(327,327,327),(328,328,328),(329,329,329),(330,330,330), (331,331,331),(332,332,332),(333,333,333),(334,334,334),(335,335,335), (336,336,336),(337,337,337),(338,338,338),(339,339,339),(340,340,340), (341,341,341),(342,342,342),(343,343,343),(344,344,344),(345,345,345), (346,346,346),(347,347,347),(348,348,348),(349,349,349),(350,350,350), (351,351,351),(352,352,352),(353,353,353),(354,354,354),(355,355,355), (356,356,356),(357,357,357),(358,358,358),(359,359,359),(360,360,360), (361,361,361),(362,362,362),(363,363,363),(364,364,364),(365,365,365), (366,366,366),(367,367,367),(368,368,368),(369,369,369),(370,370,370), (371,371,371),(372,372,372),(373,373,373),(374,374,374),(375,375,375), (376,376,376),(377,377,377),(378,378,378),(379,379,379),(380,380,380), (381,381,381),(382,382,382),(383,383,383),(384,384,384),(385,385,385), (386,386,386),(387,387,387),(388,388,388),(389,389,389),(390,390,390), (391,391,391),(392,392,392),(393,393,393),(394,394,394),(395,395,395), (396,396,396),(397,397,397),(398,398,398),(399,399,399),(400,400,400), (401,401,401),(402,402,402),(403,403,403),(404,404,404),(405,405,405), (406,406,406),(407,407,407),(408,408,408),(409,409,409),(410,410,410), (411,411,411),(412,412,412),(413,413,413),(414,414,414),(415,415,415), (416,416,416),(417,417,417),(418,418,418),(419,419,419),(420,420,420), (421,421,421),(422,422,422),(423,423,423),(424,424,424),(425,425,425), (426,426,426),(427,427,427),(428,428,428),(429,429,429),(430,430,430), (431,431,431),(432,432,432),(433,433,433),(434,434,434),(435,435,435), (436,436,436),(437,437,437),(438,438,438),(439,439,439),(440,440,440), (441,441,441),(442,442,442),(443,443,443),(444,444,444),(445,445,445), (446,446,446),(447,447,447),(448,448,448),(449,449,449),(450,450,450), (451,451,451),(452,452,452),(453,453,453),(454,454,454),(455,455,455), (456,456,456),(457,457,457),(458,458,458),(459,459,459),(460,460,460), (461,461,461),(462,462,462),(463,463,463),(464,464,464),(465,465,465), (466,466,466),(467,467,467),(468,468,468),(469,469,469),(470,470,470), (471,471,471),(472,472,472),(473,473,473),(474,474,474),(475,475,475), (476,476,476),(477,477,477),(478,478,478),(479,479,479),(480,480,480), (481,481,481),(482,482,482),(483,483,483),(484,484,484),(485,485,485), (486,486,486),(487,487,487),(488,488,488),(489,489,489),(490,490,490), (491,491,491),(492,492,492),(493,493,493),(494,494,494),(495,495,495), (496,496,496),(497,497,497),(498,498,498),(499,499,499),(500, 500, 500); SELECT COUNT(*) FROM t1; # # Test error cases with size numbers # --error ER_WRONG_SIZE_NUMBER CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 10y engine = ndb; --error ER_WRONG_SIZE_NUMBER CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 10MB engine=ndb; --error 1064 CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 10 MB engine=ndb; --error 1064 CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 10 M engine=ndb; --error ER_SIZE_OVERFLOW_ERROR CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'x.dat' INITIAL_SIZE 1000000000000K engine=ndb; DROP TABLE t1; # Test update of mm/dd part create table t1 (a int primary key, b char(4) not null, c char(4) not null, key(b)) tablespace ts1 storage disk engine ndb; insert into t1 values (1,'1','1'), (2,'2','2'), (3,'3','3'); begin; update t1 set b = '2' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; update t1 set c = '2' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; update t1 set b = '3' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; commit; select * from t1 order by 1; begin; update t1 set c = '3' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; update t1 set b = '4' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; update t1 set c = '4' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; commit; select * from t1 order by 1; update t1 set b = '5' where a = 1; select * from t1 order by 1; update t1 set b = '6' where b = '5'; select * from t1 order by 1; update t1 set b = '7' where c = '4'; select * from t1 order by 1; update t1 set c = '5' where a = 1; select * from t1 order by 1; update t1 set c = '6' where b = '7'; select * from t1 order by 1; update t1 set c = '7' where c = '6'; select * from t1 order by 1; drop table t1; create table t1 (a int primary key, b varchar(4) not null, c char(4) not null, key(b)) tablespace ts1 storage disk engine ndb; insert into t1 values (1,'1','1'), (2,'2','2'), (3,'3','3'); begin; update t1 set b = '2' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; update t1 set c = '2' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; update t1 set b = '3' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; commit; select * from t1 order by 1; begin; update t1 set c = '3' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; update t1 set b = '4' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; update t1 set c = '4' where a = 1; select b from t1 where a = 1; select * from t1 where a = 1; commit; select * from t1 order by 1; update t1 set b = '5' where a = 1; select * from t1 order by 1; update t1 set b = '6' where b = '5'; select * from t1 order by 1; update t1 set b = '7' where c = '4'; select * from t1 order by 1; update t1 set c = '5' where a = 1; select * from t1 order by 1; update t1 set c = '6' where b = '7'; select * from t1 order by 1; update t1 set c = '7' where c = '6'; select * from t1 order by 1; drop table t1; alter tablespace ts1 drop datafile 'datafile.dat' engine = ndb; alter tablespace ts1 drop datafile 'datafile02.dat' engine = ndb; drop tablespace ts1 engine = ndb; drop logfile group lg1 engine = ndb; --- New file --- +++ sql/sql_tablespace.cc 05/12/23 15:32:41 /* Copyright (C) 2000-2004 MySQL AB 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; either version 2 of the License, or (at your option) any later version. 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* drop and alter of tablespaces */ #include "mysql_priv.h" int mysql_alter_tablespace(THD *thd, st_alter_tablespace *ts_info) { int error; handler *file; handlerton *hton; DBUG_ENTER("mysql_alter_tablespace"); /* If the user haven't defined an engine, this will fallback to using the default storage engine. */ hton= ha_resolve_by_legacy_type(thd, ts_info->storage_engine); if (!(file= get_new_handler((TABLE_SHARE*)NULL, thd->mem_root, hton))) { my_error(ER_OUTOFMEMORY, MYF(0), 128); DBUG_RETURN(1); } if ((error= file->alter_tablespace(ts_info))) { if (error == HA_ADMIN_NOT_IMPLEMENTED) { my_error(ER_CHECK_NOT_IMPLEMENTED, MYF(0), ""); } else if (error == 1) { DBUG_RETURN(1); } else { my_error(error, MYF(0)); } DBUG_RETURN(error); } DBUG_RETURN(FALSE); }