You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 KiB

ChangeLog - DataStax Node.js Driver

4.6.4

2022-07-11

Bug fixes

  • [NODEJS-633] - Mapper error: TypeError: Cannot read property 'executor' of null
  • [NODEJS-645] - Travis builds are failing due to TypeScript errors
  • [NODEJS-646] - Unable to add address for initially unresolved host
  • [NODEJS-647] - Log negotiated SSL/TLS versions when using encrypted connections

4.6.3

2021-05-18

Bug fixes

  • [NODEJS-632] - Re-resolve contact points on reconnect when all nodes are unavailable
  • [NODEJS-634] - Downgrade protocol versions when encountering versions beyond what we support

4.6.2

2021-03-30

Bug fixes

  • [NODEJS-630] - upgraded vulnerable version of adm-zip dependency

4.6.1

2020-11-25

Bug fixes

  • [NODEJS-622] - Mapper: Batching with custom mapping does not work

4.6.0

2020-08-11

Features

  • [NODEJS-587] - Mapper: Add ability to provide a encoding/decoding functions to ModelOptions.columns
  • [NODEJS-607] - Mapper: Add clear error messages when the model can not be found
  • [NODEJS-611] - Use "allow list" terminology instead of whitelist

Bug fixes

  • [NODEJS-609] - NodeJS driver doesn't support transitional authentication
  • [NODEJS-610] - TypeScript error on Type 'ResultSet' must have a 'Symbol.asyncIterator' method that returns an async iterator.

4.5.2

2020-05-07

Bug fixes

  • [NODEJS-606] - Graph: Direction serializer does not serialize direction elements

4.5.1

2020-04-14

Bug fixes

  • [NODEJS-605] - Graph: TSerializer does not deserialize T elements correctly

4.5.0

2020-03-26

Features

  • [NODEJS-489] - Initial DS Graph 6.8 Support
  • [NODEJS-482] - Remove unnecessary allocations during GraphExecutionOptions creation
  • [NODEJS-564] - Include available dcs in all localDataCenter errors
  • [NODEJS-571] - Astra: Validate server certificate CN against the proxy host name
  • [NODEJS-573] - Expose a method to build the default load balancing policy with the data center name

Bug fixes

  • [NODEJS-594] - Cloud support uses fs.promises which is marked as experimental in Node.js

4.4.0

2020-01-15

Features

  • [NODEJS-549] - Unified driver: merge core and DSE drivers into a single package
  • [NODEJS-574] - Refactor Driver Internals: modernize codebase and use async functions internally
  • [NODEJS-563] - Support paging with async iterator
  • [NODEJS-585] - Implement TCP flow control
  • [NODEJS-516] - Drop support for Node.js 4 and 6 runtime

Bug fixes

  • [NODEJS-583] - Default load balancing policy local hosts cache might exclude hosts that were down
  • [NODEJS-584] - Exclude down hosts when preparing on all hosts
  • [NODEJS-586] - Encode Date as BigInt when useBigIntAsLong is true

4.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

4.3.0

2019-10-21

Features

  • [NODEJS-503] - DataStax Astra 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

4.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-546] - Mapper result throws when inspected and result is not ROWS

4.1.0

2019-04-25

Features

  • [NODEJS-180] - Expose API for parallel execution
  • [NODEJS-100] - Provide a way to stream data in
  • [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

4.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-449] - Support new JavaScript primitive type bigint
  • [NODEJS-450] - Introduce a wrapper around QueryOptions
  • [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

3.6.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

3.5.0

2018-04-17

Features

  • [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'

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
  • #271 - Use all columns from peers in ControlConnection
  • #276 - Remove buffers noAssert argument

3.4.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

3.4.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-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

3.3.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

3.2.2

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

3.2.1

2017-04-24

Features

  • [NODEJS-332] - Support Duration Type
  • [NODEJS-338] - Make protocol negotiation more resilient

3.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).

Features

  • [NODEJS-322] - Timestamp Generator Support for providing Client Timestamps Improvement
  • [NODEJS-189] - Support promises
  • [NODEJS-230] - Expose ResultSet @@iterator
  • [NODEJS-325] - Add explicit idempotency setting in the query options

3.1.6

2016-11-14

Bug Fixes

  • [NODEJS-294] - TokenAwarePolicy: Avoid yielding the primary replica first

3.1.5

2016-10-07

Bug Fixes

  • [NODEJS-313] - Client-to-node encryption: mark request as written before invoking socket.write()

3.1.4

2016-09-21

Bug Fixes

  • [NODEJS-310] - Reading streaming frames with flags can result in uncaught error

3.1.3

2016-08-31

Bug Fixes

  • [NODEJS-303] - Protocol version downgrade fails on OSX and Windows.

3.1.2

2016-08-30

Bug Fixes

  • [NODEJS-283] - Possible connection leak if pool is shutting down while core connections are being created.
  • [NODEJS-288] - Callback never executed in error on subsequent Client.execute with Client configured with keyspace that doesn't exist.
  • [NODEJS-293] - When client.connect() return error - client.shutdown() not work properly.
  • [NODEJS-296] - Cannot read property 'consistency' of null, TypeError: Cannot read property 'consistency' of null
  • [NODEJS-297] - DCAwareRoundRobinPolicy should make a local reference to host arrays
  • [NODEJS-301] - 'Trying to access beyond buffer length' error if Warnings, Custom Payload, or Trace Id present in non-RESULT response Improvement
  • [NODEJS-265] - Remove connection from host pool when closed by server side

3.1.1

2016-06-30

Bug Fixes

  • [NODEJS-284] - Driver fails to resolve host names in the local hosts file

3.1.0

2016-06-28

Notable Changes

  • Introduced experimental Execution Profiles API (#156)
  • Removed dependency to async package ( #138).
  • Enhanced retry policies: handle client timeouts, connection closed and other errors. New retry decision: try next host (#143).

Features

  • [NODEJS-261] - Execution profiles
  • [NODEJS-105] - New Retry Policy Decision - try next host
  • [NODEJS-106] - Don't mark host down while one connection is active
  • [NODEJS-107] - Prevent duplicate metadata fetches from control connection and allow disabling schema metadata fetching
  • [NODEJS-247] - Schedule idleTimeout before descheduling the previous
  • [NODEJS-177] - Use A-record with multiple IPs for contact points
  • [NODEJS-201] - Avoid dynamically copying query options properties into users query options
  • [NODEJS-236] - Handle empty map values gracefully
  • [NODEJS-240] - Replace async dependency
  • [NODEJS-242] - Expose default policies and default options
  • [NODEJS-248] - Optimize query plan hosts iteration
  • [NODEJS-249] - Avoid using Object.defineProperty() in ResultSet constructor
  • [NODEJS-251] - Expose onRequestError() method in the RetryPolicy prototype

Bug Fixes

  • [NODEJS-246] - InetAddress validation improperly flags IPv4-mapped IPv6
  • [NODEJS-250] - Timeout duration reported in OperationTimedOutError does not consider statement-level options.
  • [NODEJS-252] - Prepared statement metadata does not use logged keyspace
  • [NODEJS-255] - InetAddress.toString() improperly truncates last group if preceding bytes are 0 for ipv6 addresses
  • [NODEJS-257] - Connection wrongly parses IPv6 from Host address
  • [NODEJS-273] - readTimeout set to 0 in queryOptions is not used.

3.0.2

2016-04-05

Features

  • [NODEJS-228] - Allow setting read timeout at statement level

Bug Fixes

  • [NODEJS-159] - Metadata.getTokenToReplicaNetworkMapper does not account for multiple racks in a DC
  • [NODEJS-235] - Decoding error can result in callback not executed
  • [NODEJS-237] - Timeuuid generation sub-millisecond portion is not guaranteed to be increasing
  • [NODEJS-238] - eachRow() retry attempts after read timeout don't execute rowCallback

3.0.1

2016-02-08

Features

  • [NODEJS-211] - Pass the authenticator name from the server to the auth provider

Bug Fixes

  • [NODEJS-216] - Inet with alpha character is converting the character to 0

3.0.0

2015-12-14

Notable Changes

  • Default consistency changed back to LOCAL_ONE.

Features

  • [NODEJS-155] - Schedule reconnections using Timers
  • [NODEJS-195] - Expose encode()/decode() functions
  • [NODEJS-204] - Change default consistency level to LOCAL_ONE
  • [NODEJS-198] - Avoid using Function.prototype.bind() for common execution path
  • [NODEJS-200] - Use Error.captureStackTrace() only when setting enabled

Bug Fixes

  • [NODEJS-193] - BigDecimal.fromString() should throw a TypeError if there is a conversion error
  • [NODEJS-197] - Can't parse column type if it contains UDT that is a quoted identifier
  • [NODEJS-202] - Support for "custom" types after CASSANDRA-10365
  • [NODEJS-203] - RoundRobinPolicies: Missing return statement when calling callback

3.0.0-rc1

2015-11-11

Notable Changes

  • Added support for Cassandra 3.0.0
  • Breaking Changed default consistency to LOCAL QUORUM #103
  • Breaking Aggregate#initCondition now returns the string representation of the value #102
  • Manual paging via ResultSet#nextPage() and Client#stream() throttling #111

Features

  • [NODEJS-186] - Update schema type representation to CQL
  • [NODEJS-68] - Manual paging support via nextPage() and client.stream() throttling
  • [NODEJS-130] - Add buffer for non-streaming rows messages
  • [NODEJS-142] - Frame coalescing on connection
  • [NODEJS-169] - Update async dependency
  • [NODEJS-178] - Change default consistency level to LOCAL_QUORUM
  • [NODEJS-181] - Update default behavior unbound values in prepared statements

Bug Fixes

  • [NODEJS-164] - Defunct connection is not properly removed from pool
  • [NODEJS-190] - useUndefinedAsUnset should not apply to udt, tuple, set, list and map members.

3.0.0-beta1

2015-10-19

Notable Changes

  • Added support for Cassandra 3.0-rc1
  • New index metadata API #98

Features

  • [NODEJS-163] - Process Modernized Schema Tables for C* 3.0
  • [NODEJS-166] - Process Materialized View Metadata
  • [NODEJS-170] - Process materialized view events
  • [NODEJS-171] - Process changes in 'columns' table in C* 3.0-rc1+
  • [NODEJS-172] - Process crc_check_chance column from 'tables' and 'views' metadata tables
  • [NODEJS-182] - Add missing options to table / view metadata
  • [NODEJS-183] - Add support for parsing Index metadata

Bug Fixes

  • [NODEJS-185] - Metadata fetch of table with ColumnToCollectionType fails

2.2.2

2015-10-14

Features

  • [NODEJS-187] - Expose Metadata prototype to be available for promisification

Bug Fixes

  • [NODEJS-160] - Error setting routing keys before query execution
  • [NODEJS-175] - Select from table after a new field is added to a UDT can result in callback never fired
  • [NODEJS-185] - Metadata fetch of table with ColumnToCollectionType fails

2.2.1

2015-09-14

Features

  • [NODEJS-162] - Add coordinator of query to error object

Bug Fixes

  • [NODEJS-154] - Local datacenter could not be determined
  • [NODEJS-165] - Driver 2.2 fails to connect under windows server for cassandra 2.1

2.2.0

2015-08-10

Notable Changes

  • Client: All requests use readTimeout that can be configured in the socketOptions, enabled by default to 12secs
  • Client: Now exposes topology and node status change events: hostAdd, hostRemove, hostUp and hostDown

Features

  • [NODEJS-140] - WhiteListPolicy
  • [NODEJS-114] - Client-Configurable High Level Request Timeout
  • [NODEJS-138] - Provide option to open all connections at startup
  • [NODEJS-149] - Expose node status and topology changes
  • [NODEJS-152] - Enable client read timeout by default

Bug Fixes

  • [NODEJS-111] - Connect should callback in error after shutdown
  • [NODEJS-151] - 'All host(s) tried for query failed' error immediately after Cassandra node failure
  • [NODEJS-156] - RequestHandler retry should not use a new query plan
  • [NODEJS-157] - Control connection can fail and not be re-established if it errors on initOnConnection

2.2.0-rc1

2015-06-18

Notable Changes

  • Added support for Cassandra 2.2 and native protocol v4

Features

  • [NODEJS-117] - Small int and byte types for C* 2.2
  • [NODEJS-118] - Support new date and time types
  • [NODEJS-121] - Distinguish between NULL and UNSET values in Prepared Statements
  • [NODEJS-122] - Add support for client warnings
  • [NODEJS-123] - Support Key-value payloads in native protocol v4
  • [NODEJS-124] - Use PK columns from v4 prepared responses
  • [NODEJS-125] - Support UDF and Aggregate Function Schema Meta
  • [NODEJS-126] - Add client address to query trace
  • [NODEJS-129] - Support server error in Startup response for C* 2.1
  • [NODEJS-131] - Handle new C* 2.2 errors

Bug Fixes

  • [NODEJS-119] - Rare 'write after end' error encountered while reconnecting with lower protocol version on nodejs 0.10.x
  • [NODEJS-120] - Connection 'object is not a function' at Connection.handleResult
  • [NODEJS-127] - Integer.toBuffer() gives wrong representation for positive numbers with the msb on
  • [NODEJS-128] - getPeersSchemaVersions uses system.local instead of system.peers
  • [NODEJS-136] - LocalDate fails to parse dates less than -271821-04-20 and greater than 275760-09-13
  • [NODEJS-137] - DriverInternalError - No active connection found
  • [NODEJS-139] - Use retry policy defined in the query options
  • [NODEJS-141] - Node schema change - keyspace metadata does not exist
  • [NODEJS-146] - Unhandled 'error' event caused by RST on Socket on Connection Initialization causes app to terminate