All Versions
16
Latest Version
Avg Release Cycle
108 days
Latest Release
1046 days ago

Changelog History
Page 1

  • v0.17.0 Changes

    May 17, 2021

    🔄 Changed

    • Changed Session::execute_batch and Session::execute_batch_with_payloads to take only a reference to Batch rather than consuming it.

    This is a breaking change; to update your code, simply change batch to &batch in your argument list. If this causes an error future cannot be sent between threads safely because &Batch is used across an await, you need to introduce a let before the await as follows:

      let fut = session.execute_batch(&batch);
      let result = fut.await?
    
  • v0.16.0 Changes

    March 10, 2021

    ➕ Added

    • 🔦 Exposes separate setters for collection types on Tuple and UserType. As such, the respective set_collection and set_collection_by_name on both types have been removed. set_collection becomes set_set and set_collection_by_name becomes set_set_by_name.
      • Added Cluster::set_token_aware_routing_shuffle_replicas.
    • 👉 ConstDataType::new_user_type has been added, to allow the creation of a user data type from an existing data type.
    • Added Session::execute_with_payloads and Session::execute_batch_with_payloads to allow getting custom payloads from query and batch executions.

    💥 Breaking changes

    • Extended the lifetime of a CassResult into a Row. This is a breaking change, and may require reworking the code to satisfy the lifetime requirement that the CassResult must live longer than the Row.
    • CassCollection::new has been renamed to CassCollection::with_capacity, and CassCollection::new has been created, that no longer requires a capacity. This closely mirrors the API that the standard library collections expose, and that the item_count passed to new is merely a capacity hint for the purpose of optimization.
    • time::Duration has been replaced with std::time::Duration.

    🔄 Changed

    • 🔄 Change various functions to avoid the extra overhead using an intermediate CString object.
    • 🔀 Switched to using parking_lot::Mutex instead of std::sync::Mutex for CassFuture coordination.
    • Implemented size_hint on ResultIterator.
    • ⬆️ Bumped versions of various dependencies.

    🛠 Fixed

    • CassResult::set_paging_state_token was implemented incorrectly, namely, it did nothing, and has instead been replaced with CassResult::paging_state_token.
    • Statement::set_paging_state_token has been changed to take a &[u8] instead of a &str, as a paging state token isn't necessarily utf8 encoded.
  • v0.15.1 Changes

    June 02, 2020

    ➕ Added

    • Conversion functions between uuid::Uuid and this library's Uuid.

    🔄 Changed

    • 🔀 PreparedStatement is now considered Sync, and can be shared across threads.

    🛠 Fixed

    • ✂ Remove unnecessary build.rs, making it easier to build the crate.
  • v0.15.0 Changes

    January 28, 2020

    🔄 Changed

    • ⬇️ Drop support for futures 0.1, and implement std::future instead, allowing you to use this this library inside async functions, allowing anything that returns a CassFuture to be awaited. This is a breaking change, and will require you to update your call-sites to either use std::future, or wrap them with a compatibility shim (e.g., futures::compat).

    ➕ Added

    • ➕ Adds a new method, Cluster.connect_async that returns a future, allowing you to connect to the cluster without blocking the event loop.
  • v0.14.1 Changes

    November 07, 2019

    🔄 Changed

    • ➕ Add code example for SSL.
    • ⚡️ Updated error-chain to 0.12.1 to avoid Error deprecation warnings.

    🛠 Fixed

    • ⚠ Provide missing doc comment, fix unused doc comment warnings.
    • Fix type signature on set_load_balance_dc_aware so it can be used.
  • v0.14.0 Changes

    January 22, 2019

    ➕ Added

    • 👯 Clone, Copy and PartialEq traits in Inet
    • 👍 Fields name and value support for UserTypeIterator (support for UDT)
    • Extra bindings for Row::get_by_name and Statement::bind_by_name

    🔄 Changed

    • Debug implementation for Inet now uses its ToString implementation

    🛠 Fixed

    • Value::get_inet which would always return a zeroed Inet
    • ⬇️ Dropping futures early could cause a segfault when using the system allocator (in Rust 1.32.0 or later).
  • v0.13.2 Changes

    January 15, 2019
    • Avoid possible segfaults, by returning None where possible, otherwise panicking. In particular, a collection field set to NULL now returns None rather than faulting.
    • Make SchemaMeta::get_keyspace_by_name work (fix string handling bug).
    • 👍 Allow using the SetIterator for lists and tuples. Previously these could not be enumerated at all!
    • 👍 For convenience, support bind() for Lists.
  • v0.13.1 Changes

    January 08, 2019
    • 🛠 Fix stmt!() not working if Statement was not imported.
  • v0.13.0 Changes

    December 04, 2018
    • Added new set_local_address function using the function Datastax added in cassandra-cpp-driver version 2.10.0
  • v0.12.0 Changes

    December 04, 2018

    🛠 Fixed

    • No longer leaks all CassResults. ### 🔄 Changed
    • ⚡️ Updated cassandra-cpp-sys to 0.12.
    • ⚡️ Updated cassandra-cpp-driver to 2.10.0
    • 👍 cql protocol version 2 is no longer supported.
    • 💥 Breaking changes: The Cassandra WriteType UKNOWN is now called UNKNOWN There is a new Cassandra error code LIB_EXECUTION_PROFILE_INVALID There is a new Cassandra value type: DURATION
    • ResultIterator now has a lifetime parameter. The underlying CassResult must live for at least as long as the iterator.
    • CassResult is no longer IntoIterator; instead &CassResult is. You must change code like for row in result to for row in &result and ensure result lives long enough.