New features:
- Add
stmt_without_lifetime
feature flag. - Add
ObjectType::package_name()
- Add
Statement::last_row_id()
- Add
Connection::last_warning()
- Add
iter()
,indices()
andvalues()
methods, which creates iterators overCollection
elements.
Fixed Issues:
FromSql::from_sql
for chrono data types returnsError::OutOfRange
instead of panics when an invalid timestamp is retrieved from Oracle.
Changes:
- The
Eq
trait was implemented for enum types.
Internal Changes:
- Update ODPI-C to 4.6.0. (see ODPI-C release notes)
Fixed Issues:
- Fix RowValue which can reference an invalid Ok that defined outside (contributed by GH-62)
Changes:
Connection::prepare()
was marked as deprecated.
Internal Changes:
- Update ODPI-C to 4.4.1. (see ODPI-C release notes)
- Suppress 'cargo clippy' warnings
- Use atomic types instead of RefCell and Mutex
New features:
RowValue
derive macro (contributed by GH-49)- Add query methods for Statement which take ownership (contributed by GH-50)
- Support connection pooling
- Add methods related to statement caching
- Support Advanced Queuing experimentally when
aq_unstable
feature is enabled Breaking changes may be introduced by a minor release.
Fixed bugs:
- Fix resource leaks when statement are explicitly closed by
Statement::close()
. - Fix syntax typo in doc comment about
Row::get_as()
(GH-54)
Internal Changes:
- Update ODPI-C to 4.3.0. (see ODPI-C release notes: 4.3.0)
Fixed bugs:
- Fix resource leaks when Oracle object datatypes are used. (GH-48)
New features:
- Add
Connection::statement()
andStatementBuilder
to create [Statement
][] and deprecateConnection::prepare()
. - Customize prefetch row size (
StatementBuilder::prefetch_rows()
) GH-40 - Read/Write LOBs as streams ([
sql_type::Lob
][], [sql_type::Clob
][], [sql_type::Nclob
][] and [sql_type::Blob
][]) - Ref cursors including implicit statement results ([
sql_type::RefCursor
][]) GH-38 - Add [
Connection::oci_attr
][], [Connection::set_oci_attr
][], [Statement::oci_attr
][] and [Statement::oci_attr
][] to support OCI handle attributes. Impl ToSql for &'a [u8; N]
Internal Changes:
- Bind LOB columns as string or binary by default
- Update ODPI-C to 4.2.1. (see ODPI-C release notes: 4.2.0 and 4.2.1)
- Make it possible to get rowid as string (GH-36)
- Make it possible to bind boolean values (PL/SQL only)
- Add Batch DML feature (GH-29)
- Implement
FromStr
forVersion
. - Add
OracleType::Json
variant. (Note: JSON data type has not been supported yet.)
Changes:
- Based on ODPI-C 4.1.0
- The return value of
DbError::offset()
was changed from u16 to u32.
Changes:
- Add new methods
Connection::call_timeout()
andConnection::set_call_timeout()
Changes:
-
Fix SEGV while getting Object type's FLOAT data type attributes. (GH-19)
-
Add workaround to use with tracing-core. (GH-18)
Changes:
- Add a new method
Connection::status()
and a new enumConnStatus
to get the status of the connection.
Incompatible changes:
-
Remove
ConnParam
enum and addConnector
struct to use builder pattern.- The fourth argument of
Connection::connect
was removed.
From:To:let conn = Connection::connect(username, password, connect_string, &[])?;
let conn = Connection::connect(username, password, connect_string)?;
- Use
Connector
to use additional parameters.
From:To:let conn = Connection::connect(username, password, connect_string, &[ConnParam::Sysdba])?;
orlet conn = Connector::new(username, password, connect_string).privilege(Privilege::Sysdba).connect()?;
let mut connector = Connector::new(username, password, connect_string); connector.privilege(Privilege::Sysdba); let conn = connector.connect().unwrap();
- The fourth argument of
-
Add a new submodule
sql_type
and move the following structs, enums and traits from the root module to the submodule.Collection
IntervalDS
IntervalYM
Object
ObjectType
ObjectTypeAttr
OracleType
Timestamp
FromSql
ToSql
ToSqlNull
-
Remove
client_version()
method and addVersion::client()
method instead. -
Remove the associated type
Item
fromRowValue
trait. -
Add
&Connection
argument to trait methods:ToSql::oratype
andToSqlNull::oratype_for_null
. -
Iterator for
&ResultSet<T>
was removed and that forResultSet<T>
was added again for better ergonomics. Changefor row_result in &result_set {...}
to eitherfor row_result in result_set {...}
if theResultSet
can be consumed or tofor row_result in result_set.by_ref() {...}
otherwise.
Changes:
- Implement
FusedIterator
forResultSet
. - The return value of
Connection::object_type()
is cached in the connection.
When "CREATE TYPE", "ALTER TYPE" or "DROP TYPE" is executed, the cache clears. - Add
Connection.clear_object_type_cache()
. - Update ODPI-C to version 3.2.2.
- Implement
Sync
andSend
forConnection
. (GH-14)
Changes:
- Fix memory corruption when using object and collection data types.
- Update ODPI-C to version 3.1.3.
Incompatible changes:
- Make errors usable across threads (GH-6)
Changes:
-
Change the license to the Universal Permissive License v 1.0 and/or the Apache License v 2.0.
-
Update ODPI-C to 3.0.0, which includes support for Oracle 18c client.
-
New methods
Changes:
- Allow fetching BLOB data as
Vec<u8>
. - Implement
ToSql
andToSqlNull
for&[u8]
. - Implement
Debug
forConnection
,Statement
and so on. - Update ODPI-C to version 2.4.2.
Changes:
Incompatible changes:
- Iterator for
ResultSet<T>
was removed and that for&ResultSet<T>
was added in order not to consumeResultSet<T>
by for-loop.
Changefor row_result in result_set {...}
tofor row_result in &result_set {...}
.
Fixed bugs:
- Fix an error when a column value converted from the database character set to UTF-8 becomes longer than the column size. (GH-3)
Incompatible changes:
-
BindIndex and ColumnIndex were sealed and cannot be implemented for types outside of the crate.
-
The
Other
variant of [StatetmentType
][] enum was removed.Commit
,Rollback
,ExplainPlan
,Call
andUnknown
variants were added to the enum. -
Change the return type of
ObjectType::new_object()
fromOption<Object>
toResult<Object>
. -
Change the return type of
ObjectType::new_collection()
fromOption<Collection>
toResult<Collection>
.
The method to prepare statements was changed for future extension.
Changes:
- New methods and structs
Statement::returned_values()
to support RETURNING INTO clause.StmtParam
struct to specify prepared statement parameters.
Incompatible changes:
-
Changed Methods
Connection::prepare()
. Theparams
argument was added.
-
Removed methods
Statement::set_fetch_array_size()
. UseStmtParam::FetchArraySize
instead.
Methods for establishing connections were changed in order to avoid incompatible changes when connection pooling is supported in future.
Changes:
-
New methods and enums.
-
Deprecated methods.
Connnection::new()
. UseConnection::connect()
instead.
Incompatible changes:
- Renamed variants.
Error::NoMoreData
→Error::NoDataFound
- Removed structs and enums.
- Methods whose return type was changed from
&String
to&str
. - Methods whose return type was changed from
&Vec<...>
to&[...]
.
New features:
- Add query methods to
Connection
to fetch rows without usingStatement
. - Add query_row methods to
Statement
to fetch a first row without usingResultSet
.
Incompatible changes:
- Merge
RowResultSet
struct intoRowValueResultSet
and rename it toResultSet
.
New features:
- Add query methods to
Statement
to fetch rows as iterator. - Add query_row methods to
Connection
to fetch a first row without usingStatement
. - Autocommit mode.
Incompatible changes:
- Execute methods fail for select statements. Use query methods instead.
- Renamed traits, methods and variants.
ColumnValues
→RowValue
Row::values()
→Row::get_as()
Row::columns()
→Row::sql_values()
Error::Overflow
→Error::OutOfRange
- Removed methods.
- Statement::column_count()
- Statement::column_names()
- Statement::column_info()
- Statement::fetch()
- SqlValue::clone()