On Thursday, 16 June 2022 at 13:54:52 UTC, Steven Schveighoffer wrote:

[scope (success) lowered to finally]

[...]

Furthermore I always thought of scope guards as a means for cleanup. Cleanup implies in my eyes removing things which have been used in a previous task. This intended use is documented here:

https://tour.dlang.org/tour/en/gems/scope-guards

    Using scope guards makes code much cleaner and allows resource allocation     and clean up code to be placed next to each other. These little helpers also     improve safety because they make sure certain cleanup code is always called
     independent of which paths are actually taken at runtime.

Performing a COMMIT is rather the opposite of cleanup: It makes (writes) changes to the database persistent.

Semantically, you are just not undoing (rollback) the previous steps.

Objection! Not doing a rollback is not the same as doing a COMMIT. Even not "semantically". Until the COMMIT has succeeded none of the changed data of the transactions is visible in other DMBS sessions.

Reply via email to