| 523 | } |
| 524 | |
| 525 | void Applier::cleanupSavepoint(thread_db* tdbb, TraNumber traNum, bool undo) |
| 526 | { |
| 527 | jrd_tra* transaction = NULL; |
| 528 | if (!m_txnMap.get(traNum, transaction)) |
| 529 | raiseError("Transaction %" SQUADFORMAT" is not found", traNum); |
| 530 | |
| 531 | LocalThreadContext context(tdbb, transaction); |
| 532 | |
| 533 | if (!transaction->tra_save_point || transaction->tra_save_point->isRoot()) |
| 534 | raiseError("Transaction %" SQUADFORMAT" has no savepoints to cleanup", traNum); |
| 535 | |
| 536 | if (undo) |
| 537 | transaction->rollbackSavepoint(tdbb); |
| 538 | else |
| 539 | transaction->releaseSavepoint(tdbb); |
| 540 | } |
| 541 | |
| 542 | void Applier::insertRecord(thread_db* tdbb, TraNumber traNum, |
| 543 | const MetaName& relName, |
nothing calls this directly
no test coverage detected