-
-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
[FEAT] Add NOWAIT and SKIP LOCKED lock support for MySQL #7236
Conversation
Add pessimistic_write_or_fail and pessimistic_partial_write support for mysql Closes: typeorm#6530
Nice, thanks for adding this! Any idea how fast this can be pushed into the next release? |
Probably have to add a check for the driver version so it doesn't get used on earlier MySQL versions. |
Thank you for contribution! As @nebkat mentioned, we need to add a version check (can be added into test itself) in order to prevent CI fail. |
@pleerock added the tests with version checks. CI passes now. |
Probably outside the scope of this PR but seeing as all the checks in |
Thank you for contribution! 🎉 |
* typeorm-0.2.30: (212 commits) version bump docs: fix javascript usage examples (typeorm#7031) fix: resolve migration for UpdateDateColumn without ON UPDATE clause (typeorm#7057) fix: Error when sorting by an embedded entity while using join and skip/take (typeorm#7082) fix: resolves Postgres sequence identifier length error (typeorm#7115) feat: closure table custom naming (typeorm#7120) feat: relations: Orphaned row action (typeorm#7105) docs: fix invalid code block in "find many options" (typeorm#7268) docs: Embodying the example (typeorm#7116) docs: document withDeleted option (typeorm#7132) fix: return 'null' (instead of 'undefined') on lazy relations that have no results (typeorm#7146) (typeorm#7147) docs: update cascade options (typeorm#7140) docs: add .ts to supported ormconfig formats (typeorm#7139) fix: improve stack traces when using persist executor (typeorm#7218) refactor: remove Oracle multirow insert workaround (since typeorm#6927) (typeorm#7083) feat: add NOWAIT and SKIP LOCKED lock support for MySQL (typeorm#7236) docs: update OneToMany grammar (typeorm#7252) feat: JavaScript file migrations output (typeorm#7253) docs: update Repository.ts (typeorm#7254) chore: update dependency cli-highlight to v2.1.10 (typeorm#7265) ...
Adds
SKIP LOCKED
(pessimistic_partial_write) andNOWAIT
(pessimistic_write_or_fail) support for Mysql drivers.Database support as follows
Added test cases, but they do not pass with the current versions listed in docker-compose. (Have tested with the versions listed above and they pass). Generally, how does typeorm handle cases like this?
References:
https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html
https://jira.mariadb.org/browse/MDEV-13115
https://mariadb.com/kb/en/wait-and-nowait/