From: Date: October 9 2006 5:03am Subject: bk commit into 5.1 tree (gni:1.2296) BUG#14612 List-Archive: http://lists.mysql.com/commits/13322 X-Bug: 14612 Message-Id: <200610090303.k9933dIA007632@dev3-127> Below is the list of changes that have just been committed into a local 5.1 repository of root. When root 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@stripped, 2006-10-09 11:01:33+08:00, gni@dev3-127.(none) +2 -0 BUG #14612 If a restore is done on a slave cluster, yet the apply_status and schema tables don't exist, ndb_restore should create the apply_status and schema table. storage/ndb/tools/restore/consumer_restore.cpp@stripped, 2006-10-09 11:01:28+08:00, gni@dev3-127.(none) +7 -0 If the apply_status and schema tables in cluster database have existed, don't create them again and immediately return true. storage/ndb/tools/restore/restore_main.cpp@stripped, 2006-10-09 11:01:28+08:00, gni@dev3-127.(none) +9 -1 if the system table is apply_status or schema and they don't exist, they will be created. # 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: gni # Host: dev3-127.(none) # Root: /mnt/mysql/home/ngb/mysql-5.1/mysql-5.1-bug14612 --- 1.45/storage/ndb/tools/restore/restore_main.cpp 2006-10-09 11:02:41 +08:00 +++ 1.46/storage/ndb/tools/restore/restore_main.cpp 2006-10-09 11:02:41 +08:00 @@ -554,7 +554,15 @@ debug << "Restoring tables" << endl; for(i = 0; igetTableName(); + bool isCheckSysTable = true; + + if( strcmp(tablename, NDB_REP_DB "/def/" NDB_APPLY_TABLE) == 0 || + strcmp(tablename, NDB_REP_DB "/def/" NDB_SCHEMA_TABLE)== 0 ){ + isCheckSysTable = false; + } + + if (!isCheckSysTable || checkSysTable(metaData, i)) { for(Uint32 j= 0; j < g_consumers.size(); j++) if (!g_consumers[j]->table(* metaData[i])) --- 1.35/storage/ndb/tools/restore/consumer_restore.cpp 2006-10-09 11:02:41 +08:00 +++ 1.36/storage/ndb/tools/restore/consumer_restore.cpp 2006-10-09 11:02:41 +08:00 @@ -693,6 +693,13 @@ NdbDictionary::Dictionary* dict = m_ndb->getDictionary(); if(m_restore_meta) { + if( ( dict->getTable(split[2].c_str()) != NULL ) && + ( strcmp(name, NDB_REP_DB "/def/" NDB_APPLY_TABLE) == 0 || + strcmp(name, NDB_REP_DB "/def/" NDB_SCHEMA_TABLE)== 0 ) + ){ + return true; + } + NdbDictionary::Table copy(*table.m_dictTable); copy.setName(split[2].c_str());