Azure / Azure/azure-sdk-for-cpp
TableClient::SubmitTransaction() doesn't work for multiple Delete TransactionSteps
- Dominant language
- C++
- Stars
- 205
- Forks
- 172
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 37
Description
**Describe the bug**
TableClient::SubmitTransaction() with more than one TransactionStep.Action set to Delete doesn't delete entities. It works fine with a single Delete Action.
**To Reproduce**
```
#include
#include
#include
#include
int main() {
auto cred = std::make_shared();
std::string tableName = "";
std::string storageUrl= "";
auto tableClient = Azure::Data::Tables::TableClient(storageUrl, tableName, cred);
auto serviceClient = Azure::Data::Tables::TableServiceClient(storageUrl, cred);
serviceClient.CreateTable(tableName);
// Setup
int numEntries = 5;
auto transaction = std::vector(numEntries);
for (int i = 0; i < numEntries; i++) {
auto entity = Azure::Data::Tables::Models::TableEntity();
entity.SetPartitionKey("partition");
entity.SetRowKey(std::to_string(i));
transaction[i].Entity = entity;
transaction[i].Action = Azure::Data::Tables::Models::TransactionActionType::Add;
}
tableClient.SubmitTransaction(transaction);
auto response = tableClient.QueryEntities();
std::cout << "returned " << response.TableEntities.size() << " entities" << std::endl;
// Test
int testNumEntries = 2; // Works with 1
std::vector testActions = {
Azure::Data::Tables::Models::TransactionActionType::Delete,
Azure::Data::Tables::Models::TransactionActionType::Delete
};
auto testTransaction = std::vector(testNumEntries);
for (int i = 0; i < testNumEntries; i++) {
auto entity = Azure::Data::Tables::Models::TableEntity();
entity.SetPartitionKey("partition");
entity.SetRowKey(std::to_string(i));
testTransaction[i].Entity = entity;
testTransaction[i].Action = testActions[i];
}
auto testResponse = tableClient.SubmitTransaction(testTransaction);
std::cout << "returned " << testResponse.Value.StatusCode << std::endl;
}
```
**Expected behavior**
The first two entities will be deleted
**Setup (please complete the following information):**
- OS: Ubuntu 24.04
- IDE : command line
- Version of the Library used azure-data-tables-cpp_1.0.0-beta.6
Contributor guide
Assessment
This issue has not been assessed yet.