⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trix.cpp

📁 mysql-5.0.22.tar.gz源码包
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    sendSignal(reference(),	       GSN_BUILDINDXREQ,	       signal,	       BuildIndxReq::SignalLength,	       JBB,	       orderPtr,	       BuildIndxReq::NoOfSections);    break;  }  case(302): { // ok    // index -T; index -I -n1000; index -c -p    // all dump 302 0 0 0 0 0 4 2    // select_count PNUMINDEX0000    BuildIndxReq * buildIndxReq = (BuildIndxReq *)signal->getDataPtrSend();        MEMCOPY_NO_WORDS(buildIndxReq, 		     signal->theData + 1, 		     BuildIndxReq::SignalLength);    buildIndxReq->setUserRef(reference()); // return to me    buildIndxReq->setParallelism(10);    Uint32 indexColumns[3] = {0, 3, 5};    Uint32 keyColumns[1] = {0};    struct LinearSectionPtr orderPtr[2];    buildIndxReq->setColumnOrder(indexColumns, 3, keyColumns, 1, orderPtr);    sendSignal(reference(),	       GSN_BUILDINDXREQ,	       signal,	       BuildIndxReq::SignalLength,	       JBB,	       orderPtr,	       BuildIndxReq::NoOfSections);    break;  }  case(303): { // ok    // index -T -2; index -I -2 -n1000; index -c -p    // all dump 303 0 0 0 0 0 4 2    // select_count PNUMINDEX0000    BuildIndxReq * buildIndxReq = (BuildIndxReq *)signal->getDataPtrSend();        MEMCOPY_NO_WORDS(buildIndxReq, 		     signal->theData + 1, 		     BuildIndxReq::SignalLength);    buildIndxReq->setUserRef(reference()); // return to me    buildIndxReq->setParallelism(10);    Uint32 indexColumns[3] = {0, 3, 5};    Uint32 keyColumns[2] = {0, 1};    struct LinearSectionPtr orderPtr[2];    buildIndxReq->setColumnOrder(indexColumns, 3, keyColumns, 2, orderPtr);    sendSignal(reference(),	       GSN_BUILDINDXREQ,	       signal,	       BuildIndxReq::SignalLength,	       JBB,	       orderPtr,	       BuildIndxReq::NoOfSections);    break;  }  case(304): { // ok    // index -T -L; index -I -L -n1000; index -c -p    // all dump 304 0 0 0 0 0 4 2    // select_count PNUMINDEX0000    BuildIndxReq * buildIndxReq = (BuildIndxReq *)signal->getDataPtrSend();        MEMCOPY_NO_WORDS(buildIndxReq, 		     signal->theData + 1, 		     BuildIndxReq::SignalLength);    buildIndxReq->setUserRef(reference()); // return to me    buildIndxReq->setParallelism(10);    Uint32 indexColumns[3] = {0, 3, 5};    Uint32 keyColumns[1] = {0};    struct LinearSectionPtr orderPtr[2];    buildIndxReq->setColumnOrder(indexColumns, 3, keyColumns, 1, orderPtr);    sendSignal(reference(),	       GSN_BUILDINDXREQ,	       signal,	       BuildIndxReq::SignalLength,	       JBB,	       orderPtr,	       BuildIndxReq::NoOfSections);    break;  }  case(305): { // ok    // index -T -2 -L; index -I -2 -L -n1000; index -c -p    // all dump 305 0 0 0 0 0 4 2    // select_count PNUMINDEX0000    BuildIndxReq * buildIndxReq = (BuildIndxReq *)signal->getDataPtrSend();        MEMCOPY_NO_WORDS(buildIndxReq, 		     signal->theData + 1, 		     BuildIndxReq::SignalLength);    buildIndxReq->setUserRef(reference()); // return to me    buildIndxReq->setParallelism(10);    Uint32 indexColumns[3] = {0, 3, 5};    Uint32 keyColumns[2] = {0, 1};    struct LinearSectionPtr orderPtr[2];    buildIndxReq->setColumnOrder(indexColumns, 3, keyColumns, 2, orderPtr);    sendSignal(reference(),	       GSN_BUILDINDXREQ,	       signal,	       BuildIndxReq::SignalLength,	       JBB,	       orderPtr,	       BuildIndxReq::NoOfSections);    break;  }  default: {    // Ignore  }  }}// Build index/** * */void Trix:: execBUILDINDXREQ(Signal* signal){  jamEntry();  BuildIndxReq * buildIndxReq = (BuildIndxReq *)signal->getDataPtr();  // Seize a subscription record  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;    if (!c_theSubscriptions.seizeId(subRecPtr, buildIndxReq->getBuildId())) {    // Failed to allocate subscription record    BuildIndxRef * buildIndxRef = (BuildIndxRef *)signal->getDataPtrSend();    buildIndxRef->setErrorCode(BuildIndxRef::AllocationFailure);    releaseSections(signal);    sendSignal(buildIndxReq->getUserRef(), 	       GSN_BUILDINDXREF, signal, BuildIndxRef::SignalLength, JBB);    return;  }  subRec = subRecPtr.p;  subRec->errorCode = BuildIndxRef::NoError;  subRec->userReference = buildIndxReq->getUserRef();  subRec->connectionPtr = buildIndxReq->getConnectionPtr();  subRec->subscriptionId = buildIndxReq->getBuildId();  subRec->subscriptionKey = buildIndxReq->getBuildKey();  subRec->indexType = buildIndxReq->getIndexType();  subRec->sourceTableId = buildIndxReq->getTableId();  subRec->targetTableId = buildIndxReq->getIndexId();  subRec->parallelism = buildIndxReq->getParallelism();  subRec->expectedConf = 0;  subRec->subscriptionCreated = false;  subRec->pendingSubSyncContinueConf = false;  subRec->prepareId = RNIL;  // Get column order segments  Uint32 noOfSections = signal->getNoOfSections();  if(noOfSections > 0) {    SegmentedSectionPtr ptr;    signal->getSection(ptr, BuildIndxReq::INDEX_COLUMNS);    append(subRec->attributeOrder, ptr, getSectionSegmentPool());    subRec->noOfIndexColumns = ptr.sz;  }  if(noOfSections > 1) {    SegmentedSectionPtr ptr;    signal->getSection(ptr, BuildIndxReq::KEY_COLUMNS);    append(subRec->attributeOrder, ptr, getSectionSegmentPool());    subRec->noOfKeyColumns = ptr.sz;  }#if 0  // Debugging  printf("Trix:: execBUILDINDXREQ: Attribute order:\n");  subRec->attributeOrder.print(stdout);#endif  releaseSections(signal);  prepareInsertTransactions(signal, subRecPtr);}void Trix:: execBUILDINDXCONF(Signal* signal){  printf("Trix:: execBUILDINDXCONF\n");}void Trix:: execBUILDINDXREF(Signal* signal){  printf("Trix:: execBUILDINDXREF\n");}void Trix::execUTIL_PREPARE_CONF(Signal* signal){  jamEntry();  UtilPrepareConf * utilPrepareConf = (UtilPrepareConf *)signal->getDataPtr();  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;  subRecPtr.i = utilPrepareConf->senderData;  if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) {    printf("Trix::execUTIL_PREPARE_CONF: Failed to find subscription data %u\n", subRecPtr.i);    return;  }  subRecPtr.p = subRec;  subRec->prepareId = utilPrepareConf->prepareId;  setupSubscription(signal, subRecPtr);}void Trix::execUTIL_PREPARE_REF(Signal* signal){  jamEntry();  UtilPrepareRef * utilPrepareRef = (UtilPrepareRef *)signal->getDataPtr();  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;  subRecPtr.i = utilPrepareRef->senderData;  if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) {    printf("Trix::execUTIL_PREPARE_REF: Failed to find subscription data %u\n", subRecPtr.i);    return;  }  subRecPtr.p = subRec;  subRec->errorCode = BuildIndxRef::InternalError;}void Trix::execUTIL_EXECUTE_CONF(Signal* signal){  jamEntry();  UtilExecuteConf * utilExecuteConf = (UtilExecuteConf *)signal->getDataPtr();  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;  subRecPtr.i = utilExecuteConf->senderData;  if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) {    printf("rix::execUTIL_EXECUTE_CONF: Failed to find subscription data %u\n", subRecPtr.i);    return;  }  subRecPtr.p = subRec;  subRec->expectedConf--;  checkParallelism(signal, subRec);  if (subRec->expectedConf == 0)    buildComplete(signal, subRecPtr);}void Trix::execUTIL_EXECUTE_REF(Signal* signal){  jamEntry();  UtilExecuteRef * utilExecuteRef = (UtilExecuteRef *)signal->getDataPtr();  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;  subRecPtr.i = utilExecuteRef->senderData;  if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) {    printf("Trix::execUTIL_EXECUTE_REF: Failed to find subscription data %u\n", subRecPtr.i);    return;  }  subRecPtr.p = subRec;  ndbrequire(utilExecuteRef->errorCode == UtilExecuteRef::TCError);  if(utilExecuteRef->TCErrorCode == CONSTRAINT_VIOLATION)    buildFailed(signal, subRecPtr, BuildIndxRef::IndexNotUnique);  else    buildFailed(signal, subRecPtr, BuildIndxRef::InternalError);}void Trix::execSUB_CREATE_CONF(Signal* signal){  jamEntry();  SubCreateConf * subCreateConf = (SubCreateConf *)signal->getDataPtr();  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;  subRecPtr.i = subCreateConf->subscriberData;  if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) {    printf("Trix::execSUB_CREATE_CONF: Failed to find subscription data %u\n", subRecPtr.i);    return;  }  ndbrequire(subRec->subscriptionId == subCreateConf->subscriptionId);  ndbrequire(subRec->subscriptionKey == subCreateConf->subscriptionKey);  subRec->subscriptionCreated = true;  subRecPtr.p = subRec;  setupTableScan(signal, subRecPtr);}void Trix::execSUB_CREATE_REF(Signal* signal){  jamEntry();  // THIS SIGNAL IS NEVER SENT FROM SUMA?  /*  SubCreateRef * subCreateRef = (SubCreateRef *)signal->getDataPtr();  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;  subRecPtr.i = subCreateRef->subscriberData;  if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) {    printf("Trix::execSUB_CREATE_REF: Failed to find subscription data %u\n", subRecPtr.i);    return;  }  subRecPtr.p = subRec;  buildFailed(signal, subRecPtr, BuildIndxRef::InternalError);  */}void Trix::execSUB_SYNC_CONF(Signal* signal){  jamEntry();  SubSyncConf * subSyncConf = (SubSyncConf *)signal->getDataPtr();  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;    subRecPtr.i = subSyncConf->subscriberData;  if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) {    printf("Trix::execSUB_SYNC_CONF: Failed to find subscription data %u\n", subRecPtr.i);    return;  }  ndbrequire(subRec->subscriptionId == subSyncConf->subscriptionId);  ndbrequire(subRec->subscriptionKey == subSyncConf->subscriptionKey);  subRecPtr.p = subRec;  if(subSyncConf->part == SubscriptionData::MetaData)    startTableScan(signal, subRecPtr);  else {    subRec->expectedConf--;    checkParallelism(signal, subRec);    if (subRec->expectedConf == 0)      buildComplete(signal, subRecPtr);  }}void Trix::execSUB_SYNC_REF(Signal* signal){  jamEntry();  SubSyncRef * subSyncRef = (SubSyncRef *)signal->getDataPtr();  SubscriptionRecPtr subRecPtr;  SubscriptionRecord* subRec;  subRecPtr.i = subSyncRef->subscriberData;  if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) {    printf("Trix::execSUB_SYNC_REF: Failed to find subscription data %u\n", subRecPtr.i);    return;  }  subRecPtr.p = subRec;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -