Below is the list of changes that have just been committed into a local
5.1 repository of pekka. When pekka 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, 2007-01-26 17:18:31+01:00, pekka@stripped +10 -0
ndb - wl#3600 sub-op feedback at parse
avoids ugly special-case code at trigger parse
storage/ndb/include/kernel/signaldata/CreateTrig.hpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +2 -1
wl#3600 sub-op feedback at parse
storage/ndb/include/kernel/signaldata/CreateTrigImpl.hpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +2 -1
wl#3600 sub-op feedback at parse
storage/ndb/include/kernel/signaldata/DropTrig.hpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +2 -1
wl#3600 sub-op feedback at parse
storage/ndb/include/kernel/signaldata/DropTrigImpl.hpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +2 -1
wl#3600 sub-op feedback at parse
storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +1 -0
wl#3600 sub-op feedback at parse
storage/ndb/src/common/debugger/signaldata/CreateTrigImpl.cpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +1 -0
wl#3600 sub-op feedback at parse
storage/ndb/src/common/debugger/signaldata/DropTrig.cpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +1 -0
wl#3600 sub-op feedback at parse
storage/ndb/src/common/debugger/signaldata/DropTrigImpl.cpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +1 -0
wl#3600 sub-op feedback at parse
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +143 -29
wl#3600 sub-op feedback at parse
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp@stripped, 2007-01-26 17:17:21+01:00, pekka@stripped +51 -1
wl#3600 sub-op feedback at parse
# 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: pekka
# Host: clam.(none)
# Root: /export/space/pekka/ndb/version/my52-wl3600-b
--- 1.7/storage/ndb/include/kernel/signaldata/CreateTrig.hpp 2007-01-20 13:13:49 +01:00
+++ 1.8/storage/ndb/include/kernel/signaldata/CreateTrig.hpp 2007-01-26 17:17:21 +01:00
@@ -41,7 +41,7 @@
CreateTriggerOffline = 2
};
- STATIC_CONST( SignalLength = 11 + MAXNROFATTRIBUTESINWORDS);
+ STATIC_CONST( SignalLength = 12 + MAXNROFATTRIBUTESINWORDS);
SECTION( TRIGGER_NAME_SECTION = 0 );
SECTION( ATTRIBUTE_MASK_SECTION = 1 ); // not yet in use
enum xxxKeyValues {//wl3600_todo use DictTabInfo
@@ -57,6 +57,7 @@
Uint32 tableVersion;
Uint32 indexId; // only for index trigger
Uint32 indexVersion;
+ Uint32 triggerNo; // only for index trigger
Uint32 triggerInfo; // type | timing | event | flags
Uint32 receiverRef; // receiver for subscription trigger
AttributeMask attributeMask;
--- 1.3/storage/ndb/include/kernel/signaldata/DropTrig.hpp 2007-01-17 15:21:23 +01:00
+++ 1.4/storage/ndb/include/kernel/signaldata/DropTrig.hpp 2007-01-26 17:17:21 +01:00
@@ -33,7 +33,7 @@
RT_TC = 5 << 8,
RT_LQH = 6 << 8
};
- STATIC_CONST( SignalLength = 10 );
+ STATIC_CONST( SignalLength = 11 );
SECTION( TRIGGER_NAME_SECTION = 0 ); // optional
enum xxxKeyValues {//wl3600_todo use DictTabInfo
TriggerNameKey = 0xa1
@@ -48,6 +48,7 @@
Uint32 tableVersion;
Uint32 indexId;
Uint32 indexVersion;
+ Uint32 triggerNo;
Uint32 triggerId;
};
--- 1.5/storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp 2007-01-16 12:39:53 +01:00
+++ 1.6/storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp 2007-01-26 17:17:21 +01:00
@@ -43,6 +43,7 @@
fprintf(output, " tableVersion: %x", sig->tableVersion);
fprintf(output, " indexId: %x", sig->indexId);
fprintf(output, " indexVersion: %x", sig->indexVersion);
+ fprintf(output, " triggerNo: %u", sig->triggerNo);
fprintf(output, "\n");
fprintf(output, " triggerInfo: %x", sig->triggerInfo);
fprintf(output, "\n");
--- 1.3/storage/ndb/src/common/debugger/signaldata/DropTrig.cpp 2007-01-17 15:21:23 +01:00
+++ 1.4/storage/ndb/src/common/debugger/signaldata/DropTrig.cpp 2007-01-26 17:17:21 +01:00
@@ -30,6 +30,7 @@
fprintf(output, " tableVersion: %x", sig->tableVersion);
fprintf(output, " indexId: %x", sig->indexId);
fprintf(output, " indexVersion: %x", sig->indexVersion);
+ fprintf(output, " triggerNo: %u", sig->triggerNo);
fprintf(output, "\n");
fprintf(output, " triggerId: %x", sig->triggerId);
fprintf(output, "\n");
--- 1.140/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2007-01-25 16:20:19 +01:00
+++ 1.141/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2007-01-26 17:17:21 +01:00
@@ -1975,13 +1975,19 @@
tablePtr.p->primaryTableId = RNIL;
// volatile elements
tablePtr.p->indexState = TableRecord::IS_UNDEFINED;
+ // wl3600_todo out
tablePtr.p->insertTriggerId = RNIL;
tablePtr.p->updateTriggerId = RNIL;
tablePtr.p->deleteTriggerId = RNIL;
tablePtr.p->customTriggerId = RNIL;
+ //
+ tablePtr.p->indexTriggerId[0] = RNIL;
+ tablePtr.p->indexTriggerId[1] = RNIL;
+ tablePtr.p->indexTriggerId[2] = RNIL;
+ tablePtr.p->indexTriggerCount = 0;
tablePtr.p->buildTriggerId = RNIL;
tablePtr.p->indexLocal = 0;
-}//Dbdict::initialiseTableRecord()
+}
void Dbdict::initTriggerRecords()
{
@@ -13268,7 +13274,7 @@
setError(error, AlterIndxRef::NotAnIndex, __LINE__);
return;
}
- alterIndexPtr.p->m_triggerNo = 0; // also in ctor
+ alterIndexPtr.p->m_triggerIndex = 0; // also in ctor
if (reference() == impl_req->senderRef) {
impl_req->indexType = indexPtr.p->tableType;
@@ -13330,12 +13336,14 @@
const AlterIndxImplReq* impl_req = &alterIndexPtr.p->m_request;
// ops to create or drop triggers
- if (alterIndexPtr.p->m_triggerNo < alterIndexPtr.p->m_triggerCount) {
+ if (alterIndexPtr.p->m_triggerIndex < alterIndexPtr.p->m_triggerCount) {
jam();
switch (impl_req->requestType) {
case AlterIndxImplReq::AlterIndexOnline:
jam();
{
+ alterIndexPtr.p->m_triggerNo =
+ alterIndexPtr.p->m_triggerIndex;
Callback c = {
safe_cast(&Dbdict::alterIndex_fromCreateTrigger),
op_ptr.p->op_key
@@ -13347,6 +13355,9 @@
case AlterIndxImplReq::AlterIndexOffline:
jam();
{
+ alterIndexPtr.p->m_triggerNo =
+ alterIndexPtr.p->m_triggerCount - 1 -
+ alterIndexPtr.p->m_triggerIndex;
Callback c = {
safe_cast(&Dbdict::alterIndex_fromDropTrigger),
op_ptr.p->op_key
@@ -13361,6 +13372,8 @@
}
return true;
}
+ ndbrequire(alterIndexPtr.p->m_triggerIndex ==
+ alterIndexPtr.p->m_triggerCount);
if (impl_req->requestType == AlterIndxImplReq::AlterIndexOnline &&
!alterIndexPtr.p->m_sub_build_index) {
@@ -13374,7 +13387,6 @@
return true;
}
- ndbrequire(alterIndexPtr.p->m_triggerNo == alterIndexPtr.p->m_triggerCount);
return false;
}
@@ -13393,15 +13405,20 @@
CreateTrigReq* req = (CreateTrigReq*)signal->getDataPtrSend();
+ Uint32 requestInfo = 0;
+ setRequestType(requestInfo, CreateTrigReq::CreateTriggerOnline);
+ setFeedbackId(requestInfo, AlterIndex_atCreateTrigger);
+
req->clientRef = reference();
req->clientData = op_ptr.p->op_key;
req->transId = trans_ptr.p->m_transId;
req->transKey = trans_ptr.p->trans_key;
- req->requestType = CreateTrigReq::CreateTriggerOnline;
+ req->requestType = requestInfo;
req->tableId = impl_req->tableId;
req->tableVersion = impl_req->tableVersion;
req->indexId = impl_req->indexId;
req->indexVersion = impl_req->indexVersion;
+ req->triggerNo = triggerNo;
TriggerInfo::setTriggerInfo(req->triggerInfo, triggerTmpl.triggerStruct);
@@ -13425,6 +13442,37 @@
}
void
+Dbdict::alterIndex_atCreateTrigger(Signal* signal, SchemaOpPtr op_ptr)
+{
+ /*
+ * Index trigger req has been parsed on this participant.
+ * Connect the index and the trigger on this node. Trigger
+ * number comes in the signal because we have no access to
+ * trigger counter in coordinator. There is a counter under
+ * index record but it is better to use it for verification.
+ */
+ CreateTriggerDataPtr createTriggerPtr;
+ getOpData(op_ptr, createTriggerPtr);
+ const CreateTrigImplReq* impl_req = &createTriggerPtr.p->m_request;
+
+ TriggerRecordPtr triggerPtr;
+ c_triggerRecordPool.getPtr(triggerPtr, impl_req->triggerId);
+
+ TableRecordPtr indexPtr;
+ c_tableRecordPool.getPtr(indexPtr, impl_req->indexId);
+
+ const Uint32 triggerNo = impl_req->triggerNo;
+
+ D("alterIndex_atCreateTrigger" << V(triggerNo) << *op_ptr.p);
+
+ triggerPtr.p->indexId = impl_req->indexId;
+
+ ndbrequire(indexPtr.p->indexTriggerCount == triggerNo);
+ indexPtr.p->indexTriggerId[triggerNo] = impl_req->triggerId;
+ indexPtr.p->indexTriggerCount = triggerNo + 1;
+}
+
+void
Dbdict::alterIndex_fromCreateTrigger(Signal* signal, Uint32 op_key, Uint32 ret)
{
D("alterIndex_fromCreateTrigger" << hex << V(op_key) << dec << V(ret));
@@ -13448,16 +13496,9 @@
ndbrequire(conf->transId == trans_ptr.p->m_transId);
- const Uint32 triggerNo = alterIndexPtr.p->m_triggerNo;
- ndbrequire(triggerNo < alterIndexPtr.p->m_triggerCount);
-
- // connect trigger id to index
- TriggerRecordPtr triggerPtr;
- c_triggerRecordPool.getPtr(triggerPtr, conf->triggerId);
- indexPtr.p->indexTriggerId[triggerNo] = conf->triggerId;
- triggerPtr.p->indexId = impl_req->indexId;
-
- alterIndexPtr.p->m_triggerNo = triggerNo + 1;
+ ndbrequire(alterIndexPtr.p->m_triggerIndex <
+ alterIndexPtr.p->m_triggerCount);
+ alterIndexPtr.p->m_triggerIndex += 1;
} else {
ndbrequire(false);//TODO
jam();
@@ -13485,27 +13526,56 @@
TableRecordPtr indexPtr;
c_tableRecordPool.getPtr(indexPtr, impl_req->indexId);
- // drop order is same as create order
const Uint32 triggerNo = alterIndexPtr.p->m_triggerNo;
const TriggerTmpl& triggerTmpl = alterIndexPtr.p->m_triggerTmpl[triggerNo];
DropTrigReq* req = (DropTrigReq*)signal->getDataPtrSend();
+ Uint32 requestInfo = 0;
+ setRequestType(requestInfo, 0);
+ setFeedbackId(requestInfo, AlterIndex_atDropTrigger);
+
req->clientRef = reference();
req->clientData = op_ptr.p->op_key;
req->transId = trans_ptr.p->m_transId;
req->transKey = trans_ptr.p->trans_key;
- req->requestType = 0;
+ req->requestType = requestInfo;
req->tableId = impl_req->tableId;
req->tableVersion = impl_req->tableVersion;
req->indexId = impl_req->indexId;
req->indexVersion = impl_req->indexVersion;
+ req->triggerNo = triggerNo;
req->triggerId = indexPtr.p->indexTriggerId[triggerNo];
sendSignal(reference(), GSN_DROP_TRIG_REQ, signal,
DropTrigReq::SignalLength, JBB);
}
+// wl3600_todo invoke this at commit when support for it exists
+void
+Dbdict::alterIndex_atDropTrigger(Signal* signal, SchemaOpPtr op_ptr)
+{
+ DropTriggerDataPtr dropTriggerPtr;
+ getOpData(op_ptr, dropTriggerPtr);
+ const DropTrigImplReq* impl_req = &dropTriggerPtr.p->m_request;
+
+ TriggerRecordPtr triggerPtr;
+ c_triggerRecordPool.getPtr(triggerPtr, impl_req->triggerId);
+
+ TableRecordPtr indexPtr;
+ c_tableRecordPool.getPtr(indexPtr, impl_req->indexId);
+
+ const Uint32 triggerNo = impl_req->triggerNo;
+
+ D("alterIndex_atDropTrigger" << V(triggerNo) << *op_ptr.p);
+
+ triggerPtr.p->indexId = RNIL;
+
+ ndbrequire(indexPtr.p->indexTriggerCount == triggerNo + 1);
+ indexPtr.p->indexTriggerId[triggerNo] = RNIL;
+ indexPtr.p->indexTriggerCount = triggerNo;
+}
+
void
Dbdict::alterIndex_fromDropTrigger(Signal* signal, Uint32 op_key, Uint32 ret)
{
@@ -13530,13 +13600,9 @@
ndbrequire(conf->transId == trans_ptr.p->m_transId);
- const Uint32 triggerNo = alterIndexPtr.p->m_triggerNo;
- ndbrequire(triggerNo < alterIndexPtr.p->m_triggerCount);
-
- // disconnect trigger id from index
- indexPtr.p->indexTriggerId[triggerNo] = RNIL;
-
- alterIndexPtr.p->m_triggerNo = triggerNo + 1;
+ ndbrequire(alterIndexPtr.p->m_triggerIndex <
+ alterIndexPtr.p->m_triggerCount);
+ alterIndexPtr.p->m_triggerIndex += 1;
} else {
ndbrequire(false);//TODO
jam();
@@ -15540,6 +15606,7 @@
impl_req->tableVersion = req->tableVersion;
impl_req->indexId = req->indexId;
impl_req->indexVersion = req->indexVersion;
+ impl_req->triggerNo = req->triggerNo;
impl_req->triggerId = ILLEGAL_TRIGGER_ID;
impl_req->triggerInfo = req->triggerInfo;
impl_req->receiverRef = req->receiverRef;
@@ -15814,7 +15881,7 @@
// fill in trigger data
triggerPtr.p->triggerId = impl_req->triggerId;
triggerPtr.p->tableId = impl_req->tableId;
- triggerPtr.p->indexId = RNIL; // caller connects to index
+ triggerPtr.p->indexId = RNIL; // feedback method connects to index
triggerPtr.p->triggerInfo = impl_req->triggerInfo;
triggerPtr.p->receiverRef = impl_req->receiverRef;
triggerPtr.p->attributeMask = impl_req->attributeMask;
@@ -15838,6 +15905,17 @@
triggerPtr.p->m_obj_ptr_i = obj_ptr.i;
}
+ // execute feedback method, if any
+ {
+ const Uint32 id = getFeedbackId(impl_req->requestType);
+ if (id != 0) {
+ const FeedbackEntry* e = findFeedbackEntry(id);
+ ndbrequire(e != 0);
+ (this->*(e->m_method))(signal, op_ptr);
+ }
+ }
+
+#if wl3600_todo //out
// wl3600_todo XXX this is the worst solution (sub-op fix for parent)
Uint32 triggerType = TriggerInfo::getTriggerType(impl_req->triggerInfo);
Uint32 triggerEvent = TriggerInfo::getTriggerEvent(impl_req->triggerInfo);
@@ -15859,6 +15937,7 @@
indexPtr.p->indexTriggerId[0] = triggerPtr.p->triggerId;
triggerPtr.p->indexId = impl_req->indexId;
}
+#endif
}
bool
@@ -16497,6 +16576,7 @@
impl_req->tableVersion = req->tableVersion;
impl_req->indexId = req->indexId;
impl_req->indexVersion = req->indexVersion;
+ impl_req->triggerNo = req->triggerNo;
impl_req->triggerId = req->triggerId;
impl_req->triggerInfo = ~(Uint32)0;
@@ -16752,6 +16832,16 @@
// check the table wl3600_todo
// check the index if any wl3600_todo
+
+ // execute feedback method, if any
+ {
+ const Uint32 id = getFeedbackId(impl_req->requestType);
+ if (id != 0) {
+ const FeedbackEntry* e = findFeedbackEntry(id);
+ ndbrequire(e != 0);
+ (this->*(e->m_method))(signal, op_ptr);
+ }
+ }
}
bool
@@ -20986,17 +21076,41 @@
0
};
-
const Dbdict::OpInfo*
Dbdict::findOpInfo(Uint32 gsn)
{
Uint32 i = 0;
while (g_opInfoList[i] != 0) {
if (g_opInfoList[i]->m_impl_req_gsn == gsn)
- break;
+ return g_opInfoList[i];
+ i++;
+ }
+ return 0;
+}
+
+// FeedbackTable
+
+Dbdict::FeedbackEntry
+Dbdict::g_feedbackTable[] = {
+ { AlterIndex_atCreateTrigger,
+ &Dbdict::alterIndex_atCreateTrigger
+ },
+ { AlterIndex_atDropTrigger,
+ &Dbdict::alterIndex_atDropTrigger
+ },
+ { 0, 0 }
+};
+
+const Dbdict::FeedbackEntry*
+Dbdict::findFeedbackEntry(Uint32 id)
+{
+ Uint32 i = 0;
+ while (g_feedbackTable[i].m_id != 0) {
+ if (g_feedbackTable[i].m_id == id)
+ return &g_feedbackTable[i];
i++;
}
- return g_opInfoList[i];
+ return 0;
}
// OpData
@@ -21510,7 +21624,7 @@
masternode.set(getOwnNodeId());
nodes.bitAND(masternode);
}
- ndbrequire(!nodes.isclear());
+ ndbrequire(!nodes.isclear());//wl3600_todo got crash here after NF
NodeReceiverGroup rg(DBDICT, nodes);
{
--- 1.67/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp 2007-01-25 13:30:51 +01:00
+++ 1.68/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp 2007-01-26 17:17:21 +01:00
@@ -376,6 +376,7 @@
Uint32 buildTriggerId; // temp during build
// wl3600_todo replace by array
Uint32 indexTriggerId[3];
+ Uint32 indexTriggerCount;
/** Index state in other blocks on this node */
enum IndexLocal {
@@ -1296,6 +1297,51 @@
static const OpInfo* g_opInfoList[];
const OpInfo* findOpInfo(Uint32 gsn);
+ // Feedback is PARSE phase sub-op callback on all nodes
+
+ enum FeedbackId {
+ AlterIndex_atCreateTrigger = 1,
+ AlterIndex_atDropTrigger = 2 //wl3600_todo better done at COMMIT
+ };
+
+ struct FeedbackEntry {
+ Uint32 m_id;
+ void (Dbdict::*m_method)(Signal*, SchemaOpPtr);
+ };
+
+ static FeedbackEntry g_feedbackTable[];
+ static Uint32 g_feedbackTableSize;
+
+ const FeedbackEntry* findFeedbackEntry(Uint32 id);
+
+ // DICT signals include requestInfo (even if unused)
+
+ // byte 0: requestType (enum or bitmask)
+ inline
+ Uint32 getRequestType(const Uint32& info)
+ {
+ return BitmaskImpl::getField(1, &info, 0, 8);
+ }
+ inline
+ void setRequestType(Uint32& info, Uint32 val)
+ {
+ ndbrequire(val < (1 << 8));
+ BitmaskImpl::setField(1, &info, 0, 8, val);
+ }
+
+ // byte 1: id in sub-op feedback table
+ inline
+ Uint32 getFeedbackId(const Uint32& info)
+ {
+ return BitmaskImpl::getField(1, &info, 8, 8);
+ }
+ inline
+ void setFeedbackId(Uint32& info, Uint32 val)
+ {
+ ndbrequire(findFeedbackEntry(val) != 0);
+ BitmaskImpl::setField(1, &info, 8, 8, val);
+ }
+
// OpData
struct OpData {
@@ -2316,7 +2362,8 @@
// sub-operation counters
const TriggerTmpl* m_triggerTmpl;
Uint32 m_triggerCount; // 3 or 1
- Uint32 m_triggerNo;
+ Uint32 m_triggerIndex; // 0 1 2
+ Uint32 m_triggerNo; // 0 1 2 or 2 1 0 on drop
bool m_sub_build_index;
AlterIndexData() :
@@ -2326,6 +2373,7 @@
m_attrMask.clear();
m_triggerTmpl = 0;
m_triggerCount = 0;
+ m_triggerIndex = 0;
m_triggerNo = 0;
m_sub_build_index = false;
}
@@ -2480,8 +2528,10 @@
// sub-ops
void alterIndex_toCreateTrigger(Signal*, SchemaOpPtr);
+ void alterIndex_atCreateTrigger(Signal*, SchemaOpPtr);
void alterIndex_fromCreateTrigger(Signal*, Uint32 op_key, Uint32 ret);
void alterIndex_toDropTrigger(Signal*, SchemaOpPtr);
+ void alterIndex_atDropTrigger(Signal*, SchemaOpPtr);
void alterIndex_fromDropTrigger(Signal*, Uint32 op_key, Uint32 ret);
void alterIndex_toBuildIndex(Signal*, SchemaOpPtr);
void alterIndex_fromBuildIndex(Signal*, Uint32 op_key, Uint32 ret);
--- 1.2/storage/ndb/include/kernel/signaldata/CreateTrigImpl.hpp 2007-01-16 12:39:53 +01:00
+++ 1.3/storage/ndb/include/kernel/signaldata/CreateTrigImpl.hpp 2007-01-26 17:17:21 +01:00
@@ -29,7 +29,7 @@
CreateTriggerOffline = 2
};
- STATIC_CONST( SignalLength = 10 + MAXNROFATTRIBUTESINWORDS);
+ STATIC_CONST( SignalLength = 11 + MAXNROFATTRIBUTESINWORDS);
SECTION( TRIGGER_NAME_SECTION = 0 );
SECTION( ATTRIBUTE_MASK_SECTION = 1 ); // not yet in use
enum xxxKeyValues {//wl3600_todo use DictTabInfo
@@ -45,6 +45,7 @@
Uint32 tableVersion;
Uint32 indexId;
Uint32 indexVersion;
+ Uint32 triggerNo;
Uint32 triggerId;
Uint32 triggerInfo;
Uint32 receiverRef;
--- 1.2/storage/ndb/include/kernel/signaldata/DropTrigImpl.hpp 2007-01-17 15:21:23 +01:00
+++ 1.3/storage/ndb/include/kernel/signaldata/DropTrigImpl.hpp 2007-01-26 17:17:21 +01:00
@@ -22,7 +22,7 @@
struct DropTrigImplReq {
friend bool printDROP_TRIG_IMPL_REQ(FILE*, const Uint32*, Uint32, Uint16);
- STATIC_CONST( SignalLength = 9 );
+ STATIC_CONST( SignalLength = 10 );
SECTION( TRIGGER_NAME_SECTION = 0 ); // optional
enum xxxKeyValues {//wl3600_todo use DictTabInfo
TriggerNameKey = 0xa1
@@ -35,6 +35,7 @@
Uint32 tableVersion;
Uint32 indexId;
Uint32 indexVersion;
+ Uint32 triggerNo;
Uint32 triggerId;
Uint32 triggerInfo;
};
--- 1.2/storage/ndb/src/common/debugger/signaldata/CreateTrigImpl.cpp 2007-01-16 12:39:53 +01:00
+++ 1.3/storage/ndb/src/common/debugger/signaldata/CreateTrigImpl.cpp 2007-01-26 17:17:21 +01:00
@@ -29,6 +29,7 @@
fprintf(output, " tableVersion: %x", sig->tableVersion);
fprintf(output, " indexId: %x", sig->indexId);
fprintf(output, " indexVersion: %x", sig->indexVersion);
+ fprintf(output, " triggerNo: %u", sig->triggerNo);
fprintf(output, "\n");
fprintf(output, " triggerId: %x", sig->triggerId);
fprintf(output, " triggerInfo: %x", sig->triggerInfo);
--- 1.2/storage/ndb/src/common/debugger/signaldata/DropTrigImpl.cpp 2007-01-17 15:21:23 +01:00
+++ 1.3/storage/ndb/src/common/debugger/signaldata/DropTrigImpl.cpp 2007-01-26 17:17:21 +01:00
@@ -28,6 +28,7 @@
fprintf(output, " tableVersion: %x", sig->tableVersion);
fprintf(output, " indexId: %x", sig->indexId);
fprintf(output, " indexVersion: %x", sig->indexVersion);
+ fprintf(output, " triggerNo: %u", sig->triggerNo);
fprintf(output, "\n");
fprintf(output, " triggerId: %x", sig->triggerId);
fprintf(output, " triggerInfo: %x", sig->triggerInfo);
| Thread |
|---|
| • bk commit into 5.1 tree (pekka:1.2398) | pekka | 26 Jan |