Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Database.inTransaction #192

Merged
merged 1 commit into from
May 8, 2020
Merged

add Database.inTransaction #192

merged 1 commit into from
May 8, 2020

Conversation

tanner0101
Copy link
Member

Adds Database.inTransaction for checking if a database is already in a transaction (fixes 23, #119).

Database drivers are expected to keep track of whether they are already in a transaction and not start a new one if they do not supported nested transactions.

@tanner0101 tanner0101 added the enhancement New feature or request label Mar 6, 2020
@tanner0101 tanner0101 added this to Awaiting Review in Vapor 4 via automation Mar 6, 2020
@tanner0101
Copy link
Member Author

Related PR implementing this in SQLite for example: #192

@mxcl I currently have the database driver checking if inTransaction is true before deciding whether to create a nested transaction. Does this seem like reasonable behavior?

With inTransaction publicly available, it's also possible for the user to check this themselves so the other option here is to throw an error if nested transactions aren't supported.

@tanner0101 tanner0101 changed the base branch from master to gm May 8, 2020 13:22
@tanner0101 tanner0101 merged commit d52759c into gm May 8, 2020
Vapor 4 automation moved this from Awaiting Review to Done May 8, 2020
@tanner0101 tanner0101 deleted the tn-in-transaction branch May 8, 2020 13:22
tanner0101 added a commit that referenced this pull request May 29, 2020
* Uniform field paths (#268)

* unify field path structure for all drivers

* cleanup files

* rm dead code

* nested group option

* protocol cleanup + timestamp updates

* updates

* add Database.inTransaction (#192)

* optional field updates

* transaction + optional updates

* add batch delete, fixes #114

* add constraint names, fixes #118

* support arbitrary join ordering, fixes #128

* add nil update tests, fixes #149

* add EnumBuilder.read(), fixes #194

* support @OptionalParent eager load, fixes #208

* test alias nesting, fixes #223

* parent optional

* Fix dummy db placeholder (#200)

* Add tests for placeholder for dummy database

* Fix placeholder position

Placeholder position should start at 1, not 2.
No need to add 1 to position.

* Rename variable to result

* crud updates

* clear method and middleware in batch creation (#220)

Co-authored-by: Tanner <tannernelson@gmail.com>

* merge conflicts

* todo

* batch delete middleware

* Add entire models to the test database output. (#265)

Co-authored-by: Tanner <tannernelson@gmail.com>

* readble coding errors, fixes #231

* add decode test

* add alter table constraints, fixes #235

* skip constraint test sqlite

* fix @enum and @OptionalEnum decode, fixes #249

* add fluent sql sort overloads, fixes #266

* optional field batch create test, fixes #272

* add join partial select, fixes #274

* remove XCTUnwrap usages, fixes #278

* checkout postgres fluent gm branch

* fix unit tests

* setup dual dbs

* retest

* Make siblings relation properties public (#275)

* add filter to partial select, fixes #274

* fix @OptionalParent.get when nil

* add test for set to nil, fixes #284

* doc blocks

* updat license year

* use sqlite gm branch

* package update

* mysql updates

* fix workflows

* fluent branch

* update mongo

* rm nested

Co-authored-by: Jean-Charles Campagne <jc.campagne@gmail.com>
Co-authored-by: Mads Odgaard <mads@madsodgaard.com>
Co-authored-by: Mathew Polzin <matt.polzin@gmail.com>
Co-authored-by: Florian Friedrich <ffried@me.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Vapor 4
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

1 participant