Skip to content

Commit

Permalink
Rename savepoint APIs for better clarity/consistency
Browse files Browse the repository at this point in the history
Rather than aligning with the less-than-ideal ADO.NET names
(Save/Rollback/Release), switch to CreateSavepoint/RollbackToSavepoint/
ReleaseSavepoint.
  • Loading branch information
roji committed Jun 1, 2020
1 parent 4f453d6 commit c76b14d
Show file tree
Hide file tree
Showing 10 changed files with 73 additions and 73 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@ public virtual Task CreateSavepointAsync(string savepointName, CancellationToken
}

/// <inheritdoc />
public virtual void RollbackSavepoint(string savepointName)
public virtual void RollbackToSavepoint(string savepointName)
=> _logger.TransactionIgnoredWarning();

/// <inheritdoc />
public virtual Task RollbackSavepointAsync(string savepointName, CancellationToken cancellationToken = default)
public virtual Task RollbackToSavepointAsync(string savepointName, CancellationToken cancellationToken = default)
{
_logger.TransactionIgnoredWarning();
return Task.CompletedTask;
Expand Down
16 changes: 8 additions & 8 deletions src/EFCore.Relational/Storage/RelationalConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,7 @@ public virtual void CreateSavepoint(string savepointName)
throw new InvalidOperationException(RelationalStrings.NoActiveTransaction);
}

CurrentTransaction.Save(savepointName);
CurrentTransaction.CreateSavepoint(savepointName);
}

/// <inheritdoc />
Expand All @@ -547,29 +547,29 @@ public virtual Task CreateSavepointAsync(string savepointName, CancellationToken
throw new InvalidOperationException(RelationalStrings.NoActiveTransaction);
}

return CurrentTransaction.SaveAsync(savepointName, cancellationToken);
return CurrentTransaction.CreateSavepointAsync(savepointName, cancellationToken);
}

/// <inheritdoc />
public virtual void RollbackSavepoint(string savepointName)
public virtual void RollbackToSavepoint(string savepointName)
{
if (CurrentTransaction == null)
{
throw new InvalidOperationException(RelationalStrings.NoActiveTransaction);
}

CurrentTransaction.Rollback(savepointName);
CurrentTransaction.RollbackToSavepoint(savepointName);
}

/// <inheritdoc />
public virtual Task RollbackSavepointAsync(string savepointName, CancellationToken cancellationToken = default)
public virtual Task RollbackToSavepointAsync(string savepointName, CancellationToken cancellationToken = default)
{
if (CurrentTransaction == null)
{
throw new InvalidOperationException(RelationalStrings.NoActiveTransaction);
}

return CurrentTransaction.RollbackAsync(savepointName, cancellationToken);
return CurrentTransaction.RollbackToSavepointAsync(savepointName, cancellationToken);
}

/// <inheritdoc />
Expand All @@ -580,7 +580,7 @@ public virtual void ReleaseSavepoint(string savepointName)
throw new InvalidOperationException(RelationalStrings.NoActiveTransaction);
}

CurrentTransaction.Release(savepointName);
CurrentTransaction.ReleaseSavepoint(savepointName);
}

/// <inheritdoc />
Expand All @@ -591,7 +591,7 @@ public virtual Task ReleaseSavepointAsync(string savepointName, CancellationToke
throw new InvalidOperationException(RelationalStrings.NoActiveTransaction);
}

return CurrentTransaction.ReleaseAsync(savepointName, cancellationToken);
return CurrentTransaction.ReleaseSavepointAsync(savepointName, cancellationToken);
}

/// <inheritdoc />
Expand Down
32 changes: 16 additions & 16 deletions src/EFCore.Relational/Storage/RelationalTransaction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ await Logger.TransactionErrorAsync(
}

/// <inheritdoc />
public virtual void Save(string savepointName)
public virtual void CreateSavepoint(string name)
{
var startTime = DateTimeOffset.UtcNow;
var stopwatch = Stopwatch.StartNew();
Expand All @@ -273,7 +273,7 @@ public virtual void Save(string savepointName)
{
using var command = Connection.DbConnection.CreateCommand();
command.Transaction = _dbTransaction;
command.CommandText = GetSavepointSaveSql(savepointName);
command.CommandText = GetCreateSavepointSql(name);
command.ExecuteNonQuery();
}

Expand All @@ -299,7 +299,7 @@ public virtual void Save(string savepointName)
}

/// <inheritdoc />
public virtual async Task SaveAsync(string savepointName, CancellationToken cancellationToken = default)
public virtual async Task CreateSavepointAsync(string name, CancellationToken cancellationToken = default)
{
var startTime = DateTimeOffset.UtcNow;
var stopwatch = Stopwatch.StartNew();
Expand All @@ -317,7 +317,7 @@ public virtual async Task SaveAsync(string savepointName, CancellationToken canc
{
using var command = Connection.DbConnection.CreateCommand();
command.Transaction = _dbTransaction;
command.CommandText = GetSavepointSaveSql(savepointName);
command.CommandText = GetCreateSavepointSql(name);
await command.ExecuteNonQueryAsync(cancellationToken);
}

Expand Down Expand Up @@ -350,10 +350,10 @@ await Logger.TransactionErrorAsync(
/// </summary>
/// <param name="name"> The name of the savepoint to be created. </param>
/// <returns> An SQL string to create the savepoint. </returns>
protected virtual string GetSavepointSaveSql(string name) => "SAVEPOINT " + name;
protected virtual string GetCreateSavepointSql(string name) => "SAVEPOINT " + name;

/// <inheritdoc />
public virtual void Rollback(string savepointName)
public virtual void RollbackToSavepoint(string name)
{
var startTime = DateTimeOffset.UtcNow;
var stopwatch = Stopwatch.StartNew();
Expand All @@ -370,7 +370,7 @@ public virtual void Rollback(string savepointName)
{
using var command = Connection.DbConnection.CreateCommand();
command.Transaction = _dbTransaction;
command.CommandText = GetSavepointRollbackSql(savepointName);
command.CommandText = GetRollbackToSavepointSql(name);
command.ExecuteNonQuery();
}

Expand All @@ -396,7 +396,7 @@ public virtual void Rollback(string savepointName)
}

/// <inheritdoc />
public virtual async Task RollbackAsync(string savepointName, CancellationToken cancellationToken = default)
public virtual async Task RollbackToSavepointAsync(string name, CancellationToken cancellationToken = default)
{
var startTime = DateTimeOffset.UtcNow;
var stopwatch = Stopwatch.StartNew();
Expand All @@ -414,7 +414,7 @@ public virtual async Task RollbackAsync(string savepointName, CancellationToken
{
using var command = Connection.DbConnection.CreateCommand();
command.Transaction = _dbTransaction;
command.CommandText = GetSavepointRollbackSql(savepointName);
command.CommandText = GetRollbackToSavepointSql(name);
await command.ExecuteNonQueryAsync(cancellationToken);
}

Expand Down Expand Up @@ -447,10 +447,10 @@ await Logger.TransactionErrorAsync(
/// </summary>
/// <param name="name"> The name of the savepoint to be created. </param>
/// <returns> An SQL string to create the savepoint. </returns>
protected virtual string GetSavepointRollbackSql(string name) => "ROLLBACK TO " + name;
protected virtual string GetRollbackToSavepointSql(string name) => "ROLLBACK TO " + name;

/// <inheritdoc />
public virtual void Release(string savepointName)
public virtual void ReleaseSavepoint(string name)
{
var startTime = DateTimeOffset.UtcNow;
var stopwatch = Stopwatch.StartNew();
Expand All @@ -467,7 +467,7 @@ public virtual void Release(string savepointName)
{
using var command = Connection.DbConnection.CreateCommand();
command.Transaction = _dbTransaction;
command.CommandText = GetSavepointReleaseSql(savepointName);
command.CommandText = GetReleaseSavepointSql(name);
command.ExecuteNonQuery();
}

Expand All @@ -493,7 +493,7 @@ public virtual void Release(string savepointName)
}

/// <inheritdoc />
public virtual async Task ReleaseAsync(string savepointName, CancellationToken cancellationToken = default)
public virtual async Task ReleaseSavepointAsync(string name, CancellationToken cancellationToken = default)
{
var startTime = DateTimeOffset.UtcNow;
var stopwatch = Stopwatch.StartNew();
Expand All @@ -511,7 +511,7 @@ public virtual async Task ReleaseAsync(string savepointName, CancellationToken c
{
using var command = Connection.DbConnection.CreateCommand();
command.Transaction = _dbTransaction;
command.CommandText = GetSavepointReleaseSql(savepointName);
command.CommandText = GetReleaseSavepointSql(name);
await command.ExecuteNonQueryAsync(cancellationToken);
}

Expand Down Expand Up @@ -544,13 +544,13 @@ await Logger.TransactionErrorAsync(
/// SQL statement which releases a savepoint with the given name.
/// </para>
/// <para>
/// If savepoint release isn't supported, <see cref="Release "/> and <see cref="ReleaseAsync "/> should
/// If savepoint release isn't supported, <see cref="ReleaseSavepoint "/> and <see cref="ReleaseSavepointAsync "/> should
/// be overridden to do nothing.
/// </para>
/// </summary>
/// <param name="name"> The name of the savepoint to be created. </param>
/// <returns> An SQL string to create the savepoint. </returns>
protected virtual string GetSavepointReleaseSql(string name) => "RELEASE SAVEPOINT " + name;
protected virtual string GetReleaseSavepointSql(string name) => "RELEASE SAVEPOINT " + name;

/// <inheritdoc />
public virtual bool AreSavepointsSupported => true;
Expand Down
12 changes: 6 additions & 6 deletions src/EFCore.Relational/Update/Internal/BatchExecutor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ public virtual int Execute(

if (transaction?.AreSavepointsSupported == true)
{
transaction.Save(SavepointName);
transaction.CreateSavepoint(SavepointName);
createdSavepoint = true;
}
}
Expand All @@ -99,7 +99,7 @@ public virtual int Execute(
{
if (createdSavepoint)
{
transaction.Rollback(SavepointName);
transaction.RollbackToSavepoint(SavepointName);
}

throw;
Expand All @@ -108,7 +108,7 @@ public virtual int Execute(
{
if (createdSavepoint)
{
transaction.Release(SavepointName);
transaction.ReleaseSavepoint(SavepointName);
}
else if (beganTransaction)
{
Expand Down Expand Up @@ -154,7 +154,7 @@ public virtual async Task<int> ExecuteAsync(

if (transaction?.AreSavepointsSupported == true)
{
await transaction.SaveAsync(SavepointName, cancellationToken);
await transaction.CreateSavepointAsync(SavepointName, cancellationToken);
createdSavepoint = true;
}
}
Expand All @@ -174,7 +174,7 @@ public virtual async Task<int> ExecuteAsync(
{
if (createdSavepoint)
{
await transaction.RollbackAsync(SavepointName, cancellationToken);
await transaction.RollbackToSavepointAsync(SavepointName, cancellationToken);
}

throw;
Expand All @@ -183,7 +183,7 @@ public virtual async Task<int> ExecuteAsync(
{
if (createdSavepoint)
{
await transaction.ReleaseAsync(SavepointName, cancellationToken);
await transaction.ReleaseSavepointAsync(SavepointName, cancellationToken);
}
else if (beganTransaction)
{
Expand Down
8 changes: 4 additions & 4 deletions src/EFCore.SqlServer/Storage/Internal/SqlServerTransaction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,16 @@ public SqlServerTransaction(


/// <inheritdoc />
protected override string GetSavepointSaveSql(string name) => "SAVE TRANSACTION " + name;
protected override string GetCreateSavepointSql(string name) => "SAVE TRANSACTION " + name;

/// <inheritdoc />
protected override string GetSavepointRollbackSql(string name) => "ROLLBACK TRANSACTION " + name;
protected override string GetRollbackToSavepointSql(string name) => "ROLLBACK TRANSACTION " + name;

/// <inheritdoc />
public override void Release(string savepointName) {}
public override void ReleaseSavepoint(string name) {}

/// <inheritdoc />
public override Task ReleaseAsync(string savepointName, CancellationToken cancellationToken = default)
public override Task ReleaseSavepointAsync(string name, CancellationToken cancellationToken = default)
=> Task.CompletedTask;
}
}
10 changes: 5 additions & 5 deletions src/EFCore/Infrastructure/DatabaseFacade.cs
Original file line number Diff line number Diff line change
Expand Up @@ -220,17 +220,17 @@ public virtual Task CreateSavepointAsync([NotNull] string savepointName, Cancell
/// Rolls back all commands that were executed after the specified savepoint was established.
/// </summary>
/// <param name="savepointName"> The name of the savepoint to roll back to. </param>
public virtual void RollbackSavepoint([NotNull] string savepointName)
=> Dependencies.TransactionManager.RollbackSavepoint(savepointName);
public virtual void RollbackToSavepoint([NotNull] string savepointName)
=> Dependencies.TransactionManager.RollbackToSavepoint(savepointName);

/// <summary>
/// Rolls back all commands that were executed after the specified savepoint was established.
/// </summary>
/// <param name="savepointName"> The name of the savepoint to roll back to. </param>
/// <param name="cancellationToken"> The cancellation token. </param>
/// <returns> A <see cref="Task" /> representing the asynchronous operation. </returns>
public virtual Task RollbackSavepointAsync([NotNull] string savepointName, CancellationToken cancellationToken = default)
=> Dependencies.TransactionManager.RollbackSavepointAsync(savepointName, cancellationToken);
public virtual Task RollbackToSavepointAsync([NotNull] string savepointName, CancellationToken cancellationToken = default)
=> Dependencies.TransactionManager.RollbackToSavepointAsync(savepointName, cancellationToken);

/// <summary>
/// Destroys a savepoint previously defined in the current transaction. This allows the system to
Expand All @@ -253,7 +253,7 @@ public virtual Task ReleaseSavepointAsync([NotNull] string savepointName, Cancel
/// <summary>
/// Gets a value that indicates whether this <see cref="DatabaseFacade"/> instance supports
/// database savepoints. If <see langword="false" />, the methods <see cref="CreateSavepointAsync"/>,
/// <see cref="RollbackSavepointAsync"/>
/// <see cref="RollbackToSavepointAsync"/>
/// and <see cref="ReleaseSavepointAsync"/> as well as their synchronous counterparts are expected to throw
/// <see cref="NotSupportedException"/>.
/// </summary>
Expand Down
Loading

0 comments on commit c76b14d

Please sign in to comment.