List:Commits« Previous MessageNext Message »
From:pekka Date:February 4 2007 9:45pm
Subject:bk commit into 5.1 tree (pekka:1.2402)
View as plain text  
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-02-04 22:44:50+01:00, pekka@stripped +10 -0
  ndb - wl#3600 catch sub-op parse errors

  storage/ndb/include/kernel/signaldata/AlterTable.hpp@stripped, 2007-02-04 22:43:47+01:00, pekka@stripped +1 -1
    wl#3600 catch sub-op parse errors

  storage/ndb/include/kernel/signaldata/CreateTable.hpp@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +1 -1
    wl#3600 catch sub-op parse errors

  storage/ndb/src/common/debugger/signaldata/AlterTable.cpp@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +3 -1
    wl#3600 catch sub-op parse errors

  storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +4 -4
    wl#3600 catch sub-op parse errors

  storage/ndb/src/common/debugger/signaldata/AlterTrigImpl.cpp@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +4 -4
    wl#3600 catch sub-op parse errors

  storage/ndb/src/common/debugger/signaldata/CreateTab.cpp@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +4 -4
    wl#3600 catch sub-op parse errors

  storage/ndb/src/common/debugger/signaldata/CreateTable.cpp@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +1 -1
    wl#3600 catch sub-op parse errors

  storage/ndb/src/kernel/blocks/ERROR_codes.txt@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +8 -0
    wl#3600 catch sub-op parse errors

  storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +394 -230
    wl#3600 catch sub-op parse errors

  storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp@stripped, 2007-02-04 22:43:48+01:00, pekka@stripped +13 -14
    wl#3600 catch sub-op parse errors

# 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.11/storage/ndb/include/kernel/signaldata/AlterTable.hpp	2007-01-30 12:32:11 +01:00
+++ 1.12/storage/ndb/include/kernel/signaldata/AlterTable.hpp	2007-02-04 22:43:47 +01:00
@@ -225,8 +225,8 @@
   Uint32 errorLine; 
   Uint32 errorNodeId;
   Uint32 masterNodeId;
+  Uint32 errorStatus;
   Uint32 errorKey;
-  Uint32 status;
 
 public:
   Uint32 getErrorCode() const {

--- 1.11/storage/ndb/include/kernel/signaldata/CreateTable.hpp	2007-01-10 16:23:04 +01:00
+++ 1.12/storage/ndb/include/kernel/signaldata/CreateTable.hpp	2007-02-04 22:43:48 +01:00
@@ -107,7 +107,7 @@
   Uint32 errorLine;
   Uint32 errorNodeId;
   Uint32 masterNodeId;
-  Uint32 status;
+  Uint32 errorStatus;
   Uint32 errorKey;
 
 public:

--- 1.3/storage/ndb/src/common/debugger/signaldata/AlterTable.cpp	2007-01-30 12:32:11 +01:00
+++ 1.4/storage/ndb/src/common/debugger/signaldata/AlterTable.cpp	2007-02-04 22:43:48 +01:00
@@ -58,7 +58,9 @@
   fprintf(output, " errorLine: %u", sig-> errorLine);
   fprintf(output, " errorNodeId: %u", sig->errorNodeId);
   fprintf(output, " masterNodeId: %u", sig->masterNodeId);
+  fprintf(output, "\n");
+  fprintf(output, " errorStatus: %u", sig->errorStatus);
   fprintf(output, " errorKey: %u", sig->errorKey);
-  fprintf(output, " status: %u", sig->status);
+  fprintf(output, "\n");
   return true;
 }

--- 1.3/storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp	2007-01-18 13:18:45 +01:00
+++ 1.4/storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp	2007-02-04 22:43:48 +01:00
@@ -62,10 +62,10 @@
   fprintf(output, " tableId: %x", sig->tableId);
   fprintf(output, " triggerId: %x", sig->triggerId);
   fprintf(output, "\n");  
-  fprintf(output, " errorCode: %x", sig->errorCode);
-  fprintf(output, " errorLine: %x", sig->errorLine);
-  fprintf(output, " errorNodeId: %x", sig->errorNodeId);
-  fprintf(output, " masterNodeId: %x", sig->masterNodeId);
+  fprintf(output, " errorCode: %u", sig->errorCode);
+  fprintf(output, " errorLine: %u", sig->errorLine);
+  fprintf(output, " errorNodeId: %u", sig->errorNodeId);
+  fprintf(output, " masterNodeId: %u", sig->masterNodeId);
   fprintf(output, "\n");  
   return true;
 }

--- 1.31/storage/ndb/src/kernel/blocks/ERROR_codes.txt	2006-12-05 15:10:54 +01:00
+++ 1.32/storage/ndb/src/kernel/blocks/ERROR_codes.txt	2007-02-04 22:43:48 +01:00
@@ -458,6 +458,14 @@
 
 4013: verify TUP tab descr before and after next DROP TABLE
 
+Dict transactions
+-----------------
+
+These can be applied e.g. before index create and before index drop:
+
+6101: Fail alter trigger parse in master
+6102: Fail alter trigger parse in slave
+
 System Restart:
 ---------------
 

--- 1.144/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2007-02-03 10:12:19 +01:00
+++ 1.145/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2007-02-04 22:43:48 +01:00
@@ -4031,7 +4031,7 @@
   ref->transId = req->transId;
   ref->clientData = req->clientData;
   getError(error, ref);
-  ref->status = error.errorStatus;
+  ref->errorStatus = error.errorStatus;
   ref->errorKey = error.errorKey;
 
   sendSignal(req->clientRef, GSN_CREATE_TABLE_REF, signal, 
@@ -4254,28 +4254,43 @@
 }
 
 void
-Dbdict::createTable_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::createTable_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
+  jam();
   D("createTable_reply" << V(op_ptr.i) << *op_ptr.p);
 
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
-  const OpInfo& info = getOpInfo(op_ptr);
 
   CreateTableDataPtr createTabPtr;
   getOpData(op_ptr, createTabPtr);
 
-  CreateTableConf* conf = (CreateTableConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->tableId = createTabPtr.p->m_request.tableId;
-  conf->tableVersion = createTabPtr.p->m_request.tableVersion;
-
-  D(V(conf->tableId) << V(conf->tableVersion));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_CREATE_TABLE_CONF,
-             signal, CreateTableConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    CreateTableConf* conf = (CreateTableConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->tableId = createTabPtr.p->m_request.tableId;
+    conf->tableVersion = createTabPtr.p->m_request.tableVersion;
+
+    D(V(conf->tableId) << V(conf->tableVersion));
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_CREATE_TABLE_CONF, signal,
+               CreateTableConf::SignalLength, JBB);
+  } else {
+    jam();
+    CreateTableRef* ref = (CreateTableRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    getError(error, ref);
+    ref->errorStatus = error.errorStatus;
+    ref->errorKey = error.errorKey;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_CREATE_TABLE_REF, signal,
+               CreateTableRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -6576,26 +6591,41 @@
 }
 
 void
-Dbdict::alterTable_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::alterTable_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
+  jam();
   D("alterTable_reply" << V(op_ptr.i) << *op_ptr.p);
 
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
-  const OpInfo& info = getOpInfo(op_ptr);
 
   AlterTableDataPtr alterTabPtr;
   getOpData(op_ptr, alterTabPtr);
 
-  AlterTableConf* conf = (AlterTableConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->tableId = alterTabPtr.p->m_request.tableId;
-  conf->tableVersion = alterTabPtr.p->m_request.tableVersion;
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_ALTER_TABLE_CONF,
-             signal, AlterTableConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    AlterTableConf* conf = (AlterTableConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->tableId = alterTabPtr.p->m_request.tableId;
+    conf->tableVersion = alterTabPtr.p->m_request.tableVersion;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_ALTER_TABLE_CONF, signal,
+               AlterTableConf::SignalLength, JBB);
+  } else {
+    jam();
+    AlterTableRef* ref = (AlterTableRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    getError(error, ref);
+    ref->errorStatus = error.errorStatus;
+    ref->errorKey = error.errorKey;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_ALTER_TABLE_REF, signal,
+               AlterTableRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -7994,28 +8024,43 @@
 }
 
 void
-Dbdict::dropTable_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::dropTable_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
+  jam();
   D("dropTable_reply" << V(op_ptr.i) << *op_ptr.p);
 
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
-  const OpInfo& info = getOpInfo(op_ptr);
 
   DropTableDataPtr dropTabPtr;
   getOpData(op_ptr, dropTabPtr);
 
-  DropTableConf* conf = (DropTableConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->tableId = dropTabPtr.p->m_request.tableId;
-  conf->tableVersion = dropTabPtr.p->m_request.tableVersion;
-
-  D(V(conf->tableId) << V(conf->tableVersion));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_DROP_TABLE_CONF,
-             signal, DropTableConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    DropTableConf* conf = (DropTableConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->tableId = dropTabPtr.p->m_request.tableId;
+    conf->tableVersion = dropTabPtr.p->m_request.tableVersion;
+
+    D(V(conf->tableId) << V(conf->tableVersion));
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_DROP_TABLE_CONF, signal,
+               DropTableConf::SignalLength, JBB);
+  } else {
+    jam();
+    DropTableRef* ref = (DropTableRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    ref->tableId = dropTabPtr.p->m_request.tableId;
+    ref->tableVersion = dropTabPtr.p->m_request.tableVersion;
+    getError(error, ref);
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_DROP_TABLE_REF, signal,
+               DropTableRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -9984,33 +10029,25 @@
   findSchemaOp(op_ptr, createIndexPtr, op_key);
   ndbrequire(!op_ptr.isNull());
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
+  CreateIndxImplReq* impl_req = &createIndexPtr.p->m_request;
 
-  Uint32 errorCode = 0;
   if (ret == 0) {
-    jam();
     const CreateTableConf* conf =
       (const CreateTableConf*)signal->getDataPtr();
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
-    createIndexPtr.p->m_request.indexId = conf->tableId;
-    createIndexPtr.p->m_request.indexVersion = conf->tableVersion;
-
-    D(V(conf->tableId));
-
+    impl_req->indexId = conf->tableId;
+    impl_req->indexVersion = conf->tableVersion;
     createIndexPtr.p->m_sub_create_table = true;
+    createSubOps(signal, op_ptr);
   } else {
-    ndbrequire(false);//wl3600_todo
-
     jam();
     const CreateTableRef* ref =
       (const CreateTableRef*)signal->getDataPtr();
-
-    ndbrequire(ref->transId == trans_ptr.p->m_transId);
-    ndbrequire(ref->errorCode != 0);
-    errorCode = ref->errorCode;
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
   }
-
-  createSubOps(signal, op_ptr);
 }
 
 void
@@ -10051,44 +10088,62 @@
 
   Uint32 errorCode = 0;
   if (ret == 0) {
-    jam();
     const AlterIndxConf* conf =
       (const AlterIndxConf*)signal->getDataPtr();
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
     createIndexPtr.p->m_sub_alter_index = true;
+    createSubOps(signal, op_ptr);
   } else {
     jam();
-    ndbrequire(false); //TODO
-  }
+    const AlterIndxRef* ref =
+      (const AlterIndxRef*)signal->getDataPtr();
 
-  createSubOps(signal, op_ptr);
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
+  }
 }
 
 void
-Dbdict::createIndex_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::createIndex_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
-  const OpInfo& info = getOpInfo(op_ptr);
+  jam();
+  D("createIndex_reply");
 
   SchemaTransPtr& trans_ptr = op_ptr.p->m_trans_ptr;
   CreateIndexDataPtr createIndexPtr;
   getOpData(op_ptr, createIndexPtr);
+  const CreateIndxImplReq* impl_req = &createIndexPtr.p->m_request;
 
   TableRecordPtr indexPtr;
   c_tableRecordPool.getPtr(indexPtr, createIndexPtr.p->m_request.indexId);
 
-  CreateIndxConf* conf = (CreateIndxConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->indexId = indexPtr.p->tableId;
-  conf->indexVersion = indexPtr.p->tableVersion;
-
-  D("createIndex_reply" << V(conf->indexId) << V(conf->indexVersion));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_CREATE_INDX_CONF, signal,
-             CreateIndxConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    CreateIndxConf* conf = (CreateIndxConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->indexId = impl_req->indexId;
+    conf->indexVersion = impl_req->indexVersion;
+
+    D(V(conf->indexId) << V(conf->indexVersion));
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_CREATE_INDX_CONF, signal,
+               CreateIndxConf::SignalLength, JBB);
+  } else {
+    jam();
+    CreateIndxRef* ref = (CreateIndxRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    getError(error, ref);
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_CREATE_INDX_REF, signal,
+               CreateIndxRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -10951,28 +11006,44 @@
 }
 
 void
-Dbdict::dropIndex_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::dropIndex_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
+  jam();
   D("dropIndex_reply" << V(op_ptr.i) << *op_ptr.p);
 
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
-  const OpInfo& info = getOpInfo(op_ptr);
 
   DropIndexDataPtr dropIndexPtr;
   getOpData(op_ptr, dropIndexPtr);
+  const DropIndxImplReq* impl_req = &dropIndexPtr.p->m_request;
 
-  DropIndxConf* conf = (DropIndxConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->indexId = dropIndexPtr.p->m_request.indexId;
-  conf->indexVersion = dropIndexPtr.p->m_request.indexVersion;
-
-  D(V(conf->indexId) << V(conf->indexVersion));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_DROP_INDX_CONF,
-             signal, DropIndxConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    DropIndxConf* conf = (DropIndxConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    // wl3600_todo why send redundant fields?
+    conf->indexId = impl_req->indexId;
+    conf->indexVersion = impl_req->indexVersion;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_DROP_INDX_CONF, signal,
+               DropIndxConf::SignalLength, JBB);
+  } else {
+    jam();
+    DropIndxRef* ref = (DropIndxRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    // wl3600_todo why send redundant fields?
+    ref->indexId = impl_req->indexId;
+    ref->indexVersion = impl_req->indexVersion;
+    getError(error, ref);
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_DROP_INDX_REF, signal,
+               DropIndxRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -11145,20 +11216,22 @@
   ndbrequire(!op_ptr.isNull());
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
 
-  Uint32 errorCode = 0;
   if (ret == 0) {
-    jam();
     const AlterIndxConf* conf =
       (const AlterIndxConf*)signal->getDataPtr();
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
     dropIndexPtr.p->m_sub_alter_index = true;
+    createSubOps(signal, op_ptr);
   } else {
     jam();
-    ndbrequire(false); //TODO
-  }
+    const AlterIndxRef* ref =
+      (const AlterIndxRef*)signal->getDataPtr();
 
-  createSubOps(signal, op_ptr);
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
+  }
 
 #if wl3600_todo //remove
   if (opPtr.p->hasError()) {
@@ -11206,7 +11279,6 @@
   ndbrequire(!op_ptr.isNull());
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
 
-  Uint32 errorCode = 0;
   if (ret == 0) {
     jam();
     const DropTableConf* conf =
@@ -11214,19 +11286,15 @@
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
     dropIndexPtr.p->m_sub_drop_table = true;
+    createSubOps(signal, op_ptr);
   } else {
-    ndbrequire(false);//wl3600_todo
-
     jam();
     const DropTableRef* ref =
       (const DropTableRef*)signal->getDataPtr();
-
-    ndbrequire(ref->transId == trans_ptr.p->m_transId);
-    ndbrequire(ref->errorCode != 0);
-    errorCode = ref->errorCode;
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
   }
-
-  createSubOps(signal, op_ptr);
 }
 
 void
@@ -14031,7 +14099,7 @@
 void
 Dbdict::alterIndex_fromCreateTrigger(Signal* signal, Uint32 op_key, Uint32 ret)
 {
-  D("alterIndex_fromCreateTrigger" << hex << V(op_key) << dec << V(ret));
+  jam();
 
   SchemaOpPtr op_ptr;
   AlterIndexDataPtr alterIndexPtr;
@@ -14041,32 +14109,25 @@
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
   const AlterIndxImplReq* impl_req = &alterIndexPtr.p->m_request;
 
-  TableRecordPtr indexPtr;
-  c_tableRecordPool.getPtr(indexPtr, impl_req->indexId);
+  D("alterIndex_fromCreateTrigger" << hex << V(op_key) << dec << V(ret));
 
-  Uint32 errorCode = 0;
   if (ret == 0) {
     jam();
     const CreateTrigConf* conf =
       (const CreateTrigConf*)signal->getDataPtr();
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
-
     ndbrequire(alterIndexPtr.p->m_triggerIndex <
                alterIndexPtr.p->m_triggerCount);
     alterIndexPtr.p->m_triggerIndex += 1;
+    createSubOps(signal, op_ptr);
   } else {
-    ndbrequire(false);//TODO
-    jam();
     const CreateTrigRef* ref =
       (const CreateTrigRef*)signal->getDataPtr();
-
-    ndbrequire(ref->transId == trans_ptr.p->m_transId);
-    ndbrequire(ref->errorCode != 0);
-    errorCode = ref->errorCode;
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
   }
-
-  createSubOps(signal, op_ptr);
 }
 
 void
@@ -14135,7 +14196,7 @@
 void
 Dbdict::alterIndex_fromDropTrigger(Signal* signal, Uint32 op_key, Uint32 ret)
 {
-  D("alterIndex_fromDropTrigger" << hex << V(op_key) << dec << V(ret));
+  jam();
 
   SchemaOpPtr op_ptr;
   AlterIndexDataPtr alterIndexPtr;
@@ -14145,32 +14206,25 @@
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
   const AlterIndxImplReq* impl_req = &alterIndexPtr.p->m_request;
 
-  TableRecordPtr indexPtr;
-  c_tableRecordPool.getPtr(indexPtr, impl_req->indexId);
+  D("alterIndex_fromDropTrigger" << hex << V(op_key) << dec << V(ret));
 
-  Uint32 errorCode = 0;
   if (ret == 0) {
-    jam();
     const DropTrigConf* conf =
       (const DropTrigConf*)signal->getDataPtr();
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
-
     ndbrequire(alterIndexPtr.p->m_triggerIndex <
                alterIndexPtr.p->m_triggerCount);
     alterIndexPtr.p->m_triggerIndex += 1;
+    createSubOps(signal, op_ptr);
   } else {
-    ndbrequire(false);//TODO
     jam();
     const DropTrigRef* ref =
       (const DropTrigRef*)signal->getDataPtr();
-
-    ndbrequire(ref->transId == trans_ptr.p->m_transId);
-    ndbrequire(ref->errorCode != 0);
-    errorCode = ref->errorCode;
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
   }
-
-  createSubOps(signal, op_ptr);
 }
 
 void
@@ -14238,7 +14292,6 @@
   ndbrequire(!op_ptr.isNull());
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
 
-  Uint32 errorCode = 0;
   if (ret == 0) {
     jam();
     const BuildIndxConf* conf =
@@ -14246,12 +14299,16 @@
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
     alterIndexPtr.p->m_sub_build_index = true;
+    createSubOps(signal, op_ptr);
   } else {
     jam();
-    ndbrequire(false); //TODO
-  }
+    const BuildIndxRef* ref =
+      (const BuildIndxRef*)signal->getDataPtr();
 
-  createSubOps(signal, op_ptr);
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
+  }
 
 #if wl3600_todo
   jam();
@@ -14267,28 +14324,43 @@
 }
 
 void
-Dbdict::alterIndex_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::alterIndex_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
   D("alterIndex_reply" << V(op_ptr.i) << *op_ptr.p);
 
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
-  const OpInfo& info = getOpInfo(op_ptr);
 
   AlterIndexDataPtr alterIndexPtr;
   getOpData(op_ptr, alterIndexPtr);
+  const AlterIndxImplReq* impl_req = &alterIndexPtr.p->m_request;
 
-  AlterIndxConf* conf = (AlterIndxConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->indexId = alterIndexPtr.p->m_request.indexId;
-  conf->indexVersion = alterIndexPtr.p->m_request.indexVersion;
-
-  D(V(conf->indexId) << V(conf->indexVersion));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_ALTER_INDX_CONF,
-             signal, AlterIndxConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    AlterIndxConf* conf = (AlterIndxConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->indexId = impl_req->indexId;
+    conf->indexVersion = impl_req->indexVersion;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_ALTER_INDX_CONF,
+               signal, AlterIndxConf::SignalLength, JBB);
+  } else {
+    jam();
+    AlterIndxRef* ref = (AlterIndxRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    // wl3600_todo requestType (fix all at once)
+    // wl3600_todo next 2 redundant (fix all at once)
+    ref->indexId = impl_req->indexId;
+    ref->indexVersion = impl_req->indexVersion;
+    getError(error, ref);
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_ALTER_INDX_REF,
+               signal, AlterIndxRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -15392,36 +15464,49 @@
 }
 
 void
-Dbdict::buildIndex_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::buildIndex_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
-  const OpInfo& info = getOpInfo(op_ptr);
+  jam();
 
   SchemaTransPtr& trans_ptr = op_ptr.p->m_trans_ptr;
   BuildIndexDataPtr buildIndexPtr;
   getOpData(op_ptr, buildIndexPtr);
   const BuildIndxImplReq* impl_req = &buildIndexPtr.p->m_request;
 
+  D("buildIndex_reply" << V(impl_req->indexId));
+
   TableRecordPtr indexPtr;
   c_tableRecordPool.getPtr(indexPtr, impl_req->indexId);
 
-  Uint32 requestType;
-  Uint32 tableId;
-  Uint32 indexId;
-  Uint32 indexType;
-  BuildIndxConf* conf = (BuildIndxConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->requestType = impl_req->requestType;
-  conf->tableId = impl_req->tableId;
-  conf->indexId = impl_req->indexId;
-  conf->indexType = impl_req->indexType;
-
-  D("buildIndex_reply" << V(conf->indexId));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_BUILDINDXCONF, signal,
-             BuildIndxConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    BuildIndxConf* conf = (BuildIndxConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->requestType = impl_req->requestType;
+    conf->tableId = impl_req->tableId;
+    conf->indexId = impl_req->indexId;
+    conf->indexType = impl_req->indexType;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_BUILDINDXCONF, signal,
+               BuildIndxConf::SignalLength, JBB);
+  } else {
+    jam();
+    BuildIndxRef* ref = (BuildIndxRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    ref->requestType = impl_req->requestType;
+    ref->tableId = impl_req->tableId;
+    ref->indexId = impl_req->indexId;
+    ref->indexType = impl_req->indexType;
+    getError(error, ref);
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_BUILDINDXREF, signal,
+               BuildIndxRef::SignalLength, JBB);
+  }
 }
 
 /*
@@ -16570,7 +16655,6 @@
   ndbrequire(!op_ptr.isNull());
   SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
 
-  Uint32 errorCode = 0;
   if (ret == 0) {
     jam();
     const AlterTrigConf* conf =
@@ -16578,13 +16662,16 @@
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
     createTriggerPtr.p->m_sub_alter_trigger = true;
+    createSubOps(signal, op_ptr);
   } else {
     jam();
-    ndbrequire(false); //TODO
+    const AlterTrigRef* ref =
+      (const AlterTrigRef*)signal->getDataPtr();
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
   }
 
-  createSubOps(signal, op_ptr);
-
 #if wl3600_todo
   jam();
   if (opPtr.p->hasError()) {
@@ -16599,33 +16686,47 @@
 }
 
 void
-Dbdict::createTrigger_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::createTrigger_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
-  const OpInfo& info = getOpInfo(op_ptr);
+  jam();
 
   SchemaTransPtr& trans_ptr = op_ptr.p->m_trans_ptr;
   CreateTriggerDataPtr createTriggerPtr;
   getOpData(op_ptr, createTriggerPtr);
   const CreateTrigImplReq* impl_req = &createTriggerPtr.p->m_request;
 
-  TableRecordPtr triggerPtr;
-  c_tableRecordPool.getPtr(triggerPtr, createTriggerPtr.p->m_request.triggerId);
+  D("createTrigger_reply" << V(impl_req->triggerId) << *op_ptr.p);
 
-  CreateTrigConf* conf = (CreateTrigConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->requestType = impl_req->requestType;
-  conf->tableId = impl_req->tableId;
-  conf->indexId = impl_req->indexId;
-  conf->triggerId = impl_req->triggerId;
-  conf->triggerInfo = impl_req->triggerInfo;
-
-  D("createTrigger_reply" << V(conf->triggerId));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_CREATE_TRIG_CONF, signal,
-             CreateTrigConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    CreateTrigConf* conf = (CreateTrigConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->requestType = impl_req->requestType;
+    conf->tableId = impl_req->tableId;
+    conf->indexId = impl_req->indexId;
+    conf->triggerId = impl_req->triggerId;
+    conf->triggerInfo = impl_req->triggerInfo;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_CREATE_TRIG_CONF, signal,
+               CreateTrigConf::SignalLength, JBB);
+  } else {
+    jam();
+    CreateTrigRef* ref = (CreateTrigRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    ref->requestType = impl_req->requestType;
+    ref->tableId = impl_req->tableId;
+    ref->indexId = impl_req->indexId;
+    ref->triggerInfo =impl_req->triggerInfo;
+    getError(error, ref);
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_CREATE_TRIG_REF, signal,
+               CreateTrigRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -17483,12 +17584,16 @@
 
     ndbrequire(conf->transId == trans_ptr.p->m_transId);
     dropTriggerPtr.p->m_sub_alter_trigger = true;
+    createSubOps(signal, op_ptr);
   } else {
     jam();
-    ndbrequire(false); //TODO
-  }
+    const AlterTrigRef* ref =
+      (const AlterTrigRef*)signal->getDataPtr();
 
-  createSubOps(signal, op_ptr);
+    ErrorInfo error;
+    setError(error, ref);
+    abortSubOps(signal, op_ptr, error);
+  }
 
 #if wl3600_todo
   jam();
@@ -17499,8 +17604,9 @@
 }
 
 void
-Dbdict::dropTrigger_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::dropTrigger_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
+  jam();
   const OpInfo& info = getOpInfo(op_ptr);
 
   SchemaTransPtr& trans_ptr = op_ptr.p->m_trans_ptr;
@@ -17508,23 +17614,37 @@
   getOpData(op_ptr, dropTriggerPtr);
   const DropTrigImplReq* impl_req = &dropTriggerPtr.p->m_request;
 
-  TableRecordPtr triggerPtr;
-  c_tableRecordPool.getPtr(triggerPtr, dropTriggerPtr.p->m_request.triggerId);
+  D("dropTrigger_reply" << V(impl_req->triggerId));
 
-  DropTrigConf* conf = (DropTrigConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->requestType = impl_req->requestType;
-  conf->tableId = impl_req->tableId;
-  conf->indexId = impl_req->indexId;
-  conf->triggerId = impl_req->triggerId;
-
-  D("dropTrigger_reply" << V(conf->triggerId));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_DROP_TRIG_CONF, signal,
-             DropTrigConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    DropTrigConf* conf = (DropTrigConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->requestType = impl_req->requestType;
+    conf->tableId = impl_req->tableId;
+    conf->indexId = impl_req->indexId;
+    conf->triggerId = impl_req->triggerId;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_DROP_TRIG_CONF, signal,
+               DropTrigConf::SignalLength, JBB);
+  } else {
+    jam();
+    DropTrigRef* ref = (DropTrigRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    ref->requestType = impl_req->requestType;
+    ref->tableId = impl_req->tableId;
+    ref->indexId = impl_req->indexId;
+    ref->triggerId = impl_req->triggerId;
+    getError(error, ref);
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_DROP_TRIG_REF, signal,
+               DropTrigRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -18021,6 +18141,8 @@
   ndbrequire(impl_req->senderRef == numberToRef(DBDICT, c_masterNodeId));
   ndbrequire(impl_req->senderData == op_ptr.p->op_key);
 
+  const bool fromMaster = (reference() == impl_req->senderRef);
+
   // wl3600_todo look up optional name
 
   // check the table wl3600_todo
@@ -18054,6 +18176,18 @@
       alterTriggerPtr.p->m_triggerBlock[0] = DBLQH_REF;
     }
   }
+
+  // debug
+  if (ERROR_INSERTED(6101) && fromMaster) {
+    jam();
+    setError(error, 9999, __LINE__);
+    return;
+  }
+  if (ERROR_INSERTED(6102) && !fromMaster) {
+    jam();
+    setError(error, 9999, __LINE__);
+    return;
+  }
 }
 
 bool
@@ -18064,33 +18198,44 @@
 }
 
 void
-Dbdict::alterTrigger_reply(Signal* signal, SchemaOpPtr op_ptr)
+Dbdict::alterTrigger_reply(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
 {
-  D("alterTrigger_reply");
-
-  const OpInfo& info = getOpInfo(op_ptr);
+  jam();
 
   SchemaTransPtr& trans_ptr = op_ptr.p->m_trans_ptr;
   AlterTriggerDataPtr alterTriggerPtr;
   getOpData(op_ptr, alterTriggerPtr);
   const AlterTrigImplReq* impl_req = &alterTriggerPtr.p->m_request;
 
-  TableRecordPtr triggerPtr;
-  c_tableRecordPool.getPtr(triggerPtr, alterTriggerPtr.p->m_request.triggerId);
+  D("alterTrigger_reply");
 
-  AlterTrigConf* conf = (AlterTrigConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->clientData = op_ptr.p->m_clientData;
-  conf->transId = trans_ptr.p->m_transId;
-  conf->requestType = impl_req->requestType;
-  conf->tableId = impl_req->tableId;
-  conf->triggerId = impl_req->triggerId;
-
-  D("alterTrigger_reply" << V(conf->triggerId));
-
-  Uint32 clientRef = op_ptr.p->m_clientRef;
-  sendSignal(clientRef, GSN_ALTER_TRIG_CONF, signal,
-             AlterTrigConf::SignalLength, JBB);
+  if (!hasError(error)) {
+    AlterTrigConf* conf = (AlterTrigConf*)signal->getDataPtrSend();
+    conf->senderRef = reference();
+    conf->clientData = op_ptr.p->m_clientData;
+    conf->transId = trans_ptr.p->m_transId;
+    conf->requestType = impl_req->requestType;
+    conf->tableId = impl_req->tableId;
+    conf->triggerId = impl_req->triggerId;
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_ALTER_TRIG_CONF, signal,
+               AlterTrigConf::SignalLength, JBB);
+  } else {
+    jam();
+    AlterTrigRef* ref = (AlterTrigRef*)signal->getDataPtrSend();
+    ref->senderRef = reference();
+    ref->clientData = op_ptr.p->m_clientData;
+    ref->transId = trans_ptr.p->m_transId;
+    ref->requestType = impl_req->requestType;
+    ref->tableId = impl_req->tableId;
+    ref->triggerId = impl_req->triggerId;
+    getError(error, ref);
+
+    Uint32 clientRef = op_ptr.p->m_clientRef;
+    sendSignal(clientRef, GSN_ALTER_TRIG_REF, signal,
+               AlterTrigRef::SignalLength, JBB);
+  }
 }
 
 void
@@ -22187,10 +22332,10 @@
     D("execSCHEMA_TRANS_END_REQ" << *trans_ptr.p << trans_ptr.p->m_opList);
 
     if (!commitFlag) {
-      // wl3600_todo
       abortSchemaTrans(signal, trans_ptr);
       return;
     }
+    // wl3600_todo check no parse REFs on ops
 
     // set iterator and start execution phases
     PhaseIterator& it = getIterator(trans_ptr);
@@ -22455,12 +22600,31 @@
   ndbrequire(trans_ptr.p->m_opDepth != 0);
   trans_ptr.p->m_opDepth -= 1;
 
-  (this->*(info.m_reply))(signal, op_ptr);
+  ErrorInfo error;
+  (this->*(info.m_reply))(signal, op_ptr, error);
+}
+
+// a sub-op create failed, send REF to client
+void
+Dbdict::abortSubOps(Signal* signal, SchemaOpPtr op_ptr, ErrorInfo error)
+{
+  D("abortSubOps" << *op_ptr.p);
+
+  SchemaTransPtr trans_ptr = op_ptr.p->m_trans_ptr;
+  const OpInfo& info = getOpInfo(op_ptr);
+
+  // restore operation depth
+  ndbrequire(trans_ptr.p->m_opDepth != 0);
+  trans_ptr.p->m_opDepth -= 1;
+
+  ndbrequire(hasError(error));
+  (this->*(info.m_reply))(signal, op_ptr, error);
 }
 
 void
 Dbdict::abortSchemaTrans(Signal* signal, SchemaTransPtr trans_ptr)
 {
+  // wl3600_todo start abort flow
   trans_ptr.p->m_requestType = SchemaTransImplReq::RT_END;
   schemaTrans_sendReq(signal, trans_ptr, false);
 }

--- 1.70/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2007-02-03 10:12:19 +01:00
+++ 1.71/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2007-02-04 22:43:48 +01:00
@@ -1254,9 +1254,7 @@
   inline void
   setError(ErrorInfo& error, const Ref* ref)
   {
-    error.errorCode = ref->errorCode;
-    error.errorLine = ref->errorLine;
-    error.errorNodeId = ref->errorNodeId;
+    setError(error, ref->errorCode, ref->errorLine, ref->errorNodeId);
   }
 
   template <class Ref>
@@ -1283,7 +1281,7 @@
     void (Dbdict::*m_parse)(Signal*, SchemaTransPtr);
     void (Dbdict::*m_parseCommon)(Signal*, SchemaOpPtr, ErrorInfo&);
     bool (Dbdict::*m_subOps)(Signal*, SchemaOpPtr);
-    void (Dbdict::*m_reply)(Signal*, SchemaOpPtr);
+    void (Dbdict::*m_reply)(Signal*, SchemaOpPtr, ErrorInfo);
 
     // run phases
     void (Dbdict::*m_prepare)(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -1667,6 +1665,7 @@
   void schemaTrans_sendParseReq(Signal*, SchemaOpPtr);
   void schemaTrans_recvReply(Signal*, bool isConf);
   void createSubOps(Signal*, SchemaOpPtr, bool first = false);
+  void abortSubOps(Signal*, SchemaOpPtr, ErrorInfo);
   void abortSchemaTrans(Signal*, SchemaTransPtr);
 
   // participant
@@ -1911,7 +1910,7 @@
   void createTable_parse(Signal*, SchemaTransPtr);
   void createTable_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool createTable_subOps(Signal*, SchemaOpPtr);
-  void createTable_reply(Signal*, SchemaOpPtr);
+  void createTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void createTable_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void createTable_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -2003,7 +2002,7 @@
   void alterTable_parse(Signal*, SchemaTransPtr);
   void alterTable_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool alterTable_subOps(Signal*, SchemaOpPtr);
-  void alterTable_reply(Signal*, SchemaOpPtr);
+  void alterTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void alterTable_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void alterTable_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -2074,7 +2073,7 @@
   void dropTable_parse(Signal*, SchemaTransPtr);
   void dropTable_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool dropTable_subOps(Signal*, SchemaOpPtr);
-  void dropTable_reply(Signal*, SchemaOpPtr);
+  void dropTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void dropTable_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void dropTable_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -2243,7 +2242,7 @@
   void createIndex_parse(Signal*, SchemaTransPtr);
   void createIndex_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool createIndex_subOps(Signal*, SchemaOpPtr);
-  void createIndex_reply(Signal*, SchemaOpPtr);
+  void createIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void createIndex_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void createIndex_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -2393,7 +2392,7 @@
   void dropIndex_parse(Signal*, SchemaTransPtr);
   void dropIndex_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool dropIndex_subOps(Signal*, SchemaOpPtr);
-  void dropIndex_reply(Signal*, SchemaOpPtr);
+  void dropIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void dropIndex_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void dropIndex_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -2589,7 +2588,7 @@
   void alterIndex_parse(Signal*, SchemaTransPtr);
   void alterIndex_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool alterIndex_subOps(Signal*, SchemaOpPtr);
-  void alterIndex_reply(Signal*, SchemaOpPtr);
+  void alterIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void alterIndex_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void alterIndex_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -2730,7 +2729,7 @@
   void buildIndex_parse(Signal*, SchemaTransPtr);
   void buildIndex_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool buildIndex_subOps(Signal*, SchemaOpPtr);
-  void buildIndex_reply(Signal*, SchemaOpPtr);
+  void buildIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void buildIndex_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void buildIndex_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -2957,7 +2956,7 @@
   void createTrigger_parse(Signal*, SchemaTransPtr);
   void createTrigger_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool createTrigger_subOps(Signal*, SchemaOpPtr);
-  void createTrigger_reply(Signal*, SchemaOpPtr);
+  void createTrigger_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void createTrigger_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void createTrigger_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -3069,7 +3068,7 @@
   void dropTrigger_parse(Signal*, SchemaTransPtr);
   void dropTrigger_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool dropTrigger_subOps(Signal*, SchemaOpPtr);
-  void dropTrigger_reply(Signal*, SchemaOpPtr);
+  void dropTrigger_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void dropTrigger_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void dropTrigger_commit(Signal*, SchemaOpPtr, Uint32 repeat);
@@ -3200,7 +3199,7 @@
   void alterTrigger_parse(Signal*, SchemaTransPtr);
   void alterTrigger_parseCommon(Signal*, SchemaOpPtr, ErrorInfo&);
   bool alterTrigger_subOps(Signal*, SchemaOpPtr);
-  void alterTrigger_reply(Signal*, SchemaOpPtr);
+  void alterTrigger_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
   void alterTrigger_prepare(Signal*, SchemaOpPtr, Uint32 repeat);
   void alterTrigger_commit(Signal*, SchemaOpPtr, Uint32 repeat);

--- 1.2/storage/ndb/src/common/debugger/signaldata/AlterTrigImpl.cpp	2007-01-18 13:18:45 +01:00
+++ 1.3/storage/ndb/src/common/debugger/signaldata/AlterTrigImpl.cpp	2007-02-04 22:43:48 +01:00
@@ -56,10 +56,10 @@
   fprintf(output, " tableId: %x", sig->tableId);
   fprintf(output, " triggerId: %x", sig->triggerId);
   fprintf(output, "\n");
-  fprintf(output, " errorCode: %x", sig->errorCode);
-  fprintf(output, " errorLine: %x", sig->errorLine);
-  fprintf(output, " errorNodeId: %x", sig->errorNodeId);
-  fprintf(output, " masterNodeId: %x", sig->masterNodeId);
+  fprintf(output, " errorCode: %u", sig->errorCode);
+  fprintf(output, " errorLine: %u", sig->errorLine);
+  fprintf(output, " errorNodeId: %u", sig->errorNodeId);
+  fprintf(output, " masterNodeId: %u", sig->masterNodeId);
   fprintf(output, "\n");
   return true;
 }

--- 1.2/storage/ndb/src/common/debugger/signaldata/CreateTab.cpp	2007-01-10 16:23:04 +01:00
+++ 1.3/storage/ndb/src/common/debugger/signaldata/CreateTab.cpp	2007-02-04 22:43:48 +01:00
@@ -49,10 +49,10 @@
   fprintf(output, " senderRef: %x", sig->senderRef);
   fprintf(output, " senderData: %x", sig->senderData);
   fprintf(output, "\n");
-  fprintf(output, " errorCode: %x", sig->errorCode);
-  fprintf(output, " errorLine: %x", sig->errorLine );
-  fprintf(output, " errorKey: %x", sig->errorKey);
-  fprintf(output, " errorStatus: %x", sig->errorStatus);
+  fprintf(output, " errorCode: %u", sig->errorCode);
+  fprintf(output, " errorLine: %u", sig->errorLine );
+  fprintf(output, " errorKey: %u", sig->errorKey);
+  fprintf(output, " errorStatus: %u", sig->errorStatus);
   fprintf(output, "\n");
   return true;
 }

--- 1.3/storage/ndb/src/common/debugger/signaldata/CreateTable.cpp	2007-01-10 16:23:04 +01:00
+++ 1.4/storage/ndb/src/common/debugger/signaldata/CreateTable.cpp	2007-02-04 22:43:48 +01:00
@@ -55,7 +55,7 @@
   fprintf(output, " errorNodeId: %u", sig->errorNodeId);
   fprintf(output, " masterNodeId: %u", sig->masterNodeId);
   fprintf(output, "\n");
-  fprintf(output, " status: %u", sig->status);
+  fprintf(output, " errorStatus: %u", sig->errorStatus);
   fprintf(output, " errorKey: %u", sig->errorKey);
   fprintf(output, "\n");
   return true;
Thread
bk commit into 5.1 tree (pekka:1.2402)pekka4 Feb