Comments (2)
I think work around is to keep a reference 'owned' and then clone it to pass make new connections to pass to threads, as it is done in the r2d2 connection pool manager type. Have you looked at that yet? It will maintain the reference for you.
Ideally, the database and connection structures should be separated as they are done in other client api's into a Database and a Connection type; where you first create a Database, and then you pass an Arc to each task and create a local Connection inside each task. The atomic operation would only be when creating the connection within a task. Unfortunately it is not structured that way because the crate was originally derived from rusqlite, but there should be no technical issue preventing the creation of thousands of connections across many tasks. It would require the existing Connection type to be refactored however.
from duckdb-rs.
Thanks for the reply. I already did something similar inside my own code.
I'll await a reply on perhaps changing the API, which I'd be more than happy to do. But if there is no desire to change it then feel free to close the issue :)
from duckdb-rs.
Related Issues (20)
- Compared to sqlite, query execution speed is several times slower in rust code HOT 13
- BUG: Panic on `SELECT * FROM arrow(?, ?)` when using `TimestampMillisecondArray` arrow type. HOT 5
- Segfault when using `appender` with Generated Columns
- Question: If an INSERT statement includes a RETURNING Clause, how can I retrieve the returned content? HOT 4
- Support for Decimal128 & Decimal256 without downcasting to f64 HOT 6
- update link to param types in rust client api
- Pivot not working with prepared statements HOT 1
- ColumnExpression
- using vendored_openssl with bundled ducdkb-rs HOT 2
- Bump to DuckDB 0.10.3 HOT 3
- Help: how to fetch datetime type correctly? HOT 1
- `FromSql` is not implemented for `Vec<f64>`
- [BUG] 'gen_random_uuid()' Constraint Error: Duplicate key HOT 1
- BUG: duckdb::data_t* duckdb::Allocator::AllocateData(duckdb::idx_t): Assertion `size > 0' failed HOT 1
- Extension Metadata HOT 5
- Vec<u32> serialization?
- Cannot use `duckdb_interrupt` due to private `InnerConnection`
- Feature request - Decimal type in appender API HOT 3
- Leading x00 byte when querying BIT value using arrow
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 duckdb-rs.