Below is the list of changes that have just been committed into a local
5.1 repository of jonas. When jonas 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, 2008-02-06 21:12:35+01:00, jonas@stripped +2 -0
ndb - wl3600 [ 9 / 11 ]
Parse
This patch makes it explicit if parse is called on master/participant
by adding an extra argument to OpInfo::parse(bool master)
This removes need for parse-implementations to look at trans_ptr.p->m_isMaster
---
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp | 93 ++++++++++++++++--------
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp | 30 +++++--
2 files changed, 83 insertions(+), 40 deletions(-)
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp@stripped, 2008-02-06 21:12:33+01:00, jonas@stripped +63 -30
Parse
This patch makes it explicit if parse is called on master/participant
by adding an extra argument to OpInfo::parse(bool master)
This removes need for parse-implementations to look at trans_ptr.p->m_isMaster
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp@stripped, 2008-02-06 21:12:33+01:00, jonas@stripped +20 -10
Parse
This patch makes it explicit if parse is called on master/participant
by adding an extra argument to OpInfo::parse(bool master)
This removes need for parse-implementations to look at trans_ptr.p->m_isMaster
diff -Nrup a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2008-02-06 21:11:29 +01:00
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2008-02-06 21:12:33 +01:00
@@ -4984,7 +4984,8 @@ Dbdict::execCREATE_TABLE_REQ(Signal* sig
// CreateTable: PARSE
void
-Dbdict::createTable_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::createTable_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("createTable_parse");
@@ -5007,7 +5008,8 @@ Dbdict::createTable_parse(Signal* signal
* The new DictTabInfo (sec 0) and the fragmentation (sec 1) are
* sent to all participants when master parse returns.
*/
- if (trans_ptr.p->m_isMaster) {
+ if (master)
+ {
jam();
// parse client DictTabInfo into new TableRecord
@@ -5158,7 +5160,8 @@ Dbdict::createTable_parse(Signal* signal
}
// wl3600_todo parse the rewritten DictTabInfo in master too
- if (!trans_ptr.p->m_isMaster) {
+ if (!master)
+ {
jam();
createTabPtr.p->m_request.tableId = tableId;
@@ -5171,7 +5174,8 @@ Dbdict::createTable_parse(Signal* signal
bool checkExist = true;
handleTabInfoInit(r, &parseRecord, checkExist);
- if (parseRecord.errorCode != 0) {
+ if (parseRecord.errorCode != 0)
+ {
jam();
setError(error, parseRecord);
return;
@@ -5229,8 +5233,8 @@ Dbdict::createTable_parse(Signal* signal
}
D("createTable_parse: "
- << copyRope<MAX_TAB_NAME_SIZE>(tabPtr.p->tableName)
- << V(tabPtr.p->tableVersion));
+ << copyRope<MAX_TAB_NAME_SIZE>(tabPtr.p->tableName)
+ << V(tabPtr.p->tableVersion));
}
bool
@@ -6340,7 +6344,8 @@ Dbdict::execDROP_TABLE_REQ(Signal* signa
// DropTable: PARSE
void
-Dbdict::dropTable_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::dropTable_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("dropTable_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -7160,7 +7165,8 @@ Dbdict::execALTER_TABLE_REQ(Signal* sign
// AlterTable: PARSE
void
-Dbdict::alterTable_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::alterTable_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("alterTable_parse");
@@ -7268,12 +7274,16 @@ Dbdict::alterTable_parse(Signal* signal,
return;
}
- if (trans_ptr.p->m_isMaster) {
+ if (master)
+ {
jam();
impl_req->noOfNewAttr = noOfNewAttr;
impl_req->newNoOfCharsets = newTablePtr.p->noOfCharsets;
impl_req->newNoOfKeyAttrs = newTablePtr.p->noOfPrimkey;
- } else {
+ }
+ else
+ {
+ jam();
ndbrequire(impl_req->noOfNewAttr == noOfNewAttr);
}
@@ -7310,7 +7320,8 @@ Dbdict::alterTable_parse(Signal* signal,
}
// master rewrites DictTabInfo (it is re-parsed only on slaves)
- if (trans_ptr.p->m_isMaster) {
+ if (master)
+ {
jam();
releaseSections(handle);
SimplePropertiesSectionWriter w(getSectionSegmentPool());
@@ -8637,7 +8648,8 @@ Dbdict::execCREATE_INDX_REQ(Signal* sign
// CreateIndex: PARSE
void
-Dbdict::createIndex_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::createIndex_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("createIndex_parse");
@@ -9338,7 +9350,8 @@ Dbdict::execDROP_INDX_REQ(Signal* signal
// DropIndex: PARSE
void
-Dbdict::dropIndex_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::dropIndex_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("dropIndex_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -9386,16 +9399,22 @@ Dbdict::dropIndex_parse(Signal* signal,
c_tableRecordPool.getPtr(tablePtr, indexPtr.p->primaryTableId);
// master sets primary table, slave verifies it agrees
- if (reference() == impl_req->senderRef) {
+ if (master)
+ {
+ jam();
impl_req->tableId = tablePtr.p->tableId;
impl_req->tableVersion = tablePtr.p->tableVersion;
- } else {
- if (impl_req->tableId != tablePtr.p->tableId) {
+ }
+ else
+ {
+ if (impl_req->tableId != tablePtr.p->tableId)
+ {
jam(); // wl3600_todo better error code
setError(error, DropIndxRef::InvalidIndexVersion, __LINE__);
return;
}
- if (impl_req->tableVersion != tablePtr.p->tableVersion) {
+ if (impl_req->tableVersion != tablePtr.p->tableVersion)
+ {
jam(); // wl3600_todo better error code
setError(error, DropIndxRef::InvalidIndexVersion, __LINE__);
return;
@@ -9797,7 +9816,8 @@ Dbdict::g_buildIndexConstraintTmpl[1] =
// AlterIndex: PARSE
void
-Dbdict::alterIndex_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::alterIndex_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("alterIndex_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -9838,9 +9858,13 @@ Dbdict::alterIndex_parse(Signal* signal,
return;
}
- if (trans_ptr.p->m_isMaster) {
+ if (master)
+ {
+ jam();
impl_req->indexType = indexPtr.p->tableType;
- } else {
+ }
+ else
+ {
jam();
ndbrequire(impl_req->indexType == (Uint32)indexPtr.p->tableType);
}
@@ -9856,16 +9880,22 @@ Dbdict::alterIndex_parse(Signal* signal,
c_tableRecordPool.getPtr(tablePtr, indexPtr.p->primaryTableId);
// master sets primary table, participant verifies it agrees
- if (trans_ptr.p->m_isMaster) {
+ if (master)
+ {
+ jam();
impl_req->tableId = tablePtr.p->tableId;
impl_req->tableVersion = tablePtr.p->tableVersion;
- } else {
- if (impl_req->tableId != tablePtr.p->tableId) {
+ }
+ else
+ {
+ if (impl_req->tableId != tablePtr.p->tableId)
+ {
jam(); // wl3600_todo better error code
setError(error, AlterIndxRef::InvalidIndexVersion, __LINE__);
return;
}
- if (impl_req->tableVersion != tablePtr.p->tableVersion) {
+ if (impl_req->tableVersion != tablePtr.p->tableVersion)
+ {
jam(); // wl3600_todo better error code
setError(error, AlterIndxRef::InvalidIndexVersion, __LINE__);
return;
@@ -10646,7 +10676,8 @@ Dbdict::execBUILDINDXREQ(Signal* signal)
// BuildIndex: PARSE
void
-Dbdict::buildIndex_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::buildIndex_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("buildIndex_parse");
@@ -13701,7 +13732,8 @@ Dbdict::execCREATE_TRIG_REQ(Signal* sign
// CreateTrigger: PARSE
void
-Dbdict::createTrigger_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::createTrigger_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("createTrigger_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -13800,7 +13832,7 @@ Dbdict::createTrigger_parse(Signal* sign
}
TriggerRecordPtr triggerPtr;
- if (trans_ptr.p->m_isMaster)
+ if (master)
{
jam();
if (impl_req->triggerId == RNIL)
@@ -14444,7 +14476,8 @@ Dbdict::execDROP_TRIG_REQ(Signal* signal
// DropTrigger: PARSE
void
-Dbdict::dropTrigger_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::dropTrigger_parse(Signal* signal, bool master,
+ SchemaOpPtr op_ptr,
SectionHandle& handle, ErrorInfo& error)
{
D("dropTrigger_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -19359,7 +19392,7 @@ Dbdict::handleClientReq(Signal* signal,
ErrorInfo error;
const OpInfo& info = getOpInfo(op_ptr);
- (this->*(info.m_parse))(signal, op_ptr, handle, error);
+ (this->*(info.m_parse))(signal, true, op_ptr, handle, error);
if (hasError(error)) {
jam();
@@ -20178,7 +20211,7 @@ Dbdict::recvTransParseReq(Signal* signal
Uint32* dst = oprec_ptr.p->m_impl_req_data;
memcpy(dst, src, len << 2);
- (this->*(info.m_parse))(signal, op_ptr, handle, error);
+ (this->*(info.m_parse))(signal, false, op_ptr, handle, error);
if (!hasError(error)) {
jam();
updateSchemaOpStep(trans_ptr, op_ptr);
diff -Nrup a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp 2008-02-06 21:10:05 +01:00
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp 2008-02-06 21:12:33 +01:00
@@ -1315,7 +1315,8 @@ private:
void (Dbdict::*m_release)(SchemaOpPtr);
// parse phase
- void (Dbdict::*m_parse)(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void (Dbdict::*m_parse)(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
bool (Dbdict::*m_subOps)(Signal*, SchemaOpPtr);
void (Dbdict::*m_reply)(Signal*, SchemaOpPtr, ErrorInfo);
@@ -2182,7 +2183,8 @@ private:
bool createTable_seize(SchemaOpPtr);
void createTable_release(SchemaOpPtr);
//
- void createTable_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void createTable_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
bool createTable_subOps(Signal*, SchemaOpPtr);
void createTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
//
@@ -2243,7 +2245,8 @@ private:
bool dropTable_seize(SchemaOpPtr);
void dropTable_release(SchemaOpPtr);
//
- void dropTable_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void dropTable_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
bool dropTable_subOps(Signal*, SchemaOpPtr);
void dropTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
//
@@ -2331,7 +2334,8 @@ private:
bool alterTable_seize(SchemaOpPtr);
void alterTable_release(SchemaOpPtr);
//
- void alterTable_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void alterTable_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
bool alterTable_subOps(Signal*, SchemaOpPtr);
void alterTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
//
@@ -2411,7 +2415,8 @@ private:
bool createIndex_seize(SchemaOpPtr);
void createIndex_release(SchemaOpPtr);
//
- void createIndex_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void createIndex_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
bool createIndex_subOps(Signal*, SchemaOpPtr);
void createIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
//
@@ -2462,7 +2467,8 @@ private:
bool dropIndex_seize(SchemaOpPtr);
void dropIndex_release(SchemaOpPtr);
//
- void dropIndex_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void dropIndex_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
bool dropIndex_subOps(Signal*, SchemaOpPtr);
void dropIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
//
@@ -2533,7 +2539,8 @@ private:
bool alterIndex_seize(SchemaOpPtr);
void alterIndex_release(SchemaOpPtr);
//
- void alterIndex_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void alterIndex_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
bool alterIndex_subOps(Signal*, SchemaOpPtr);
void alterIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
//
@@ -2608,7 +2615,8 @@ private:
bool buildIndex_seize(SchemaOpPtr);
void buildIndex_release(SchemaOpPtr);
//
- void buildIndex_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void buildIndex_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
bool buildIndex_subOps(Signal*, SchemaOpPtr);
void buildIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
//
@@ -2790,7 +2798,8 @@ private:
bool createTrigger_seize(SchemaOpPtr);
void createTrigger_release(SchemaOpPtr);
//
- void createTrigger_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void createTrigger_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
void createTrigger_parse_endpoint(Signal*, SchemaOpPtr op_ptr, ErrorInfo&);
bool createTrigger_subOps(Signal*, SchemaOpPtr);
void createTrigger_toCreateEndpoint(Signal*, SchemaOpPtr,
@@ -2845,7 +2854,8 @@ private:
bool dropTrigger_seize(SchemaOpPtr);
void dropTrigger_release(SchemaOpPtr);
//
- void dropTrigger_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+ void dropTrigger_parse(Signal*, bool master,
+ SchemaOpPtr, SectionHandle&, ErrorInfo&);
void dropTrigger_parse_endpoint(Signal*, SchemaOpPtr op_ptr, ErrorInfo&);
bool dropTrigger_subOps(Signal*, SchemaOpPtr);
void dropTrigger_toDropEndpoint(Signal*, SchemaOpPtr,
| Thread |
|---|
| • bk commit into 5.1 tree (jonas:1.2849) | jonas | 6 Feb |