3.14.0
======
Features
--------
- Add one() function to the ResultSet API
- Create an utility function to fetch concurrently many keys from the
same replica
- Allow filter queries with fields that have an index managed outside
of cqlengine
- Twisted SSL Support
- Support IS NOT NULL operator in cqlengine
Other
-----
- Fix Broken Links in Docs
- Reevaluate MONKEY_PATCH_LOOP in test codebase
- Remove CASS_SERVER_VERSION and replace it for CASSANDRA_VERSION in
tests
- Refactor CASSANDRA_VERSION to a some kind of version object
- Log warning when driver configures an authenticator, but server does
not request authentication
- Warn users when using the deprecated
Session.default_consistency_level
- Add DSE smoke test to OSS driver tests
- Document long compilation times and workarounds
- Improve error for batch WriteTimeouts
- Deprecate ResultSet indexing
3.13.0
======
Features
--------
- cqlengine: LIKE filter operator
- Support cassandra.query.BatchType with cqlengine BatchQuery
Bug Fixes
---------
- AttributeError: 'NoneType' object has no attribute 'add_timer'
- Support retry_policy in PreparedStatement
- __del__ method in Session is throwing an exception
- LZ4 import issue with recent versions
- ResponseFuture._connection can be None when returning request_id
- ResultSet.was_applied doesn't support batch with LWT statements
Other
-----
- cqlengine: avoid warning when unregistering connection on shutdown
- Fix DeprecationWarning of log.warn
- Fix example_mapper.py for python3
- Possible deadlock on cassandra.concurrent.execute_concurrent
- Add some known deprecated warnings for 4.x
- Remove copyright dates from copyright notices
- Remove "Experimental" tag from execution profiles documentation
- request_timer metrics descriptions are slightly incorrect
- Remove "Experimental" tag from cqlengine connections documentation
- Set in documentation default consistency for operations is LOCAL_ONE
Features
- Quote index names in metadata CQL generation (PYTHON-616)
- On column deserialization failure, keep error message consistent
between python and cython (PYTHON-631)
- TokenAwarePolicy always sends requests to the same replica for a given
key (PYTHON-643)
- Added cql types to result set (PYTHON-648)
- Add __len__ to BatchStatement (PYTHON-650)
- Duration Type for Cassandra (PYTHON-655)
- Send flags with PREPARE message in v5 (PYTHON-684)
Bug Fixes
- Potential Timing issue if application exits prior to session pool
initialization (PYTHON-636)
- "Host X.X.X.X has been marked down" without any exceptions
(PYTHON-640)
- NoHostAvailable or OperationTimedOut when using execute_concurrent
with a generator that inserts into more than one table (PYTHON-642)
- ResponseFuture creates Timers and don't cancel them even when result
is received which leads to memory leaks (PYTHON-644)
- Driver cannot connect to Cassandra version > 3 (PYTHON-646)
- Unable to import model using UserType without setuping connection
since 3.7 (PYTHON-649)
- Don't prepare queries on ignored hosts on_up (PYTHON-669)
- Sockets associated with sessions not getting cleaned up on
session.shutdown() (PYTHON-673)
- Make client timestamps strictly monotonic (PYTHON-676)
- cassandra.cqlengine.connection.register_connection broken when
hosts=None (PYTHON-692)
Other
- Create a cqlengine doc section explaining None semantics (PYTHON-623)
- Resolve warnings in documentation generation (PYTHON-645)
- Cython dependency (PYTHON-686)
- Drop Support for Python 2.6 (PYTHON-690)
3.0.0
Features
- Support datetime.date objects as a DateType
- Add Cluster.update_view_metadata
- QueryTrace option to populate partial trace sessions
- Attach column names to ResultSet
- Change default consistency level to LOCAL_ONE
Bug Fixes
- Properly SerDes nested collections when protocol_version < 3
- Evict UDTs from UserType cache on change
- Make sure query strings are always encoded UTF-8
- Track previous value of columns at instantiation in CQLengine
- UDT CQL encoding does not work for unicode values
- NetworkTopologyStrategy#make_token_replica_map does not account
for multiple racks in a DC
- Cython integer overflow on decimal type deserialization
- Query trace: if session hasn't been logged, query trace can
throw exception
3.0.0rc1
Features
- Process Modernized Schema Tables for Cassandra 3.0
- Remove deprecated features
- Don't assign trace data to Statements
- Normalize results return
- Process Materialized View Metadata/Events
- Remove blist as soft dependency
- Change default consistency level to LOCAL_QUORUM
- Normalize CQL query/export in metadata model
Bug Fixes
- Implementation of named arguments bind is non-pythonic
- CQL encoding is incorrect for NaN and Infinity floats
- Protocol downgrade issue with C* 2.0.x, 2.1.x, and python3,
with non-default logging
- ValueError when accessing usertype with non-alphanumeric
field names
- NumpyProtocolHandler does not play well with PagedResult
2.7.2
Bug Fixes
- Resolve CQL export error for UDF with zero parameters
- Remove futures dep. for Python 3
2.7.1
Bug Fixes
- Explicitly include extension source files in Manifest
2.7.0
Cython is introduced, providing compiled extensions for core modules,
and extensions for optimized results deserialization.
Features
- General Performance Improvements for Throughput
- Improve synchronous request performance with Timers
- Enable C Extensions for PyPy Runtime
- Refactor SerDes functionality for pluggable interface
- Cython SerDes Extension
- Accept iterators/generators for execute_concurrent()
- cythonize existing modules
- Pure Python murmur3 implementation
- Make driver tolerant of inconsistent metadata
Bug Fixes
- Drop Events out-of-order Cause KeyError on Processing
- DowngradingConsistencyRetryPolicy doesn't check response count on write
timeouts
- Blocking connect does not use connect_timeout
- Properly protect partition key in CQL export
- Trigger error callbacks on timeout
2.6.0
Bug Fixes
- Output proper CQL for compact tables with no clustering columns
2.6.0c2
Features
- Automatic Protocol Version Downgrade
- cqlengine Python 2.6 compatibility
- Double-dollar string quote UDF body
- Set models.DEFAULT_KEYSPACE when calling set_session
Bug Fixes
- Avoid stall while connecting to mixed version cluster
- Make SSL work with AsyncoreConnection in python 2.6.9
- Fix Murmur3Token.from_key() on Windows
- Fix cqlengine TimeUUID rounding error for Windows
- Avoid invalid compaction options in CQL export for non-SizeTiered
2.6.0c1
This release adds support for Cassandra 2.2 features, including
version 4 of the native protocol.
Features
- Default load balancing policy to TokenAware(DCAware)
- Configuration option for connection timeout
- Support User Defined Function and Aggregate metadata in C* 2.2
- Surface request client in QueryTrace for C* 2.2+
- Implement new request failure messages in protocol v4+
- Metadata model now maps index meta by index name
- Support new types in C* 2.2: date, time, smallint, tinyint
- cqle: add Double column type and remove Float overload
- Use partition key column information in prepared response for protocol v4+
- Support message custom payloads in protocol v4+
- Deprecate refresh_schema and replace with functions for specific entities
- Save trace id even when trace complete times out
- Warn when registering client UDT class for protocol < v3
- Support client warnings returned with messages in protocol v4+
- Ability to distinguish between NULL and UNSET values in protocol v4+
- Expose CQL keywords in API
Bug Fixes
- IPv6 address support on Windows
- Convert exceptions during automatic re-preparation to nice exceptions
- cqle: Quote keywords properly in table management functions
- Don't default to GeventConnection when gevent is loaded, but
not monkey-patched
- Pass dynamic host from SaslAuthProvider to SaslAuthenticator
- Make protocol read_inet work for Windows
- cqle: Correct encoding for nested types
- Update list of CQL keywords used quoting identifiers
- Make ConstantReconnectionPolicy work with infinite retries
- Accept UUIDs with uppercase hex as valid in cqlengine
2.5.0
- Integrated cqlengine object mapping package
- Utility functions for converting timeuuids and datetime (PYTHON-99)
- Schema metadata fetch window randomized, config options added (PYTHON-202)
- Support for new Date and Time Cassandra types (PYTHON-190)
- Fix index target for collection indexes (full(), keys()) (PYTHON-222)
- Thread exception during GIL cleanup (PYTHON-229)
- Workaround for rounding anomaly in datetime.utcfromtime (Python 3.4)
(PYTHON-230)
- Normalize text serialization for lookup in OrderedMap (PYTHON-231)
- Support reading CompositeType data (PYTHON-234)
- Preserve float precision in CQL encoding (PYTHON-243)
2.1.4
- SaslAuthenticator for Kerberos support (PYTHON-109)
- Heartbeat for network device keepalive and detecting failures on idle
connections (PYTHON-197)
- Support nested, frozen collections for Cassandra 2.1.3+ (PYTHON-186)
- Schema agreement wait bypass config, new call for synchronous schema
refresh (PYTHON-205)
- Add eventlet connection support (PYTHON-194)
- Schema meta fix for complex thrift tables (PYTHON-191)
- Support for 'unknown' replica placement strategies in schema meta
(PYTHON-192)
- Resolve stream ID leak on set_keyspace (PYTHON-195)
- Remove implicit timestamp scaling on serialization of numeric
timestamps (PYTHON-204)
- Resolve stream id collision when using SASL auth (PYTHON-210)
- Correct unhexlify usage for user defined type meta in Python3 (PYTHON-208)
Python client driver for Apache Cassandra. This driver works exclusively
with the Cassandra Query Language v3 (CQL3) and Cassandra's native protocol.
Cassandra versions 1.2 through 2.1 are supported.