All Versions
25
Latest Version
Avg Release Cycle
94 days
Latest Release
70 days ago

Changelog History
Page 1

  • v0.13.1

    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

    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

    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 a 8-element tuple of integers representing byte couples. When IPv6 addresses are returned from Cassandra, 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).
    • 0️⃣ 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 behaviour, pass autodiscovery: false to Xandra.Cluster.start_link/1.
  • v0.11.0

    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 behaviour, 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

    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 compression is used.
  • v0.9.2

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

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

    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 manaul result paging with the more explicit :paging_state option.

    💥 Breaking changes:

    • 0️⃣ Started decoding by default the date, time, and timestamp data types to Date, Time, and DateTime respectively.
  • v0.8.0

    July 07, 2017
    • ➕ Added support for priority load balancing strategy for clustering.