Changelog

Changelog for the DataStax Enterprise Node.js Driver.

DSE and OSS drivers have been unified

As of the 4.4.0 release of the DataStax Node.js Driver for Apache Cassandra® (OSS Driver), the DataStax Enterprise Node.js Driver (DSE driver) functionality has been merged into a single DataStax driver. Please refer to the blog post for more information on this change.


2.3.1

2019-11-06

Bug fixes

  • [NODEJS-541] - Deprecated IdempotencyAwareRetryPolicy checks for options resulting in error
  • [NODEJS-572] - TypeScript: ExecutionProfile parameters should be marked as optional
  • [NODEJS-576] - MutableLong multiplication can cause infinite recursion

2.3.0

2019-10-21

Features

  • [NODEJS-503] - DataStax Apollo Support
  • [NODEJS-562] - TypeScript: Add generics to Mapper

Bug fixes

  • [NODEJS-556] - TypeScript: Client.stream typedef has incorrect return type
  • [NODEJS-557] - TypeScript: DataCollection speculateRetry should be speculativeRetry
  • [NODEJS-559] - TypeScript: DataCollection object|map types
  • [NODEJS-561] - TypeScript: Missing credentials in ClientOptions

2.2.0

2019-09-23

Features

  • [NODEJS-464] - Include TypeScript declaration files on the package
  • [NODEJS-512] - Mapper: support selecting the table or view using clustering keys from “order by”
  • [NODEJS-514] - Support string input for all numeric types
  • [NODEJS-515] - Mapper: support static column updates with only the partition key
  • [NODEJS-545] - Introduce ‘credentials’ client option

Bug fixes

  • [NODEJS-509] - Mapper: batch items promise usage can lead to unhandled rejections
  • [NODEJS-524] - “RangeError: Index out of range” when fetching tuples
  • [NODEJS-527] - Mapper: select query cache key uses order by portion incorrectly
  • [NODEJS-529] - Tuple constructor incorrectly handles single element values
  • [NODEJS-538] - Mapper query generation error: USING clause is misplaced
  • [NODEJS-543] - DseGssapiAuthProvider fails with Kerberos library version 1.1.3
  • [NODEJS-546] - Mapper result throws when inspected and result is not ROWS

2.1.0

2019-04-25

Features

  • [NODEJS-180] - Expose API for parallel execution
  • [NODEJS-100] - Provide a way to stream data in
  • [NODEJS-478] - Send startup message and invoke Insights RPCs periodically
  • [NODEJS-491] - Send driver name and driver version in the STARTUP message
  • [NODEJS-497] - Add jitter to ExponentialReconnectionPolicy
  • [NODEJS-500] - ControlConnection init: Defer host map creation until system tables have been queried
  • [NODEJS-501] - Include host_id in host metadata

Bug fixes

  • [NODEJS-475] - Buffer out of bounds error when reading empty byte buffers
  • [NODEJS-477] - Logged message when preparing times out does not contain host address
  • [NODEJS-492] - RequestLogger: Object parameter is not stringified before using substr
  • [NODEJS-506] - ControlConnection queries during shutdown can leave active handles

2.0.0

2018-12-17

Features

  • [NODEJS-144] - Object Mapper
  • [NODEJS-104] - Randomize contact points to prevent hotspots
  • [NODEJS-192] - Allow raw bytes to be input for all types
  • [NODEJS-220] - Slow Query Logger
  • [NODEJS-300] - Expose metrics API
  • [NODEJS-331] - Bypass retry logic when query is marked as non-idempotent
  • [NODEJS-345] - Expose Metadata.checkSchemaAgreement() and ExecutionInfo.isSchemaInAgreement()
  • [NODEJS-366] - Latency tracker interface
  • [NODEJS-379] - DCAwareRoundRobinPolicy: Throw when local datacenter is not specified
  • [NODEJS-387] - Expose optional callbacks in TimeUuid.now() and TimeUuid.fromDate() as an async overload
  • [NODEJS-445] - New Default Load Balancing Policy
  • [NODEJS-449] - Support new JavaScript primitive type bigint
  • [NODEJS-450] - Introduce a wrapper around QueryOptions
  • [NODEJS-471] - Support kerberos module 1.0.0+
  • [NODEJS-485] - Remove usedHostsPerRemoteDc from DCAwareRoundRobinPolicy
  • [NODEJS-462] - Remove the experimental flag to the Execution Profiles

Bug fixes

  • [NODEJS-473] - Zero-length map values: Fix RangeError on empty buffer in Encoder

1.7.0

2018-12-04

Features

  • [NODEJS-442] - Parse Virtual Keyspace Metadata
  • [NODEJS-443] - Provide a means of sending query to a specific node to facilitate virtual table queries
  • [NODEJS-459] - Support for Virtual Tables/System views
  • [NODEJS-487] - Deprecate DCAwareRoundRobinPolicy parameter for inter-DC failover

Bug fixes

  • [NODEJS-465] - Table metadata fetch fails when using ES2015 Set and C* 3.0+
  • [NODEJS-472] - Connections attempts are made when a new node is bootstrapped even if its marked as “ignored”
  • [NODEJS-474] - Retry on current host should be made on a different connection

1.6.0

2018-04-17

Features

  • [NODEJS-384] - Support new ‘nodesync’ option in table metadata
  • [NODEJS-394] - Include hash of result set metadata in prepared statement id
  • [NODEJS-395] - Per-query (and per-batch) keyspace support
  • [NODEJS-407] - Add NO_COMPACT option
  • [NODEJS-426] - Log driver version on Client.connect
  • [NODEJS-431] - Consider using OPTIONS for heartbeats instead of ‘select key from system.local’
  • [NODEJS-434] - DETERMINISTIC and MONOTONIC Clauses for Function and Aggregate

Bug fixes

  • [NODEJS-412] - Methods to retrieve schema metadata should reject promise when not connected
  • [NODEJS-418] - Add jsdoc for each response error code
  • [NODEJS-428] - Connection associated with reconnect is not fully closed when STARTUP times out on node that is unresponsive
  • Use all columns from peers in ControlConnection
  • Remove buffers noAssert argument

1.5.1

2018-02-20

Bug Fixes

  • [NODEJS-429] - Additional validation needed in Encoder.setRoutingKeyFromUser to ensure provided routing key is valid
  • [NODEJS-430] - Unexpected error when query execution doesn’t include parameters which are part of the partition key

1.5.0

2018-02-05

Features

  • [NODEJS-95] - Expose node token and range information
  • [NODEJS-335] - Avoid using Object.defineProperty() for type representations
  • [NODEJS-344] - Verbose logging on Connection overhead
  • [NODEJS-363] - Drop support for Node.js v0.10 and v0.12
  • [NODEJS-378] - DCAwareRoundRobinPolicy: Warn when the local datacenter is not specified
  • [NODEJS-388] - Drop support for domains
  • [NODEJS-396] - Handle bulked results in Graph
  • [NODEJS-400] - Modify the message for batch log write failures
  • [NODEJS-402] - Batch: Use routing key from first statement
  • [NODEJS-404] - Use pooling.warmup to true as default
  • [NODEJS-405] - Use system.peers in protocol negotiation
  • [NODEJS-406] - Use ES2015 - Modernize codebase
  • [NODEJS-409] - alreadyExists error does not include keyspace and table attributes
  • [NODEJS-417] - Handle network stream backpressure when writing and limit write queue

Bug Fixes

  • [NODEJS-390] - Buffer.from() fails in older versions of Node.js v4 (lower than v4.5)
  • [NODEJS-403] - NoHostAvailableError does not call super DriverError constructor
  • [NODEJS-415] - Incorrect Murmur3 hashing of tokens which byte length satisfy length & 15 >= 12
  • [NODEJS-419] - Token to Replica map can omit replicas for vnodes

1.4.0

2017-09-19

Features

  • [NODEJS-82] - Speculative query retries
  • [NODEJS-287] - Provide metrics on the state of connections to Cassandra
  • [NODEJS-308] - Add CDC to TableOptionsMetadata and TableOptions for Cassandra 3.8+
  • [NODEJS-309] - Allow prepared statements to be prepared on all nodes
  • [NODEJS-339] - Avoid using deprecated Buffer constructors
  • [NODEJS-343] - Improve performance of Murmur 3 partitioner
  • [NODEJS-359] - Add ‘applied’ to ResultSet, similar to java-drivers ResultSet.wasApplied()
  • [NODEJS-375] - Expose optional callbacks Uuid.random() as async overload
  • [NODEJS-376] - Stringify tokens once to simplify computations when building token map

Bug Fixes

  • [NODEJS-365] - Routing key component length is encoded as int16 instead of uint16
  • [NODEJS-370] - Consistency of trace queries is not configurable
  • [NODEJS-373] - Empty string in a map field returned as null on query

1.3.1

2017-06-05

Bug Fixes

  • [NODEJS-346] - Shutdown doesn’t work if error occurs after control connection initialization
  • [NODEJS-347] - Metadata: Schema parser fails to handle index_options null values
  • [NODEJS-355] - Domain without dots will not connect
  • [NODEJS-358] - TokenAwarePolicy does not take statement keyspace into account
  • [NODEJS-360] - ControlConnection: when any of the queries to refresh topology fail it will not attempt to reconnect
  • [NODEJS-362] - Driver fails to encode Duration’s with large values

1.3.0

2017-04-18

Bug Fixes

  • [NODEJS-350] - Handle new WRITE_FAILURE and READ_FAILURE format in DSE_V1 protocol

1.3.0-beta1

2017-02-13

Notable Changes

  • Removed cassandra-driver external dependency. The DSE driver is now self-contained.
  • Support for DSE 5.1 EAP3.

Improvements

  • [NODEJS-324] - DSE Auth 5.1: Support Proxy Authentication in 5.1
  • [NODEJS-328] - Support DSE 5.1 DateRangeField
  • [NODEJS-329] - Read optional workload set from node metadata
  • [NODEJS-332] - Support Duration Type
  • [NODEJS-338] - Make protocol negotiation more resilient

1.2.0

2017-01-17

Notable Changes

  • Promise support (#194).
  • Timestamp generation: client-side timestamps are generated and sent in the request by default when the server supports it (#195).
  • Added isIdempotent query option which is set to false by default: future versions of the driver will use this value to consider whether an execution should be retried or directly rethrown to the consumer without using the retry policy (#197).

Improvements

  • [NODEJS-334] - Support promises in executeGraph() method
  • [NODEJS-336] - Update core driver dependency to v3.2.0

1.1.0

2016-11-18

Improvements

  • [NODEJS-316] - Implement fromString() method for geotypes
  • [NODEJS-317] - Support bytecode-json decoding in the DSE Driver
  • [NODEJS-318] - Include graph language in the Execution Profiles

1.0.4

2016-10-07

Improvements

  • [NODEJS-315] - Update core driver dependency to v3.1.5.

1.0.3

2016-09-21

Improvements

  • [NODEJS-311] - Update core driver dependency to v3.1.4.

1.0.2

2016-08-31

Improvements

  • [NODEJS-305] - Update core driver dependency to v3.1.3.

1.0.1

2016-08-30

Improvements

  • [NODEJS-302] - Update core driver dependency to v3.1.2.

1.0.0

2016-08-30

General availability version