1.6.0

Features

  • [CPP-499] Allow binding local address of connections
  • [CPP-657] Support virtual tables (aka system views)

Bug Fixes

  • [CPP-648] Attempting to get the metrics before the session is connected will crash (existing issue)
  • [CPP-654] Use Boost atomics when building drivers for Visual Studio 2012 x86
  • [CPP-662] The timerfd version of MicroTimer doesn’t handle zero timeout
  • [CPP-663] Mutex in SessionBase can be destroyed while it’s still locked
  • [CPP-665] Memory issue when socket fails to initialize
  • [CPP-666] Metadata crash in schema metadata null tests
  • [CPP-667] Timer handles still referenced
  • [CPP-668] Unit test ClusterUnitTest.ReconnectUpdateHosts can hang
  • [CPP-669] Result response’s metadata can reference a prepared response that’s already been freed
  • [CPP-672] Fix memory issues found via -fstanitize=address
  • [CPP-673] Cluster can hang attempting to close during reconnection
  • [CPP-675] Chained callback should only call a single callback once
  • [CPP-678] Fix Cassandra version for DSE 6.X releases

Other

  • [CPP-611] Reduce coalesce delay to better support latency workloads
  • [CPP-615] Remove support for protocols v1 and v2
  • [CPP-652] Decouple listeners from connection/initialization
  • [CPP-653] Synchronously propagate keyspace updates

1.6.0-beta1

Features

  • [CPP-404] Performance: Shared-nothing I/O workers (new internal architecture)
  • [CPP-441] Move IO thread request scheduling to a “pull” model
  • [CPP-453] Move token map calculation off the session thread
  • [CPP-515] Remove support for libuv v0.10.x
  • [CPP-518] Thread and connection pool refactor
  • [CPP-616] Handle libuv v1.20.4+ version file updates

Bug Fixes

  • [CPP-589] Pathological hashing behavior in stream manager
  • [CPP-590] Execution profiles are copied for every request (expensive to copy)

1.5.0

Features

  • [CPP-578] Add NO_COMPACT startup option

Other

  • [CPP-566] Ignore control connection DOWN events if there are open connections
  • [CPP-584] win: Message for Boost v1.66.0+ using CMake v3.10.x or lower

1.4.1

Bug Fixes

  • [CPP-572] DC aware policy plan returns hosts that are not connected

1.4.0

Features

  • [CPP-393] Allow prepared statements to be prepared on all nodes
  • [CPP-394] Prepare statements on UP/ADD events
  • [CPP-492] Support execution profiles
  • [CPP-512] Include hash of result set metadata in prepared statement id
  • [CPP-528] Per-query (and per-batch) keyspace support

Bug Fixes

  • [CPP-438] Broken build with GCC 7 and OpenSSL 1.1
  • [CPP-535] Schema metadata views are not properly updated during drop event
  • [CPP-540] NULL columns in table/view metadata caused by side-effect in a compiled out assertion
  • [CPP-543] Fix dllimport/dllexport
  • [CPP-546] Result metadata callback casting requests to invalid types
  • [CPP-547] Pool request callback attempting to return a deleted connection

Other

  • [CPP-520] Correct exports in DSE API to use DSE_EXPORTS
  • [CPP-523] Use arc4random or getrandom instead of /dev/urandom (if available)
  • [CPP-526] Add a mutable wrapper around the request object
  • [CPP-538] Deprecate watermarks

1.3.1

Bug Fixes

  • [CPP-473] Missing symbol cass_cluster_set_queue_size_log
  • [CPP-486] Compiler warning ‘implicit-fallthrough’ causing build errors
  • [CPP-491] Unintentional switch case fallthrough in RequestCallback
  • [CPP-496] CassWriteType CDC and VIEW missing
  • [CPP-502] Incorrectly exported symbols cass_error_result_responses_received / required
  • [CPP-513] Copy-on-write keyspace logic is incorrect
  • [CPP-514] Prepared Statement Crash

Other

[CPP-449] Update vc_build.bat to include automated build for Visual Studio 2017

1.3.0

Features

  • [CPP-360] Added the ability to specify custom memory allocators using cass_alloc_set_functions()
  • [CPP-417] Added speculative execution metrics which can be obtained using cass_session_get_speculative_execution_metrics()
  • [CPP-466] Token aware routing replicas are now randomly shuffled by default instead of using a random index

Bug Fixes

  • [CPP-368] API Functions that take strings now check for NULL and replace it with an empty string
  • [CPP-437] Fixed batch encoding performance regression
  • [CPP-477] Native protocol “support” messages are now properly decoded, but still remain unused
  • [CPP-487] Fixed a Kerberos regression caused by providing an empty principal
  • [CPP-501] Schema metadata is corrupted when views and indexes exist for a table
  • [CPP-503] Schema meta race condition when a view is dropped from a table

Other

  • [CPP-136] Decoding now verifies buffer sizes when processing server responses
  • [CPP-432] Removed dense table ‘empty’ columns from metadata
  • [CPP-440] Improved encoding performance by preallocating buffers
  • [CPP-444] Fixed const correctness of serialization functions
  • [CPP-476] Replaced strlen() with sizeof() for static strings
  • [CPP-478] Renamed the class SpeculativeExecution to RequestExection to reduce confusion when it appears in driver logs
  • [CPP-480] Added more detailed documentation to help with using Kerberos authentication

Merged from OSS 2.7.0

  • [CPP-464] Adding a node breaks token map reconstruction
  • Fixed an issue where UUID parsing could read past the supplied string
  • Fixed various typos in cassandra.h
  • Fixed missing header for intrinsics when building with MSVC15

1.2.0

Features

  • Added support for DSE proxy authentication
  • Added support for DSE DateRangeType
  • Added support for adding DSE geospatial types as elements of collections
  • Added support for DurationType
  • Added support for OpenSSL 1.1
  • Added support for protocol DSEv1 and V5 (beta)

1.1.0

Features

  • Expose wkt parsing logic for public use:
    • dse_point_from_wkt(), dse_point_from_wkt_n()
    • dse_line_string_iterator_reset_with_wkt(), dse_line_string_iterator_reset_with_wkt_n()
    • dse_polygon_iterator_reset_with_wkt(), dse_polygon_iterator_reset_with_wkt_n()

Other

  • [CPP-416] LineString::to_wkt and Polygon::to_wkt now return “LINESTRING EMPTY” and “POLYGON EMPTY”, respectively, for empty objects.
  • [CPP-416] WKT parsing for “LINESTRING EMPTY” and “POLYGON EMPTY” now
  • succeeds.

1.0.0

October 20, 2016

Features

  • Added a host targeting policy for graph analytics queries. Graph queries with the source “a” will attempt to be routed directly to the analytics master node.
  • Added geometric types support for graph queries.

1.0.0-rc1

June 24, 2016

Features

  • Added a graph option to set graph query request timeout (default: no timeout)
  • Added graph options to set the consistency level of graph query requests
  • Added the ability to set the timestamp on graph statements

Other

  • Changed the default graph source from “default” to “g”