Remove initialize_crypto
. We use rustls as is. You can configure a non-default behavior of
rustls
with
install_default (1).
Merge HdbError
variants Usage
and UsageDetailed
, as well as Impl
and ImplDetailed
,
new variants Usage
and Impl
are based on Cow
.
Increase MSRV to 1.80, due to update of bb8
(2).
Version bump due to (1) and (2).
Add method ConnectParamsBuilder::to_url_with_password()
.
Improve handling of ExecutionResults
.
Fix wrong sequence of entries in HdbResponse.
Remove ConnectParamsBuilder::to_url()
(use ConnectParamsBuilder::to_url_without_password()
instead).
Add ConnectParamsBuilder::to_url_without_password()
.
Deprecate ConnectParamsBuilder::to_url()
.
Add hdbconnect(_async)::initialize_crypto()
to allow reliable rustls initialization without
direct dependency to rustls
.
Switch to serde_db
0.12
and adopt its improved naming (-> version bump).
Remove Tls from public API, as it is not needed there.
Fix implementation of url-option "insecure_omit_server_certificate_check".
Allow HdbValue::NULL
to deserialize into String (as "<NULL>"
).
Add some Clone implementations.
Allow configuring the cursor holdability.
Further minor improvements.
Add bb8
pool for hdbconnect_async
.
Add ConnectParamsBuilder::from(url)
.
Introduce a configurable read timeout. A set timeout prevents that the driver waits indefinitely on a response from HANA.
Safely disable further use of a connection after an error during a roundtrip.
Code maintenance
Fix issue in CLob.
Revise lob reading and buffering.
Add two HdbError variants to better handle connection failures.
Improve code examples.
Re-introduce some getter methods on ConnectParamsBuilder
.
ConnectionConfiguration
can be used to finetune hdbconnect
.
ConnectionStatistics
provides some statistics about the use of a concrete connection.
The async variant uses tokio's mutex, which has no issue with poisoning. Many methods of the async variant thus do not need to wrap their return value into a Result. Those wrappings are now removed.
hdbconnect
and hdbconnect_async
now support and use by default the compression capability of
the HANA SQL protocol for large requests and responses.
Various API methods in hdbconnect_async
now return T
rather than Result<T>
.
Most Connection methods don't require mutability.
Introduce variants HdbValue::DBSTRING
and HdbError::Cesu8AsBytes
for late handling of cesu8 errors. Late handling is important to ensure that reply-parsing
is always completed so that no data remain on the wire.
Re-export serde_db
's (de)serialization errors.
Fix READMEs.
Reorganize the project using three workspaces.
Add a sibling crate hdbconnect_async
!!
Make dist_tx
optional.
Make r2d2_pool
an optional feature of the sync
version.
Add an optional feature rocket_pool
to the async
version.
Minor, but some breaking API changes.
Revise TLS configuration in ConnectParams
and ConnectParamsBuilder
(API change => version bump).
Update all dependencies, fix all new clippies.
Improve test setup.
Fix authentication two byte length encoding.
Add support for time crate (serde)
- switch to serde_db 0.10
- remove dependency to chrono (chrono support for serde remains)
Implement implicit redirect (the server can trigger a redirect in case that e.g. an SMVR failover has taken place). IS NOT YET TESTED!
Add redirect support: target database can be specified by name.
Some minor API smoothing (-> version bump):
- Connection::
get_database_name()
,get_system_id()
, andget_full_version_string()
, returnHdbResult<String>
, rather thanHdbResult<Option<String>>
- ConnectParamsBuilder
get_password
returns aSecUtf8
instead of aSecStr
get_options
is removed
Add support for array-type.
Minor improvements, code maintenance.
Revise handling of ResultSetMetadata to make it much more ergonomic (and idiomatic).
- ResulSset now provides direct access to a
Vec<FieldMetadata>
, andFieldMetadata
exposes the metadata of each field. - The type
ResultSetMetadata
with its awkward API is gone (-> version bump).
Update dependencies.
Fix issue with empty LOBs being read from the database (introduced with 0.21.3).
Update dependencies.
Implement automatic reconnect (only works within the server's reconnect-wait-timeout).
Make HdbError
thread-safe (again) - Kudos to Mark Obad!
Minor performance improvement in LOB implementation.
Add method NCLob::total_char_length
, improve docu.
Add support for CONNECT (switch user).
Simplify API of OutputParameters
.
Remove direct dependency to serde_derive
.
Add test for using HANA's management console.
Improve ease-of-use for lob objects by letting lob objects keep their result set core object and their prepared statement core object alive until they are completely loaded.
Add Connection::client_info
.
Add value conversions from Strings to number types (using std::fmt::Display
)
and from number types to Strings (using parse()
).
Change serialization format of ConnectParamsBuilder to URL; the serialization to url includes all information except password.
Some code maintenance.
Add variant ServerCerts::None
to use TLS without server validation.
Replace &String with &str in return value types.
Make ResultsSet
thread-safe.
Add IntoConnectParamsBuilder
and implementations for &str
and String
and Url
.
Make Connection::new()
and ConnectionManager::new()
more flexible by
taking a P: IntoConnectParams
rather than a ConnectParams
.
Improve ConnectParamsBuilder
:
- move root-certificates option as an additional variant into ServerCerts enum
- don't erase any information from the
ConnectParamsBuilder
during build()
Make feature "tls" permanent - so it disappears from the list of cargo features!
Remove redundant ConnectParams
in Connection
(it is in AmConnCore anyway).
Remove wrong debug asserts from lob_writer (adding to the fix for issue 23).
Implement Display
, and derive Debug
, for ConnectParams
.
Fix pedantic clippies, and some docu.
Revise HdbResponse:
- remove public visibility to its elements (-> version bump)
- remove parameter descriptors
Simplify handling of ParameterDescriptors in PreparedStatement.
Make ParameterDescriptors
public.
Support database procedures with LOB input parameters (fix issue 23).
Bugfix: Let ResultSet
s that were produced from a PreparedStatement
keep
the PreparedStatement
's Core alive.
Add option to use Mozillas root certificates.
Version bump due to incompatible API changes caused by
- Avoid cloning of metadata
- Use inner mutability to avoid mut for ResultSet iterations
- Revise handling of server usage information
Stick to older version of rustls (0.15.1) and webpki (0.19.1) to stay compatible with actix.
Add convenience method Connection::prepare_and_execute().
Incompatible: revise API of OutputParameters:
allow iterating and using deserialization with serde_db
, revise method names.
Incompatible: Avoid cloning in accessors of ServerError.
Add possibility to set the lob-write-length.
Increase default values for fetch-size and lob-read-length.
Fix broken TLS feature.
Change HdbValue::LOBSTREAM
to LOBSTREAM(Option<Arc<Mutex<Read + Send>>>)
.
Let PreparedStatement::execute_batch() work with empty batch if no input pars are required.
Add HdbValue::STR(&str), and allow LOB streaming to the database with HdbValue::LOBSTREAM.
Add support for database columns of types ALPHANUM and BINTEXT.
Improve HdbValue, TypedId, and handling of parameters in PreparedStatement. Add method PreparedStatement.execute_row().
- revise names of some metadata methods
- Reduce complexity of HdbValue: use a single explicit NULL variant
- Also simplify type id handling
- Implement geo-types
- Migrate to serde_db 0.7
- Apply changes to ResultSet
- remove methods pop_row(), reverse_rows(),
- add method next_row()
- make ResultSet an Iterator for item type HdbResult<Row>
- Apply changes to Row
- remove methods iter(), pop(), pop_into(), field_into(), field_into_option(), field_into_nclob(), field_into_clob(), field_into_blob(), reverse_values()
- add method next_value()
- add internal method number_of_fields()
- make Row and iterator with item type HdbValue
Remove unneccessary allocations. Version sync re-added.
Code maintenance.
(Non-functional: temporarily remove version-sync.)
Expose Connection.get_id().
Code maintenance.
Remove usage of #[doc(hidden)] -> version bump.
Move to edition 2018. Support serialization of byte arrays containing valid UTF-8 into NCLOB. Remove unneccessary String allocations and make connection API more flexible.
Change handling of type ids (-> version bump). Fix parameter serialization. Fix some new clippies.
Code maintenance: make all factory submodules private.
Changes to PreparedStatement:
- add method add_row_to_batch()
- remove method set_auto_commit() (-> version bump)
HdbValue now implements Serialize.
Switch from deprecated to new hashing libs.
Add a way to provide the server certificate for tls directly, and refactor the respective API of ConnectParamsBuilder (-> version bump).
Fix tls and expose as a documented feature.
Improve client_info handling (-> API change -> Version bump).
Implement ReplyType Explain.
Some improvements around parsing date and time values.
Update to serde_db 0.5.
Add implementation for NCLOB.
Add implementation for PartitionInformation.
Use cesu8 crate rather than internalized outdated clone of its code.
Update dependent libs.
Add missing HANA data types: SECONDTIME, DAYDATE, SECONDDATE, SMALLDECIMAL.
Add feature "alpha_tls" - implementation pretty complete, but completely untested.
Minor internal updates.
Replace usage of rust_decimal with BigDecimal and fix insufficient decimal handling, remove HdbDecimal from API (reason for version bump).
Add support for new authentication variant
Add support for client info (= session context)
Fix key words in Cargo.toml
Prepare for ensuring the buffer is empty after parsing a reply
Improve handling of connect_options
Handle clientlocale through conn_params
Introduce SecStr for password handling
Update to rustc 127.1, and to current versions of used libs
Fix topology part implementation (did not work with sacale-out topology)
Revise error handling (-> version bump)
Fix issue with large queries
Fix incorrect row order
Add handling for warnings from the server
Implement Drop for ResultSetCore
Minor improvements around XA
Implement some missing option parts
Update to dist_tx 0.2
Support distributed transactions
Support Deserialization for DECIMAL types
Support "select for update"
Update to serde_db 0.4
Added missing docu for new methods that were introduced in 0.4.1
Correct and extend the evaluation of ColumnOptions in result set metadata and ParameterOptions in parameter metadata
Add access methods for metadata.
Add support for stringified value representations.
Add support for HANA's DECIMAL types.
Revise the LOB handling, add streaming support for CLOBs and BLOBs.
Replace Row::field_as()
with Row::field_into()
to allow field-wise access without cloning.
Extract the serde-usage into a separate crate (serde_db).