feat: implement "FOR UPDATE OF" for postgres driver #7040
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of change
Fixes #4084
This PR implements some parts of the unmerged #5253 PR, improving it to allow specifying multiple tables and checking whether the referenced tables exists in the query.
Also, there are some improvements to related methods JSDocs/Type definitions, removing invalid
where
space, and adding missing lock mode toFindOptions
.Note for whoever want to implement this for other drivers
Oracle uses a different syntax, specifying
table.column
orcolumn
instead oftable
after theOF
clause, so an special treatment needs to be done when oracle is the driver. source1 source2MySQL / Aurora do indeed support this syntax in their latest versions, but tests are using an outdated version of them, so a new updated image is needed for properly testing the feature. source
MySQL / Aurora in their latest version does not need to use a different
if
forreturn " LOCK IN SHARE MODE";
, as they support theFOR SHARE
syntax. *same source as aboveMySQL / Aurora / Oracle supports
SKIP LOCKED
andNOWAIT
, so when new tests images are added they can be included in the correspondingif
. *same sources as abovePull-Request Checklist
master
branchnpm run lint
passes with this changenpm run test
passes with this changeFixes #0000