MCPcopy Create free account
hub / github.com/documentdb/documentdb / DeleteOneInternalCore

Function DeleteOneInternalCore

pg_documentdb/src/commands/delete.c:1086–1133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1084
1085
1086static void
1087DeleteOneInternalCore(MongoCollection *collection, int64 shardKeyHash,
1088 DeleteOneParams *deleteOneParams,
1089 text *transactionId, DeleteOneResult *deleteOneResult)
1090{
1091 if (transactionId != NULL)
1092 {
1093 /* transaction ID specified, use retryable write path */
1094 RetryableWriteResult writeResult;
1095
1096 /*
1097 * If a retry record exists, delete it since only a single retry is allowed.
1098 */
1099 if (DeleteRetryRecord(collection->collectionId, shardKeyHash, transactionId,
1100 &writeResult))
1101 {
1102 /*
1103 * Get rows affected from the retry record.
1104 */
1105 deleteOneResult->isRowDeleted = writeResult.rowsAffected > 0;
1106
1107 deleteOneResult->resultDeletedDocument = writeResult.resultDocument;
1108 }
1109 else
1110 {
1111 /*
1112 * No retry record exists, delete the row and get the object ID.
1113 */
1114 DeleteOneInternal(collection, deleteOneParams, shardKeyHash,
1115 deleteOneResult);
1116
1117 /*
1118 * Remember that we performed a retryable write with the given
1119 * transaction ID.
1120 */
1121 InsertRetryRecord(collection->collectionId, shardKeyHash, transactionId,
1122 deleteOneResult->objectId, deleteOneResult->isRowDeleted,
1123 deleteOneResult->resultDeletedDocument);
1124 }
1125 }
1126 else
1127 {
1128 /*
1129 * No transaction ID specified, do regular delete.
1130 */
1131 DeleteOneInternal(collection, deleteOneParams, shardKeyHash, deleteOneResult);
1132 }
1133}
1134
1135
1136/*

Callers 2

CallDeleteOneFunction · 0.85
command_delete_workerFunction · 0.85

Calls 3

DeleteRetryRecordFunction · 0.85
DeleteOneInternalFunction · 0.85
InsertRetryRecordFunction · 0.85

Tested by

no test coverage detected