From: Pekka Nousiainen Date: June 12 2011 4:52pm Subject: bzr commit into mysql-5.1-telco-7.0-wl4124-new0 branch (pekka.nousiainen:4395) WL#4124 List-Archive: http://lists.mysql.com/commits/139113 Message-Id: <20110612165204.83DC85586E@sama.localdomain> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1079292780==" --===============1079292780== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/space/pekka/ms/ms-wl4124-70/ based on revid:jonas@stripped 4395 Pekka Nousiainen 2011-06-12 wl#4124 d04_systab.diff use schema trans for create and drop modified: storage/ndb/src/ndbapi/NdbIndexStatImpl.cpp === modified file 'storage/ndb/src/ndbapi/NdbIndexStatImpl.cpp' --- a/storage/ndb/src/ndbapi/NdbIndexStatImpl.cpp 2011-06-07 10:03:02 +0000 +++ b/storage/ndb/src/ndbapi/NdbIndexStatImpl.cpp 2011-06-12 16:51:59 +0000 @@ -101,6 +101,10 @@ NdbIndexStatImpl::Sys::~Sys() void NdbIndexStatImpl::sys_release(Sys& sys) { + // close schema trans if any exists + NdbDictionary::Dictionary* const dic = sys.m_dic; + (void)dic->endSchemaTrans(NdbDictionary::Dictionary::SchemaTransAbort); + if (sys.m_headtable != 0) { sys.m_dic->removeTableGlobal(*sys.m_headtable, false); @@ -382,7 +386,13 @@ NdbIndexStatImpl::create_systables(Ndb* return -1; } - NdbDictionary::Dictionary* const dic = ndb->getDictionary(); + NdbDictionary::Dictionary* const dic = sys.m_dic; + + if (dic->beginSchemaTrans() == -1) + { + setError(dic->getNdbError().code, __LINE__); + return -1; + } { NdbDictionary::Table tab; @@ -406,6 +416,19 @@ NdbIndexStatImpl::create_systables(Ndb* NdbDictionary::Table tab; if (make_sampletable(tab) == -1) return -1; + +#ifdef VM_TRACE + // test of schema trans + { + const char* p = NdbEnv_GetEnv("NDB_INDEX_STAT_ABORT_SYS_CREATE", (char*)0, 0); + if (p != 0 && strchr("1Y", p[0]) != 0) + { + setError(9999, __LINE__); + return -1; + } + } +#endif + if (dic->createTable(tab) == -1) { setError(dic->getNdbError().code, __LINE__); @@ -438,6 +461,12 @@ NdbIndexStatImpl::create_systables(Ndb* } } + if (dic->endSchemaTrans() == -1) + { + setError(dic->getNdbError().code, __LINE__); + return -1; + } + return 0; } @@ -450,7 +479,13 @@ NdbIndexStatImpl::drop_systables(Ndb* nd m_error.code != BadSysTables) return -1; - NdbDictionary::Dictionary* const dic = ndb->getDictionary(); + NdbDictionary::Dictionary* const dic = sys.m_dic; + + if (dic->beginSchemaTrans() == -1) + { + setError(dic->getNdbError().code, __LINE__); + return -1; + } if (sys.m_headtable != 0) { @@ -463,12 +498,31 @@ NdbIndexStatImpl::drop_systables(Ndb* nd if (sys.m_sampletable != 0) { + +#ifdef VM_TRACE + // test of schema trans + { + const char* p = NdbEnv_GetEnv("NDB_INDEX_STAT_ABORT_SYS_DROP", (char*)0, 0); + if (p != 0 && strchr("1Y", p[0]) != 0) + { + setError(9999, __LINE__); + return -1; + } + } +#endif + if (dic->dropTableGlobal(*sys.m_sampletable) == -1) { setError(dic->getNdbError().code, __LINE__); return -1; } } + + if (dic->endSchemaTrans() == -1) + { + setError(dic->getNdbError().code, __LINE__); + return -1; + } return 0; } --===============1079292780== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/pekka.nousiainen@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: pekka.nousiainen@stripped\ # tyspq1d3zmetrbsp # target_branch: file:///export/space/pekka/ms/ms-wl4124-70/ # testament_sha1: e1e3bce95542dbc8e9c3b678f4814754b4cd6a39 # timestamp: 2011-06-12 19:52:04 +0300 # source_branch: bzr+ssh://pnousiainen@stripped/bzrroot\ # /server/mysql-5.1-telco-7.0/ # base_revision_id: jonas@stripped # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWYBBs0wAAqdfgFQQeXf//36n 3Wq////6UAWe6o1u2xGOmtA0FOElQnqGgjAmmE2pmmjSMgMCYmmmCGmjBKRFPymaZTIbShk9IAAA DQAAAAShGhJtTRpoUek8U2UaHqAaABpoaAaAOMmTQxGJowCMBMIAwE00aZGgGEkhJ6AmIZNGpiNB ME1NPRHoAjNJ4kG1NRIIWPv82ca8DHhpiwzM7v1/cl285QHmHkTjh5qFBhd1xK4xLMJBQgVMj0iI mPHZCW5YNRWd9+bASQPSETFBvNxkChiPKHgJ2x585WZgHEpk6D8yxKZsmuReZ5zhFpKhOLuQUeCv ZeY0vDKmQ58xaL6uzHR6F+NkF9vzLu8X5QfJjEnKiiCqKDpLFWSFgVAscLvLBzcnx+pT2DGRw5Ed 4VlJmP9MAcJnicDBUZQ3fcpAwNX9BEYx4FQGBIaw9I85ysR1HARBEs2kEEKmwn5NnMFTnNwhXCgk 0vuKoErao0hr7cs8AWdjbocGUZ+28E6Tpg8zw6i6Ak4MjTvZKn4IE4cPRUtUsi0UNsPVEmCTbbxF zWglEhFyokDdaYcDB1sFHUmJKUzYPGIlgnO7SluFURHRLufG/T9CwjowVWpsTVWCeKvO49RnjpJc ml6hfKjPLAzKCjMPBlpYrB2bOsdJK+TUyX7JCPjKtRPbsxEiSS2LNM5aSWmJKiQjYuceC77hRCYs SQrjAqZnWvKKDDKJVLSwGKGrEi2dZO6Gs6ClKuVCY3ixGroEnrgz7GXRVdKWPyJYMy3VGB8YtkCj E2UvRmMd6Yi0L7kgTl6cliUtNLRteLyILlNNbYBZSuEC3GTFZKiTrlTqF0sT0FsDvlbVvuyRw3lY 4HIhoC5cLnjkWdUGLHgkmmshwm6vyXiiMKMweM0coe4GQ3PnNXBRw397acbJdYRS7DxP3/BJTayY /k+xkcS+INtXMDd5RTROSiuJRMKYPATnvF/ZoPEC9dDEQg6nqPxbYW2QKg+ZjgMS/n/DTEYqOsVZ qNxE9p0EwsxA+hoIC4jDiSBSRPrtoVG0XH9MQsX8zoNJMC9f9WmC5O05Zq7knSmV6PmgtlfmYQ1v BYFCIgspLS5xqj25a7jehesfeezyPdGJyc14u7tEagWwqcfDNQeatN1sVTE1azmZ9pynGHASwskq JL3oiaOkgkEVwMW5s8dNcqZZBZHkqvitOuGBFOXckMj6BAzPWVXB8mD0qBn5iSnrLrkqDTSIwNgd nSV7rlQt6nnGXXuvoablR0eZ3v3H7DLGM5osMfDECviaTpcViIgPX1LD1plTpvy1bMIDfkkFpB4p hE25iKhKa2FaNuNRsNvV6jISjKX/tuXBlxSpseB5vFwBOUcRgDBMwisYqQa43kQMMAXSMnZveBq/ jnTBNEvDsG3j1n1hkCTcdqMTUBd1bNb7wnA5A93HDpiF+w6qwNJgE+wD1cN3b3hvWQH2BY8Ma0mM L+yGTOInb9FMI41NfR1ibCWSQ53G/oUEhZNFRGG41BOKwiDpqOj4xqo5RkDXlSmEQRIiRl7wcuVS cvEtIW2j+uAKUF5hpeiKlYRclyIevRresc3d1pcI/oMxLAYbc3aoLhZlA2m0Z/TGfVFa6LlviKaA vYPCaZ44Q4NqmeCuuD5CYUrFMqPM8gq9Ggq5qlaKh9duwRxiI9kztqaxMMjgKGS0/BQB8LrAmsm6 M9xcDudrogcoOpV+tG1cwg916CkF8RaFbysGSmGCJ1batG0BVCNpI+LEj7Jw5IXz1DzYBMihShSJ 49ouVcBWC7jR7VjNYLdYBQlOFK5Xq2qQnZEMiQ/ooVAtoOz9uYyCOwBacgsFCz/F3JFOFCQgEGzT AA== --===============1079292780==--