Comments (9)
OK. I closed this issue.
The next version 0.5.3 will be released this weekend.
from rust-oracle.
I tried it and it worked on my local machine. However it is dirty work. I cannot decide its API design now. Well, I'll decide it and release the next version within a few weeks.
from rust-oracle.
No rush from me. I'm doing this as a hobby project at the moment and trying to narrow down its performance issues. If you want to pre-release a test version I can give it a try.
from rust-oracle.
I added REF_CURSOR support to the git master branch.
I have not written documents about it. oracle::sql_type::RefCursor
type has four query methods. See this test code also.
Implicit statement results are also supported. See this doc comment.
from rust-oracle.
I was having a look at this this morning. I use r2d2-oracle
for connection pooling and when I link that to 0.5.3-dev of rust-oracle
(current git master) it complains about some async methods:
error[E0277]: `*mut oracle::binding::dpiConn` cannot be shared between threads safely
--> src/lib.rs:76:5
|
76 | type Connection = oracle::Connection;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut oracle::binding::dpiConn` cannot be shared between threads safely
|
::: /home/steven/.cargo/registry/src/github.com-1ecc6299db9ec823/r2d2-0.8.9/src/lib.rs:72:22
|
72 | type Connection: Send + 'static;
| ---- required by this bound in `r2d2::ManageConnection::Connection`
|
= help: within `oracle::connection::InnerConn`, the trait `Sync` is not implemented for `*mut oracle::binding::dpiConn`
= note: required because it appears within the type `oracle::connection::InnerConn`
= note: required because of the requirements on the impl of `Send` for `Arc<oracle::connection::InnerConn>`
= note: required because it appears within the type `Connection`
error[E0277]: `*mut oracle::binding::dpiConn` cannot be sent between threads safely
--> src/lib.rs:76:5
|
76 | type Connection = oracle::Connection;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut oracle::binding::dpiConn` cannot be sent between threads safely
|
::: /home/steven/.cargo/registry/src/github.com-1ecc6299db9ec823/r2d2-0.8.9/src/lib.rs:72:22
|
72 | type Connection: Send + 'static;
| ---- required by this bound in `r2d2::ManageConnection::Connection`
|
= help: within `oracle::connection::InnerConn`, the trait `Send` is not implemented for `*mut oracle::binding::dpiConn`
= note: required because it appears within the type `oracle::connection::InnerConn`
= note: required because of the requirements on the impl of `Send` for `Arc<oracle::connection::InnerConn>`
= note: required because it appears within the type `Connection`
error: aborting due to 2 previous errors
Is this an oversight or are changes needed to r2d2-oracle
as well?
from rust-oracle.
Thanks for the report. I'll fix it.
It is an incompatible change. The Connection
struct implements Sync
and Send
at 0.5.2. However it doesn't at git master.
from rust-oracle.
@daviessm
Fixed. Could you try the latest git master?
from rust-oracle.
Yes - I can use REF_CURSORs exactly as expected now, thanks. Happy to close this issue.
from rust-oracle.
The next version 0.5.3 will be released this weekend.
It is postponed by one week. I'll change structs for lob locator types: oracle::sql_type::Clob
and oracle::sql_type::Blob
, which are new features in the next version.
from rust-oracle.
Related Issues (20)
- Any idea why I'm getting `DPI Error: DPI-1080: connection was closed by ORA-3156` HOT 3
- Usage with asynchronous code problem - how to shut down `.connect()` call that hangs indefinitely HOT 6
- Insert null values HOT 3
- How to change the value of "oracleClientLibDir" in dpiContextCreateParams struct HOT 3
- API to upload file as BLOB without preallocation HOT 3
- Question - async/await stream to many users using just 1 thread HOT 2
- the `?` operator can only be used in a function that returns `Result` or `Option` HOT 1
- QUESTION the trait `ToSql` is not implemented for `SqlValue`
- Question - Calling Oracle Stored Procedures Example HOT 3
- Convert recordset to Vec of Columns HOT 1
- Question - Alter Sessions HOT 1
- A way to set path for oracle instant client HOT 2
- How to extract `Geometry` type. HOT 2
- How can I save ResultSet<'_, oracle::Row> for later access? HOT 6
- `*mut oracle::binding::binding::dpiStmt` cannot be sent between threads safely HOT 2
- Question - Trying to use like operator with wildcards within query_as HOT 5
- Ability to auto-gen structs from db HOT 1
- execute create table sql error? HOT 3
- Question about performance HOT 11
- Why the lifetime is 'static
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 rust-oracle.