| 4013 | } |
| 4014 | |
| 4015 | void jrd_tra::rollbackSavepoint(thread_db* tdbb, bool preserveLocks) |
| 4016 | /************************************** |
| 4017 | * |
| 4018 | * r o l l b a c k S a v e p o i n t |
| 4019 | * |
| 4020 | ************************************** |
| 4021 | * |
| 4022 | * Functional description |
| 4023 | * Rollback last savepoint and free it. |
| 4024 | * |
| 4025 | **************************************/ |
| 4026 | { |
| 4027 | if (tra_save_point && !(tra_flags & TRA_system)) |
| 4028 | { |
| 4029 | REPL_save_cleanup(tdbb, this, tra_save_point, true); |
| 4030 | |
| 4031 | if (tra_flags & TRA_ex_restart) |
| 4032 | preserveLocks = true; |
| 4033 | |
| 4034 | Jrd::ContextPoolHolder context(tdbb, tra_pool); |
| 4035 | tra_save_point = tra_save_point->rollback(tdbb, NULL, preserveLocks); |
| 4036 | } |
| 4037 | } |
| 4038 | |
| 4039 | void jrd_tra::rollbackToSavepoint(thread_db* tdbb, SavNumber number) |
| 4040 | /************************************** |
no test coverage detected