All Versions
Latest Version
Avg Release Cycle
94 days
Latest Release

Changelog History
Page 1

  • v0.14.0 Changes

    ๐Ÿ’ฅ Breaking changes:

    • Drop support for Elixir 1.8 and below. Xandra now requires Elixir 1.9+.

    ๐Ÿ‘Œ Improvements:

    • Implement significantly-more accurate and strict validation of options for Xandra functions.

    ๐Ÿ› Bug fixes:

    • Fix schema change payloads with UDFs in native protocol v3.
    • Filter nodes with null host_id when autodiscovering nodes in Xandra.Cluster.
    • Fix some warnings related to upgrading DBConnection.
    • Make connections aware of the current keyspace, which fixes some issues with the prepared query cache.
    • Fix an issue where pagination would break for some batch queries: with a lightweight transaction the returned result would be a page representing the status of that transaction, and we did not support that.
  • v0.13.1 Changes

    January 26, 2020
    • Fix the spec for Xandra.Batch.add/3.
    • Reconnect to the control connection using the full address (and not the IP of the peername) in Xandra.Cluster.
    • Set the :xandra_address and :xandra_port metadata in logs for Xandra connections.
  • v0.13.0 Changes

    September 22, 2019
    • Add support for Cassandra native protocol v4. By default, we'll use v3, but you can pass in a :protocol_version when starting a connection to force protocol v4. Protocol v4 introduces the :not_set value. See the documentation of the Xandra module.
    • Add support for tracing on a per-query basis. If :tracing is set to true, then a tracing ID will be returned with the Cassandra response. See the documentation for more information.
    • Fix a bug with decoding Decimal values.
    • Fix a bug with Xandra.Cluster where, in cases of clusters with a single node, the connection wouldn't reconnect to the node in case of disconnections.

    ๐Ÿ’ฅ Breaking changes:

    • Remove Xandra.Page.more_pages_available?/1. This was hard-deprecated in previous versions.
    • Remove the :cursor option for queries. This was hard-deprecated in previous versions.
  • v0.12.0 Changes

    June 06, 2019
    • Add a page in the documentation that compares Elixir data types and their Cassandra counterparts.
    • Fix some Dialyzer errors caused by opaque data types.
    • Support cluster-aware retrying through :retry_strategy in Xandra.Cluster.execute/3,4 (in the previous release we would retry queries but only on the same node).
    • Fix Xandra.Cluster.stream_pages!/4 which was broken in the previous release.

    ๐Ÿ’ฅ Breaking changes:

    • Change the format of inet values for IPv6. When encoding a IPv6 address, it should be given to Xandra as an 8-element tuple of integers representing byte couples. When Cassandra returns IPv6 addresses, they are now returned as 8-element tuples of integers representing byte couples. This is to align Xandra with the usage of IPv6 addresses in Erlang/OTP (see the :inet.ip_address/0 type).
    • Support autodiscovery of nodes in the same data center in Xandra.Cluster with support for the :random load balancing strategy only. This also means support for nodes that are added or removed to the cluster (provided they're in the same datacenter). This is a breaking change because autodiscovery is active by default. If you want to keep the previous behavior, pass autodiscovery: false to Xandra.Cluster.start_link/1.
  • v0.11.0 Changes

    May 23, 2019
    • Add Xandra.child_spec/1.
    • Add encryption support through the :encryption option.
    • Add the :decimal_format option to return decimals as tuples or Decimal structs. If you want to use decimal_format: :decimal, you have to specify decimal as a dependency.
    • Add the :default_consistency option to provide a connection-wide default consistency.

    ๐Ÿ’ฅ Breaking changes:

    • Add the :uuid_format and :timeuuid_format options to return UUIDs as binaries or human-readable strings. This is a breaking change because the default changed to :string. If you want to keep the previous behavior, pass uuid_format: :binary or timeuuid_format: :binary to Xandra.execute/3/4.
    • Remove support for the :pool option in Xandra. Now the pool of connections is always a pool with size configurable by :pool_size.
    • Add Xandra.Cluster as a separate module with an API that mirrors Xandra, instead of as a DBConnection pool.
    • Bump the Elixir requirement to ~> 1.6.
  • v0.10.1

    May 22, 2019
  • v0.10.0 Changes

    October 23, 2018
    • Added the :atom_keys option to return and accept column names as atoms.
    • Fixed decoding of user-defined data types when new fields added afterwards.
    • Fixed connection ping failures when using compression.
  • v0.9.2 Changes

    February 12, 2018
    • Fixed Elixir v1.6 warnings.
  • v0.9.1 Changes

    January 15, 2018
    • Started accepting UUIDs in binary representation.
    • Added handling of legacy empty values for non-string types.
  • v0.9.0 Changes

    October 29, 2017
    • Added native support for Date, Time, and DateTime.
    • Added support for the counter data type.
    • Made more optimizations to page content decoding.
    • Replaced the :cursor option used for manual result paging with the more explicit :paging_state option.

    ๐Ÿ’ฅ Breaking changes:

    • Started decoding by default the date, time, and timestamp data types to Date, Time, and DateTime respectively.