|
1 |
| -/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. |
| 1 | +/* Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. |
2 | 2 |
|
3 | 3 | This program is free software; you can redistribute it and/or modify
|
4 | 4 | it under the terms of the GNU General Public License as published by
|
@@ -4515,6 +4515,36 @@ void Dbtc::execSIGNAL_DROPPED_REP(Signal* signal)
|
4515 | 4515 | signal, ScanTabRef::SignalLength, JBB);
|
4516 | 4516 | break;
|
4517 | 4517 | }
|
| 4518 | + case GSN_TRANSID_AI: //TUP -> TC |
| 4519 | + { |
| 4520 | + jam(); |
| 4521 | + /** |
| 4522 | + * TRANSID_AI is received as a result of performing a read on |
| 4523 | + * the index table as part of a (unique) index operation. |
| 4524 | + */ |
| 4525 | + const TransIdAI * const truncatedTransIdAI = |
| 4526 | + reinterpret_cast<const TransIdAI*>(&rep->originalData[0]); |
| 4527 | + |
| 4528 | + TcIndexOperationPtr indexOpPtr; |
| 4529 | + indexOpPtr.i = truncatedTransIdAI->connectPtr; |
| 4530 | + TcIndexOperation* indexOp = c_theIndexOperationPool.getPtr(indexOpPtr.i); |
| 4531 | + indexOpPtr.p = indexOp; |
| 4532 | + if (indexOp == NULL) { |
| 4533 | + jam(); |
| 4534 | + // Missing index operation - ignore |
| 4535 | + break; |
| 4536 | + } |
| 4537 | + |
| 4538 | + /* No more TransIdAI will arrive, abort */ |
| 4539 | + apiConnectptr.i = indexOp->connectionIndex; |
| 4540 | + ptrCheckGuard(apiConnectptr, capiConnectFilesize, apiConnectRecord); |
| 4541 | + |
| 4542 | + terrorCode = ZGET_DATAREC_ERROR; |
| 4543 | + abortErrorLab(signal); |
| 4544 | + break; |
| 4545 | + } |
| 4546 | + case GSN_TRANSID_AI_R: //TODO |
| 4547 | + jam(); |
4518 | 4548 | default:
|
4519 | 4549 | jam();
|
4520 | 4550 | /* Don't expect dropped signals for other GSNs,
|
|
0 commit comments