Azure / Azure/azure-sdk-for-cpp

TableClient::SubmitTransaction() doesn't work for multiple Delete TransactionSteps

Open
#7,184 2 comments 0 reactions 1 assignee Claimed by @xirzec View on GitHub
Client customer-reported question Tables
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.