-
Notifications
You must be signed in to change notification settings - Fork 420
database transaction support in typescript #1847
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
All committers have signed the CLA. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for database transactions in both the JavaScript and Rust runtimes. Key changes include:
- Introducing transaction methods (begin, commit, rollback, and savepoint) in the JavaScript bindings.
- Implementing the Rust-side transaction logic and exposing it via the core SQLDB modules.
- Updating Cargo.toml to use a different branch for tokio-postgres and postgres-protocol.
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
runtimes/js/src/sqldb.rs | Adds transaction support with new async methods (begin, commit, rollback, savepoint) in the SQLDatabase API. |
runtimes/js/encore.dev/storage/sqldb/database.ts | Revises the database API to integrate transactions and improve documentation. |
runtimes/core/src/sqldb/transaction.rs | Introduces the Rust implementation for transactions including transaction lifecycle management. |
runtimes/core/src/sqldb/mod.rs | Exposes the new transaction module in the core SQLDB module. |
runtimes/core/src/sqldb/client.rs | Updates the client API to support beginning new transactions. |
Cargo.toml | Updates dependency branches for tokio-postgres and postgres-protocol. |
Comments suppressed due to low confidence (1)
runtimes/js/src/sqldb.rs:173
- [nitpick] Consider refactoring this pattern to avoid the explicit use of deref_mut() for improved readability; matching directly on the locked Option may be clearer.
if let Some(ref mut tx) = self.tx.lock().await.deref_mut() {
17c5042
to
e258738
Compare
eandre
reviewed
Apr 7, 2025
e0fd33e
to
3b1ed1b
Compare
eandre
approved these changes
Apr 8, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds support for transactions in runtimes/core and runtimes/js
We should probably merge encoredev/rust-postgres#1 and update Cargo.toml again. (suggested that change upstream as well sfackler/rust-postgres#1230)