-
Notifications
You must be signed in to change notification settings - Fork 45
feat: connection pooling (wip) #213
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
Draft
beeequeue
wants to merge
14
commits into
unjs:main
Choose a base branch
from
beeequeue:connection
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
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
beeequeue
commented
Feb 7, 2026
| @@ -1,63 +1,79 @@ | |||
| import pg from "pg"; | |||
| import { type ClientConfig, Client, type QueryResult } from "pg"; | |||
| import * as mutex from "ciorent/mutex"; | |||
Author
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.
ciorent should optimally be bundled instead of dependend on, as the used code from it is only around 150B minified, and the install size is 4kB
im not sure how to configure this with obuild though, im too used to tsdown :^)
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.
this is a wip implementation of my idea described in #202.
it adds a new
acquireConnection()function to databases and connectors that allows users to grab a connection from the connection pool of a connector if it supports it.for connectors that don't it will block other queries until the connection is disposed of, allowing to run transactions without them possibly being disturbed by other queries being ran in between.
to do this i also restructured the types to be based on
Connections, whichConnectorandDatabasethen extend. im not sure if this is the best way to do it, but it made it quite clean code-wise... there are a lot of re-used function definitions between them all.ultimately this pr will have to implement the connection logic for every connector which will make it quite big, but im not sure how to split it up right now...
the branch is currently based on the one from #204 since i need it to build the project :^)
fixes #202
part of work towards #49