[FEAT] Add NOWAIT and SKIP LOCKED lock support for MySQL#7236
[FEAT] Add NOWAIT and SKIP LOCKED lock support for MySQL#7236pleerock merged 4 commits intotypeorm:masterfrom
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/