Comments (3)
If has_broken
returns true, the pool will dispose of the connection. The expected behavior is that has_broken
should return true if the connection is determined to be broken to the point where it is very unlikely that it would be usable in the future, and it should determine that quickly - with no network or filesystem IO, for example. The implementation for r2d2-postgres
checks to see if there have been any IO errors communicating with the database - if so, the communication stream has desynchronized so any further queries will almost certainly fail.
I'm not sure if there's an equivalent state in SQLite since it's talking directly to the filesystem. It may just make sense for your implementation to return false
.
from r2d2.
Ok,
There is only memory status check when calling sqlite3_getautocommit
and sqlite3_stmt_busy
.
What happens if a transaction is pending when a postgresql connection is returned to the pool ?
BEGIN;
INSERT INTO foo (bar) VALUES (1);
-- connection released
Thanks.
from r2d2.
It will continue to be in a transaction. Transactions are managed through an RAII based API that will statically prevent an active transaction if that API is used. If someone manually executes a BEGIN
and forgets the accompanying COMMIT
or ROLLBACK
, nothing currently checks for that fact.
from r2d2.
Related Issues (20)
- roadmap to v1.0.0? HOT 3
- Will r2d2 create more connections than max_size when using builder()? HOT 3
- pool.get() returns Error(None) -- best debugging strategy? HOT 1
- Is there a way to not keep idle connections? HOT 8
- `get_timeout` exceeds timeout HOT 11
- Can be used in the future such as tokio, async_std? HOT 1
- Use `compare_exchange` or `compare_exchange_weak` instead
- Is there a way to drop or close an actual connection when I'm using PooldConnection? HOT 4
- "Named" connections HOT 3
- Why example use `let pool = pool.clone()` in a for loop ? HOT 2
- Document relationship between `min_idle`, `idle_timeout` and `max_lifetime` HOT 1
- How to set timezone when linking HOT 1
- Release? HOT 1
- Allow hooking on connection get-from-pool and release-to-pool HOT 8
- Using behind proxychains HOT 1
- Seg fault with Postgres HOT 14
- Remove parking_lot dependency now that std's Mutex is faster than before HOT 3
- [Bug] CI test failure on arm HOT 4
- r2d2::Error should derive PartialEq and Clone HOT 4
- Pool building freezes when connections drop during initial setup HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from r2d2.