Class ProfileDmlResult (2.37.0-rc)

Represents the result and profile stats of a data modifying operation using spanner::Client::ProfileDml().

This class encapsulates the result of a Cloud Spanner DML operation, i.e., INSERT, UPDATE, or DELETE.

Example:
  spanner::ProfileDmlResult dml_result;
 
auto commit_result = client.Commit(
     
[&client,
       
&dml_result](spanner::Transaction txn) -> StatusOr<spanner::Mutations> {
       
auto update = client.ProfileDml(
            std
::move(txn),
            spanner
::SqlStatement(
               
"UPDATE Albums SET MarketingBudget = MarketingBudget * 2"
               
"  WHERE SingerId = 1 AND AlbumId = 1"));
       
if (!update) return std::move(update).status();
        dml_result
= *std::move(update);
       
return spanner::Mutations{};
     
});
 
if (!commit_result) throw std::move(commit_result).status();

 
// Stats only available after statement has been executed.
  std
::cout << "Rows modified: " << dml_result.RowsModified();
 
auto execution_stats = dml_result.ExecutionStats();
 
if (execution_stats) {
   
for (auto const& stat : *execution_stats) {
      std
::cout << stat.first << ":\t" << stat.second << "\n";
   
}
 
}

Constructors

ProfileDmlResult()

ProfileDmlResult(std::unique_ptr< ResultSourceInterface >)

Parameter
Name Description
source std::unique_ptr< ResultSourceInterface >

ProfileDmlResult(ProfileDmlResult &&)

Parameter
Name Description
ProfileDmlResult &&

Operators

operator=(ProfileDmlResult &&)

Parameter
Name Description
ProfileDmlResult &&
Returns
Type Description
ProfileDmlResult &

Functions

RowsModified() const

Returns the number of rows modified by the DML statement.

Returns
Type Description
std::int64_t

ExecutionStats() const

Returns a collection of key value pair statistics for the SQL statement execution.

Returns
Type Description
absl::optional< std::unordered_map< std::string, std::string > >

ExecutionPlan() const

Returns the plan of execution for the SQL statement.

Returns
Type Description
absl::optional< spanner::ExecutionPlan >