NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2058 most downloaded on PyPI
Apache Cassandra Python Driver
Last release 3 months ago
06 Jul 2026
Release timing varies
gaps range from 5 weeks to 2.0 years
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
80 releases · first in 2013
Wheels for 3.30.0 include Cython-generated .c files (CASSPYTHON-21)
June 19, 2026
Wheels for 3.30.0 include Cython-generated .c files (CASSPYTHON-21)
Mark non-security md5 usage to allow for compatibility with fips (PR 1288/1294)
Prevent crash at exit (PR 1287)
Removed obsolete check for python version > 3.7+ (CASSPYTHON-18)
Mark eventlet, gevent and Twisted event loops as deprecated (CASSPYTHON-12)
March 23, 2026
Introduce pyproject.toml to explicitly declare build dependencies (CASSPYTHON-7)
Add Python 3.14 to CI, remove Python 3.9 (CASSPYTHON-4)
Mark eventlet, gevent and Twisted event loops as deprecated (CASSPYTHON-12)
Do not set timeout to None when calling execute_async in execute_concurrent (PYTHON-1354)
No C extension .so files in published binary Python whl packages of 3.29.3 (CASSPYTHON-3)
Win32 wheels do not include compiled libev modules (CASSPYTHON-5)
Remove obsolete __future__ import absolute_import (PR 1263)
Remove ez_setup for compatibility with setuptools v82 (PR 1268)
Replace usage of with await lock (PR 1270)
Update cassandra.util.Version to better support Cassandra version strings (CASSPYTHON-10)
Update DRIVER_NAME after donation to ASF (CASSPYTHON-17)
One column per quarter.
Upgraded cython to 3.0.x (PR 1221 & PYTHON-1390)
October 20, 2025
Upgraded cython to 3.0.x (PR 1221 & PYTHON-1390)
Add support for DSE 6.9.x and HCD releases to CI (PYTHON-1402)
Add execute_concurrent_async and expose execute_concurrent_* in Session (PR 1229)
Update geomet to align with requirements.txt (PR 1236)
Connection failure to SNI endpoint when first host is unavailable (PYTHON-1419)
Maintain compatibility with CPython 3.13 (PR 1242)
Remove duplicated condition in primary key check (PR 1240)
Remove Python 3.8 which reached EOL on Oct 2024, update cryptography lib to 42 (PR 1247)
Remove obsolete urllib2 from ez_setup.py (PR 1248)
Remove stale dependency on sure (PR 1227)
Removed 2.7 Cpython defines (PR 1252)
Use timezone-aware API to avoid deprecated warning (PR 1213)
September 9, 2024
Convert to pytest for running unit and integration tests (PYTHON-1297)
Add support for Cassandra 4.1.x and 5.0 releases to CI (PYTHON-1393)
Extend driver vector support to arbitrary subtypes and fix handling of variable length types (PYTHON-1369)
Python NumpyProtocolHandler does not work with NumPy 1.24.0 or greater (PYTHON-1359)
cibuildwheel appears to not be stripping Cython-generated shared objects (PYTHON-1387)
Windows build for Python 3.12 compiled without libev support (PYTHON-1386)
Update README.rst with badges for version and license (PR 1210)
Remove dependency on old mock external module (PR 1201)
Removed future print_function, division, and with and some pre 3.7 handling (PR 1208)
Update geomet dependency (PR 1207)
Remove problematic escape sequences in some docstrings to avoid SyntaxWarning in Python 3.12 (PR 1205)
Use timezone-aware API to avoid deprecated warning (PR 1213)
cassandra-driver for Python 3.12 Linux is compiled without libev support (PYTHON-1378)
March 19, 2024
cassandra-driver for Python 3.12 Linux is compiled without libev support (PYTHON-1378)
Consider moving to native wheel builds for OS X and removing universal2 wheels (PYTHON-1379)
Add support for Python 3.9 through 3.12, drop support for 3.7 (PYTHON-1283)
December 19, 2023
Add support for Python 3.9 through 3.12, drop support for 3.7 (PYTHON-1283)
Removal of dependency on six module (PR 1172)
Raise explicit exception when deserializing a vector with a subtype that isn’t a constant size (PYTHON-1371)
Remove outdated Python pre-3.7 references (PR 1186)
Remove backup(.bak) files (PR 1185)
Fix doc typo in add_callbacks (PR 1177)
Add support for vector type (PYTHON-1352)
June 5, 2023
Add support for vector type (PYTHON-1352)
Cryptography module is now an optional dependency (PYTHON-1351)
Store IV along with encrypted text when using column-level encryption (PYTHON-1350)
Create session-specific protocol handlers to contain session-specific CLE policies (PYTHON-1356)
Use Cython for smoke builds (PYTHON-1343)
Don't fail when inserting UDTs with prepared queries with some missing fields (PR 1151)
Convert print statement to function in docs (PR 1157)
Update comment for retry policy (DOC-3278)
Added error handling blog reference (DOC-2813)
Add support for client-side encryption (PYTHON-1341)
May 1, 2023
Add support for client-side encryption (PYTHON-1341)
Fix deprecation warning in query tracing (PR 1103)
March 13, 2023
Add support for execution profiles in execute_concurrent (PR 1122)
Handle empty non-final result pages (PR 1110)
Do not re-use stream IDs for in-flight requests (PR 1114)
Asyncore race condition cause logging exception on shutdown (PYTHON-1266)
Fix deprecation warning in query tracing (PR 1103)
Remove mutable default values from some tests (PR 1116)
Remove dependency on unittest2 (PYTHON-1289)
Fix deprecation warnings for asyncio.coroutine annotation in asyncioreactor (PYTHON-1290)
Fix typos in source files (PR 1126)
HostFilterPolicyInitTest fix for Python 3.11 (PR 1131)
Fix for DontPrepareOnIgnoredHostsTest (PYTHON-1287)
tests.integration.simulacron.test_connection failures (PYTHON-1304)
tests.integration.standard.test_single_interface.py appears to be failing for C* 4.0 (PYTHON-1329)
Authentication tests appear to be failing fraudulently (PYTHON-1328)
PreparedStatementTests.test_fail_if_different_query_id_on_reprepare() failing unexpectedly (PTYHON-1327)
Refactor deprecated unittest aliases for Python 3.11 compatibility (PR 1112)
This release removes support for Python 2.7.x as well as Python 3.5.x and 3.6.x
Ensure the driver can connect when invalid peer hosts are in system.peers (PYTHON-1260)
March 18, 2021
Ensure the driver can connect when invalid peer hosts are in system.peers (PYTHON-1260)
Implement protocol v5 checksumming (PYTHON-1258)
Fix the default cqlengine connection mechanism to work with Astra (PYTHON-1265)
Asyncore race condition cause logging exception on shutdown (PYTHON-1266)
Update list of reserved keywords (PYTHON-1269)
Drop Python 3.4 support (PYTHON-1220)
Update security documentation and examples to use PROTOCOL_TLS (PYTHON-1264)
Make geomet an optional dependency at runtime (PYTHON-1237)
June 18, 2020
Make geomet an optional dependency at runtime (PYTHON-1237)
Add use_default_tempdir cloud config options (PYTHON-1245)
Tcp flow control for libevreactor (PYTHON-1248)
Unable to connect to a cloud cluster using Ubuntu 20.04 (PYTHON-1238)
PlainTextAuthProvider fails with unicode chars and Python3 (PYTHON-1241)
[GRAPH] Graph execution profiles consistency level are not set to LOCAL_QUORUM with a cloud cluster (PYTHON-1240)
[GRAPH] Can't write data in a Boolean field using the Fluent API (PYTHON-1239)
[GRAPH] Fix elementMap() result deserialization (PYTHON-1233)
Bump geomet dependency version to 0.2 (PYTHON-1243)
Bump gremlinpython dependency version to 3.4.6 (PYTHON-1212)
Improve fluent graph documentation for core graphs (PYTHON-1244)
Transient Replication Support (PYTHON-1207)
April 6, 2020
Transient Replication Support (PYTHON-1207)
Support system.peers_v2 and port discovery for C* 4.0 (PYTHON-700)
Asyncore logging exception on shutdown (PYTHON-1228)
Add all() function to the ResultSet API (PYTHON-1203)
February 26, 2020
Add all() function to the ResultSet API (PYTHON-1203)
Parse new schema metadata in NGDG and generate table edges CQL syntax (PYTHON-996)
Add GraphSON3 support (PYTHON-788)
Use GraphSON3 as default for Native graphs (PYTHON-1004)
Add Tuple and UDT types for native graph (PYTHON-1005)
Add Duration type for native graph (PYTHON-1000)
Add gx:ByteBuffer graphson type support for Blob field (PYTHON-1027)
Enable Paging Through DSE Driver for Gremlin Traversals (PYTHON-1045)
Provide numerical wrappers to ensure proper graphson schema definition (PYTHON-1051)
Resolve the row_factory automatically for native graphs (PYTHON-1056)
Add g:TraversalMetrics/g:Metrics graph deserializers (PYTHON-1057)
Add g:BulkSet graph deserializers (PYTHON-1060)
Update Graph Engine names and the way to create a Classic/Native Graph (PYTHON-1090)
Update Native to Core Graph Engine
Add graphson3 and native graph support (PYTHON-1039)
Enable Paging Through DSE Driver for Gremlin Traversals (PYTHON-1045)
Expose filter predicates for cql collections (PYTHON-1019)
Add g:TraversalMetrics/Metrics deserializers (PYTHON-1057)
Make graph metadata handling more robust (PYTHON-1204)
Make sure to only query the native_transport_address column with DSE (PYTHON-1205)
Unified driver: merge core and DSE drivers into a single package (PYTHON-1130)
January 15, 2020
Unified driver: merge core and DSE drivers into a single package (PYTHON-1130)
Add Python 3.8 support (PYTHON-1189)
Allow passing ssl context for Twisted (PYTHON-1161)
Ssl context and cloud support for Eventlet (PYTHON-1162)
Cloud Twisted support (PYTHON-1163)
Add additional_write_policy and read_repair to system schema parsing (PYTHON-1048)
Flexible version parsing (PYTHON-1174)
Support NULL in collection deserializer (PYTHON-1123)
[GRAPH] Ability to execute Fluent Graph queries asynchronously (PYTHON-1129)
Handle prepared id mismatch when repreparing on the fly (PYTHON-1124)
re-raising the CQLEngineException will fail on Python 3 (PYTHON-1166)
asyncio message chunks can be processed discontinuously (PYTHON-1185)
Reconnect attempts persist after downed node removed from peers (PYTHON-1181)
Connection fails to validate ssl certificate hostname when SSLContext.check_hostname is set (PYTHON-1186)
ResponseFuture._set_result crashes on connection error when used with PrepareMessage (PYTHON-1187)
Insights fail to serialize the startup message when the SSL Context is from PyOpenSSL (PYTHON-1192)
The driver has a new dependency: geomet. It comes from the dse-driver unification and is used to support DSE geo types.
Remove *read_repair_chance table options (PYTHON-1140)
Avoid warnings about unspecified load balancing policy when connecting to a cloud cluster (PYTHON-1177)
Add new DSE CQL keywords (PYTHON-1122)
Publish binary wheel distributions (PYTHON-1013)
DSELoadBalancingPolicy will be removed in the next major, consider using the DefaultLoadBalancingPolicy.
Merged from dse-driver:
Insights integration (PYTHON-1047)
Graph execution profiles should preserve their graph_source when graph_options is overridden (PYTHON-1021)
Add NodeSync metadata (PYTHON-799)
Add new NodeSync failure values (PYTHON-934)
DETERMINISTIC and MONOTONIC Clauses for Functions and Aggregates (PYTHON-955)
GraphOptions should show a warning for unknown parameters (PYTHON-819)
DSE protocol version 2 and continous paging backpressure (PYTHON-798)
GraphSON2 Serialization/Deserialization Support (PYTHON-775)
Add graph-results payload option for GraphSON format (PYTHON-773)
Create an AuthProvider for the DSE transitional mode (PYTHON-831)
Implement serializers for the Graph String API (PYTHON-778)
Provide deserializers for GraphSON types (PYTHON-782)
Add Graph DurationType support (PYTHON-607)
Support DSE DateRange type (PYTHON-668)
RLAC CQL output for materialized views (PYTHON-682)
Add Geom Types wkt deserializer
DSE Graph Client timeouts in custom payload (PYTHON-589)
Make DSEGSSAPIAuthProvider accept principal name (PYTHON-574)
Add config profiles to DSE graph execution (PYTHON-570)
DSE Driver version checking (PYTHON-568)
Distinct default timeout for graph queries (PYTHON-477)
Graph result parsing for known types (PYTHON-479,487)
Distinct read/write CL for graph execution (PYTHON-509)
Target graph analytics query to spark master when available (PYTHON-510)
Continuous paging sessions raise RuntimeError when results are not entirely consumed (PYTHON-1054)
GraphSON Property deserializer should return a dict instead of a set (PYTHON-1033)
ResponseFuture.has_more_pages may hold the wrong value (PYTHON-946)
DETERMINISTIC clause in AGGREGATE misplaced in CQL generation (PYTHON-963)
graph module import cause a DLL issue on Windows due to its cythonizing failure (PYTHON-900)
Update date serialization to isoformat in graph (PYTHON-805)
DateRange Parse Error (PYTHON-729)
MontonicTimestampGenerator.__init__ ignores class defaults (PYTHON-728)
metadata.get_host returning None unexpectedly (PYTHON-709)
Sockets associated with sessions not getting cleaned up on session.shutdown() (PYTHON-673)
Resolve FQDN from ip address and use that as host passed to SASLClient (PYTHON-566)
Geospatial type implementations don't handle 'EMPTY' values. (PYTHON-481)
Correctly handle other types in geo type equality (PYTHON-508)
Add tests around cqlengine and continuous paging (PYTHON-872)
Add an abstract GraphStatement to handle different graph statements (PYTHON-789)
Write documentation examples for DSE 2.0 features (PYTHON-732)
DSE_V1 protocol should not include all of protocol v5 (PYTHON-694)
Fix import error for old python installation without SSLContext (PYTHON-1183)
November 19, 2019
Fix import error for old python installation without SSLContext (PYTHON-1183)
ValueError: too many values to unpack (expected 2)" when there are two dashes in server version number (PYTHON-1172)
November 6, 2019
ValueError: too many values to unpack (expected 2)" when there are two dashes in server version number (PYTHON-1172)
DataStax Astra Support (PYTHON-1074)
October 28, 2019
DataStax Astra Support (PYTHON-1074)
Use 4.0 schema parser in 4 alpha and snapshot builds (PYTHON-1158)
Connection setup methods prevent using ExecutionProfile in cqlengine (PYTHON-1009)
Driver deadlock if all connections dropped by heartbeat whilst request in flight and request times out (PYTHON-1044)
Exception when use pk__token__gt filter In python 3.7 (PYTHON-1121)
Add Python 3.7 support (PYTHON-1016)
August 26, 2019
Add Python 3.7 support (PYTHON-1016)
Future-proof Mapping imports (PYTHON-1023)
Include param values in cqlengine logging (PYTHON-1105)
NTS Token Replica Map Generation is slow (PYTHON-622)
as_cql_query UDF/UDA parameters incorrectly includes "frozen" if arguments are collections (PYTHON-1031)
cqlengine does not currently support combining TTL and TIMESTAMP on INSERT (PYTHON-1093)
Fix incorrect metadata for compact counter tables (PYTHON-1100)
Call ConnectionException with correct kwargs (PYTHON-1117)
Can't connect to clusters built from source because version parsing doesn't handle 'x.y-SNAPSHOT' (PYTHON-1118)
Discovered node doesn´t honor the configured Cluster port on connection (PYTHON-1127)
Exception when use pk__token__gt filter In python 3.7 (PYTHON-1121)
Remove invalid warning in set_session when we initialize a default connection (PYTHON-1104)
Set the proper default ExecutionProfile.row_factory value (PYTHON-1119)
Abstract Host Connection information (PYTHON-1079)
May 27, 2019
Abstract Host Connection information (PYTHON-1079)
Improve version parsing to support a non-integer 4th component (PYTHON-1091)
Expose on_request_error method in the RetryPolicy (PYTHON-1064)
Add jitter to ExponentialReconnectionPolicy (PYTHON-1065)
Fix error when preparing queries with beta protocol v5 (PYTHON-1081)
Accept legacy empty strings as column names (PYTHON-1082)
Let util.SortedSet handle uncomparable elements (PYTHON-1087)
Socket errors EAGAIN/EWOULDBLOCK are not handled properly and cause timeouts (PYTHON-1089)
May 2, 2019
Socket errors EAGAIN/EWOULDBLOCK are not handled properly and cause timeouts (PYTHON-1089)
Using Cluster.ssl_options to enable SSL is deprecated and will be removed in the next major release, use ssl_context.
February 19, 2019
Send driver name and version in startup message (PYTHON-1068)
Add Cluster ssl_context option to enable SSL (PYTHON-995)
Allow encrypted private keys for 2-way SSL cluster connections (PYTHON-995)
Introduce new method ConsistencyLevel.is_serial (PYTHON-1067)
Add Session.get_execution_profile (PYTHON-932)
Add host kwarg to Session.execute/execute_async APIs to send a query to a specific node (PYTHON-993)
NoHostAvailable when all hosts are up and connectable (PYTHON-891)
Serial consistency level is not used (PYTHON-1007)
Fail faster on incorrect lz4 import (PYTHON-1042)
Bump Cython dependency version to 0.29 (PYTHON-1036)
Expand Driver SSL Documentation (PYTHON-740)
Using Cluster.ssl_options to enable SSL is deprecated and will be removed in the next major release, use ssl_context.
DowngradingConsistencyRetryPolicy is deprecated and will be removed in the next major release. (PYTHON-937)
Improve and fix socket error-catching code in nonblocking-socket reactors (PYTHON-1024)
November 12, 2018
Improve and fix socket error-catching code in nonblocking-socket reactors (PYTHON-1024)
Non-ASCII characters in schema break CQL string generation (PYTHON-1008)
Fix OSS driver's virtual table support against DSE 6.0.X and future server releases (PYTHON-1020)
ResultSet.one() fails if the row_factory is using a generator (PYTHON-1026)
Log profile name on attempt to create existing profile (PYTHON-944)
Cluster instantiation fails if any contact points' hostname resolution fails (PYTHON-895)
Fix tests when RF is not maintained if we decomission a node (PYTHON-1017)
Fix wrong use of ResultSet indexing (PYTHON-1015)
C* 4.0 schema-parsing logic breaks running against DSE 6.0.X (PYTHON-1018)
September 6, 2018
C* 4.0 schema-parsing logic breaks running against DSE 6.0.X (PYTHON-1018)
Parse Virtual Keyspace Metadata (PYTHON-992)
August 30, 2018
Parse Virtual Keyspace Metadata (PYTHON-992)
Tokenmap.get_replicas returns the wrong value if token coincides with the end of the range (PYTHON-978)
Python Driver fails with "more than 255 arguments" python exception when > 255 columns specified in query response (PYTHON-893)
Hang in integration.standard.test_cluster.ClusterTests.test_set_keyspace_twice (PYTHON-998)
Asyncore reactors should use a global variable instead of a class variable for the event loop (PYTHON-697)
Use global variable for libev loops so it can be subclassed (PYTHON-973)
Update SchemaParser for V4 (PYTHON-1006)
Bump Cython dependency version to 0.28 (PYTHON-1012)
Warn users when using the deprecated Session.default_consistency_level (PYTHON-953)
April 17, 2018
Add one() function to the ResultSet API (PYTHON-947)
Create an utility function to fetch concurrently many keys from the same replica (PYTHON-647)
Allow filter queries with fields that have an index managed outside of cqlengine (PYTHON-966)
Twisted SSL Support (PYTHON-343)
Support IS NOT NULL operator in cqlengine (PYTHON-968)
Fix Broken Links in Docs (PYTHON-916)
Reevaluate MONKEY_PATCH_LOOP in test codebase (PYTHON-903)
Remove CASS_SERVER_VERSION and replace it for CASSANDRA_VERSION in tests (PYTHON-910)
Refactor CASSANDRA_VERSION to a some kind of version object (PYTHON-915)
Log warning when driver configures an authenticator, but server does not request authentication (PYTHON-940)
Warn users when using the deprecated Session.default_consistency_level (PYTHON-953)
Add DSE smoke test to OSS driver tests (PYTHON-894)
Document long compilation times and workarounds (PYTHON-868)
Improve error for batch WriteTimeouts (PYTHON-941)
Deprecate ResultSet indexing (PYTHON-945)
Fix DeprecationWarning of log.warn (PYTHON-846)
January 30, 2018
cqlengine: LIKE filter operator (PYTHON-512)
Support cassandra.query.BatchType with cqlengine BatchQuery (PYTHON-888)
AttributeError: 'NoneType' object has no attribute 'add_timer' (PYTHON-862)
Support retry_policy in PreparedStatement (PYTHON-861)
__del__ method in Session is throwing an exception (PYTHON-813)
LZ4 import issue with recent versions (PYTHON-897)
ResponseFuture._connection can be None when returning request_id (PYTHON-853)
ResultSet.was_applied doesn't support batch with LWT statements (PYTHON-848)
cqlengine: avoid warning when unregistering connection on shutdown (PYTHON-865)
Fix DeprecationWarning of log.warn (PYTHON-846)
Fix example_mapper.py for python3 (PYTHON-860)
Possible deadlock on cassandra.concurrent.execute_concurrent (PYTHON-768)
Add some known deprecated warnings for 4.x (PYTHON-877)
Remove copyright dates from copyright notices (PYTHON-863)
Remove "Experimental" tag from execution profiles documentation (PYTHON-840)
request_timer metrics descriptions are slightly incorrect (PYTHON-885)
Remove "Experimental" tag from cqlengine connections documentation (PYTHON-892)
Set in documentation default consistency for operations is LOCAL_ONE (PYTHON-901)
Remove DeprecationWarning when using WhiteListRoundRobinPolicy (PYTHON-810)
November 6, 2017
Send keyspace in QUERY, PREPARE, and BATCH messages (PYTHON-678)
Add IPv4Address/IPv6Address support for inet types (PYTHON-751)
WriteType.CDC and VIEW missing (PYTHON-794)
Warn on Cluster init if contact points are specified but LBP isn't (legacy mode) (PYTHON-812)
Warn on Cluster init if contact points are specified but LBP isn't (exection profile mode) (PYTHON-838)
Include hash of result set metadata in prepared stmt id (PYTHON-808)
Add NO_COMPACT startup option (PYTHON-839)
Add new exception type for CDC (PYTHON-837)
Allow 0ms in ConstantSpeculativeExecutionPolicy (PYTHON-836)
Add asyncio reactor (PYTHON-507)
Both _set_final_exception/result called for the same ResponseFuture (PYTHON-630)
Use of DCAwareRoundRobinPolicy raises NoHostAvailable exception (PYTHON-781)
Not create two sessions by default in CQLEngine (PYTHON-814)
Bug when subclassing AyncoreConnection (PYTHON-827)
Error at cleanup when closing the asyncore connections (PYTHON-829)
Fix sites where sessions can change during iteration (PYTHON-793)
cqlengine: allow min_length=0 for Ascii and Text column types (PYTHON-735)
Rare exception when "sys.exit(0)" after query timeouts (PYTHON-752)
Dont set the session keyspace when preparing statements (PYTHON-843)
Use of DCAwareRoundRobinPolicy raises NoHostAvailable exception (PYTHON-781)
Remove DeprecationWarning when using WhiteListRoundRobinPolicy (PYTHON-810)
Bump Cython dependency version to 0.27 (PYTHON-833)
Fix DeprecationWarning when using lz4 (PYTHON-769)
July 24, 2017
Add idle_heartbeat_timeout cluster option to tune how long to wait for heartbeat responses. (PYTHON-762)
Add HostFilterPolicy (PYTHON-761)
is_idempotent flag is not propagated from PreparedStatement to BoundStatement (PYTHON-736)
Fix asyncore hang on exit (PYTHON-767)
Driver takes several minutes to remove a bad host from session (PYTHON-762)
Installation doesn't always fall back to no cython in Windows (PYTHON-763)
Avoid to replace a connection that is supposed to shutdown (PYTHON-772)
request_ids may not be returned to the pool (PYTHON-739)
Fix murmur3 on big-endian systems (PYTHON-653)
Ensure unused connections are closed if a Session is deleted by the GC (PYTHON-774)
Fix .values_list by using db names internally (cqlengine) (PYTHON-785)
Bump Cython dependency version to 0.25.2 (PYTHON-754)
Fix DeprecationWarning when using lz4 (PYTHON-769)
Deprecate WhiteListRoundRobinPolicy (PYTHON-759)
Improve upgrade guide for materializing pages (PYTHON-464)
Documentation for time/date specifies timestamp inupt as microseconds (PYTHON-717)
Point to DSA Slack, not IRC, in docs index
Nothing published for this version
cqlengine: remove elements by key from a map (PYTHON-688)
cqlengine: remove elements by key from a map (PYTHON-688)
improve error handling when connecting to non-existent keyspace (PYTHON-665)
Sockets associated with sessions not getting cleaned up on session.shutdown() (PYTHON-673)
rare flake on integration.standard.test_cluster.ClusterTests.test_clone_shared_lbp (PYTHON-727)
MontonicTimestampGenerator.__init__ ignores class defaults (PYTHON-728)
race where callback or errback for request may not be called (PYTHON-733)
cqlengine: model.update() should not update columns with a default value that hasn't changed (PYTHON-657)
cqlengine: field value manager's explicit flag is True when queried back from cassandra (PYTHON-719)
Connection not closed in example_mapper (PYTHON-723)
Remove mention of pre-2.0 C* versions from OSS 3.0+ docs (PYTHON-710)
implement __le__/__ge__/__ne__ on some custom types (PYTHON-714)
March 16, 2017
implement __le__/__ge__/__ne__ on some custom types (PYTHON-714)
Fix bug in eventlet and gevent reactors that could cause hangs (PYTHON-721)
Fix DecimalType regression (PYTHON-724)
Quote index names in metadata CQL generation (PYTHON-616)
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)
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)
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)
Cython upgrade has broken stable version of cassandra-driver (PYTHON-656)
October 26, 2016
Cython upgrade has broken stable version of cassandra-driver (PYTHON-656)
Add v5 protocol failure map (PYTHON-619)
September 13, 2016
Add v5 protocol failure map (PYTHON-619)
Don't return from initial connect on first error (PYTHON-617)
Indicate failed column when deserialization fails (PYTHON-361)
Let Cluster.refresh_nodes force a token map rebuild (PYTHON-349)
Refresh UDTs after "keyspace updated" event with v1/v2 protocol (PYTHON-106)
EC2 Address Resolver (PYTHON-198)
Speculative query retries (PYTHON-218)
Expose paging state in API (PYTHON-200)
Don't mark host down while one connection is active (PYTHON-498)
Query request size information (PYTHON-284)
Avoid quadratic ring processing with invalid replication factors (PYTHON-379)
Improve Connection/Pool creation concurrency on startup (PYTHON-82)
Add beta version native protocol flag (PYTHON-614)
cqlengine: Connections: support of multiple keyspaces and sessions (PYTHON-613)
Race when adding a pool while setting keyspace (PYTHON-628)
Update results_metadata when prepared statement is reprepared (PYTHON-621)
CQL Export for Thrift Tables (PYTHON-213)
cqlengine: default value not applied to UserDefinedType (PYTHON-606)
cqlengine: columns are no longer hashable (PYTHON-618)
cqlengine: remove clustering keys from where clause when deleting only static columns (PYTHON-608)
Handle null values in NumpyProtocolHandler (PYTHON-553)
August 1, 2016
Handle null values in NumpyProtocolHandler (PYTHON-553)
Collect greplin scales stats per cluster (PYTHON-561)
Update mock unit test dependency requirement (PYTHON-591)
Handle Missing CompositeType metadata following C* upgrade (PYTHON-562)
Improve Host.is_up state for HostDistance.IGNORED hosts (PYTHON-551)
Utilize v2 protocol's ability to skip result set metadata for prepared statement execution (PYTHON-71)
Return from Cluster.connect() when first contact point connection(pool) is opened (PYTHON-105)
cqlengine: Add ContextQuery to allow cqlengine models to switch the keyspace context easily (PYTHON-598)
Standardize Validation between Ascii and Text types in Cqlengine (PYTHON-609)
Fix geventreactor with SSL support (PYTHON-600)
Don't downgrade protocol version if explicitly set (PYTHON-537)
Nonexistent contact point tries to connect indefinitely (PYTHON-549)
Execute_concurrent can exceed max recursion depth in failure mode (PYTHON-585)
Libev loop shutdown race (PYTHON-578)
Include aliases in DCT type string (PYTHON-579)
cqlengine: Comparison operators for Columns (PYTHON-595)
cqlengine: disentangle default_time_to_live table option from model query default TTL (PYTHON-538)
cqlengine: pk__token column name issue with the equality operator (PYTHON-584)
cqlengine: Fix "__in" filtering operator converts True to string "True" automatically (PYTHON-596)
cqlengine: Avoid LWTExceptions when updating columns that are part of the condition (PYTHON-580)
cqlengine: Cannot execute a query when the filter contains all columns (PYTHON-599)
cqlengine: routing key computation issue when a primary key column is overriden by model inheritance (PYTHON-576)
Optional Execution Profiles for the core driver (PYTHON-569)
June 27, 2016
Optional Execution Profiles for the core driver (PYTHON-569)
API to get the host metadata associated with the control connection node (PYTHON-583)
Expose CDC option in table metadata CQL (PYTHON-593)
Clean up Asyncore socket map when fork is detected (PYTHON-577)
cqlengine: QuerySet only() is not respected when there are deferred fields (PYTHON-560)
Gevent connection closes on IO timeout (PYTHON-573)
May 26, 2016
Gevent connection closes on IO timeout (PYTHON-573)
"dictionary changed size during iteration" with Python 3 (PYTHON-572)
Include DSE version and workload in Host data (PYTHON-555)
May 24, 2016
Include DSE version and workload in Host data (PYTHON-555)
Add a context manager to Cluster and Session (PYTHON-521)
Better Error Message for Unsupported Protocol Version (PYTHON-157)
Make the error message explicitly state when an error comes from the server (PYTHON-412)
Short Circuit meta refresh on topo change if NEW_NODE already exists (PYTHON-557)
Show warning when the wrong config is passed to SimpleStatement (PYTHON-219)
Return namedtuple result pairs from execute_concurrent (PYTHON-362)
BatchStatement should enforce batch size limit in a better way (PYTHON-151)
Validate min/max request thresholds for connection pool scaling (PYTHON-220)
Handle or warn about multiple hosts with the same rpc_address (PYTHON-365)
Write docs around working with datetime and timezones (PYTHON-394)
High CPU utilization when using asyncore event loop (PYTHON-239)
Fix CQL Export for non-ASCII Identifiers (PYTHON-447)
Make stress scripts Python 2.6 compatible (PYTHON-434)
UnicodeDecodeError when unicode characters in key in BOP (PYTHON-559)
WhiteListRoundRobinPolicy should resolve hosts (PYTHON-565)
Cluster and Session do not GC after leaving scope (PYTHON-135)
Don't wait for schema agreement on ignored nodes (PYTHON-531)
Reprepare on_up with many clients causes node overload (PYTHON-556)
None inserted into host map when control connection node is decommissioned (PYTHON-548)
weakref.ref does not accept keyword arguments (github #585)
Add an AddressTranslator interface (PYTHON-69)
May 2, 2016
Add an AddressTranslator interface (PYTHON-69)
New Retry Policy Decision - try next host (PYTHON-285)
Don't mark host down on timeout (PYTHON-286)
SSL hostname verification (PYTHON-296)
Add C* version to metadata or cluster objects (PYTHON-301)
Options to Disable Schema, Token Metadata Processing (PYTHON-327)
Expose listen_address of node we get ring information from (PYTHON-332)
Use A-record with multiple IPs for contact points (PYTHON-415)
Custom consistency level for populating query traces (PYTHON-435)
Normalize Server Exception Types (PYTHON-443)
Propagate exception message when DDL schema agreement fails (PYTHON-444)
Specialized exceptions for metadata refresh methods failure (PYTHON-527)
Resolve contact point hostnames to avoid duplicate hosts (PYTHON-103)
GeventConnection stalls requests when read is a multiple of the input buffer size (PYTHON-429)
named_tuple_factory breaks with duplicate "cleaned" col names (PYTHON-467)
Connection leak if Cluster.shutdown() happens during reconnection (PYTHON-482)
HostConnection.borrow_connection does not block when all request ids are used (PYTHON-514)
Empty field not being handled by the NumpyProtocolHandler (PYTHON-550)
Fix counter save-after-no-update (PYTHON-547)
April 19, 2016
Fix counter save-after-no-update (PYTHON-547)
Introduced an update to allow deserializer compilation with recently released Cython 0.24 (PYTHON-542)
April 13, 2016
Introduced an update to allow deserializer compilation with recently released Cython 0.24 (PYTHON-542)
cqlengine: Warn on sync_schema type mismatch (PYTHON-260)
April 12, 2016
cqlengine: Warn on sync_schema type mismatch (PYTHON-260)
cqlengine: Automatically defer fields with the '=' operator (and immutable values) in select queries (PYTHON-520)
cqlengine: support non-equal conditions for LWT (PYTHON-528)
cqlengine: sync_table should validate the primary key composition (PYTHON-532)
cqlengine: token-aware routing for mapper statements (PYTHON-535)
Deleting a column in a lightweight transaction raises a SyntaxException #325 (PYTHON-249)
cqlengine: make Token function works with named tables/columns #86 (PYTHON-272)
comparing models with datetime fields fail #79 (PYTHON-273)
cython date deserializer integer math should be aligned with CPython (PYTHON-480)
db_field is not always respected with UpdateStatement (PYTHON-530)
Sync_table fails on column.Set with secondary index (PYTHON-533)
Nothing published for this version
cqlengine: Fix performance issue related to additional "COUNT" queries (PYTHON-522)
March 14, 2016
cqlengine: Fix performance issue related to additional "COUNT" queries (PYTHON-522)
cqlengine: Warn when Model.create() on Counters (to be deprecated) (PYTHON-333)
March 10, 2016
Pass name of server auth class to AuthProvider (PYTHON-454)
Surface schema agreed flag for DDL statements (PYTHON-458)
Automatically convert float and int to Decimal on serialization (PYTHON-468)
Eventlet Reactor IO improvement (PYTHON-495)
Make pure Python ProtocolHandler available even when Cython is present (PYTHON-501)
Optional Cython deserializer for bytes as bytearray (PYTHON-503)
Add Session.default_serial_consistency_level (github #510)
cqlengine: Expose prior state information via cqlengine LWTException (github #343, PYTHON-336)
cqlengine: Collection datatype "contains" operators support (Cassandra 2.1) #278 (PYTHON-258)
cqlengine: Add DISTINCT query operator (PYTHON-266)
cqlengine: Tuple cqlengine api (PYTHON-306)
cqlengine: Add support for UPDATE/DELETE ... IF EXISTS statements (PYTHON-432)
cqlengine: Allow nested container types (PYTHON-478)
cqlengine: Add ability to set query's fetch_size and limit (PYTHON-323)
cqlengine: Internalize default keyspace from successive set_session (PYTHON-486)
cqlengine: Warn when Model.create() on Counters (to be deprecated) (PYTHON-333)
Bus error (alignment issues) when running cython on some ARM platforms (PYTHON-450)
Overflow when decoding large collections (cython) (PYTHON-459)
Timer heap comparison issue with Python 3 (github #466)
Cython deserializer date overflow at 2^31 - 1 (PYTHON-452)
Decode error encountered when cython deserializing large map results (PYTHON-459)
Don't require Cython for build if compiler or Python header not present (PYTHON-471)
Unorderable types in task scheduling with Python 3 (h(PYTHON-473)
cqlengine: Fix crash when updating a UDT column with a None value (github #467)
cqlengine: Race condition in ..connection.execute with lazy_connect (PYTHON-310)
cqlengine: doesn't support case sensitive column family names (PYTHON-337)
cqlengine: UserDefinedType mandatory in create or update (PYTHON-344)
cqlengine: db_field breaks UserType (PYTHON-346)
cqlengine: UDT badly quoted (PYTHON-347)
cqlengine: Use of db_field on primary key prevents querying except while tracing. (PYTHON-351)
cqlengine: DateType.deserialize being called with one argument vs two (PYTHON-354)
cqlengine: Querying without setting up connection now throws AttributeError and not CQLEngineException (PYTHON-395)
cqlengine: BatchQuery multiple time executing execute statements. (PYTHON-445)
cqlengine: Better error for management functions when no connection set (PYTHON-451)
cqlengine: Handle None values for UDT attributes in cqlengine (PYTHON-470)
cqlengine: Fix inserting None for model save (PYTHON-475)
cqlengine: EQ doesn't map to a QueryOperator (setup race condition) (PYTHON-476)
cqlengine: class.MultipleObjectsReturned has DoesNotExist as base class (PYTHON-489)
cqlengine: Typo in cqlengine UserType __len__ breaks attribute assignment (PYTHON-502)
cqlengine: a major improvement on queryset has been introduced. It is a lot more efficient to iterate large datasets: the rows are now fetched on demand using the driver pagination.
cqlengine: the queryset len() and count() behaviors have changed. It now executes a "SELECT COUNT(*)" of the query rather than returning the size of the internal result_cache (loaded rows). On large queryset, you might want to avoid using them due to the performance cost. Note that trying to access objects using list index/slicing with negative indices also requires a count to be executed.
Nothing published for this version
Nothing published for this version
Support datetime.date objects as a DateType (PYTHON-212)
November 24, 2015
Support datetime.date objects as a DateType (PYTHON-212)
Add Cluster.update_view_metadata (PYTHON-407)
QueryTrace option to populate partial trace sessions (PYTHON-438)
Attach column names to ResultSet (PYTHON-439)
Change default consistency level to LOCAL_ONE
Properly SerDes nested collections when protocol_version < 3 (PYTHON-215)
Evict UDTs from UserType cache on change (PYTHON-226)
Make sure query strings are always encoded UTF-8 (PYTHON-334)
Track previous value of columns at instantiation in CQLengine (PYTHON-348)
UDT CQL encoding does not work for unicode values (PYTHON-353)
NetworkTopologyStrategy#make_token_replica_map does not account for multiple racks in a DC (PYTHON-378)
Cython integer overflow on decimal type deserialization (PYTHON-433)
Query trace: if session hasn't been logged, query trace can throw exception (PYTHON-442)
Remove deprecated features (PYTHON-292)
November 9, 2015
Process Modernized Schema Tables for Cassandra 3.0 (PYTHON-276, PYTHON-408, PYTHON-400, PYTHON-422)
Remove deprecated features (PYTHON-292)
Don't assign trace data to Statements (PYTHON-318)
Normalize results return (PYTHON-368)
Process Materialized View Metadata/Events (PYTHON-371)
Remove blist as soft dependency (PYTHON-385)
Change default consistency level to LOCAL_QUORUM (PYTHON-416)
Normalize CQL query/export in metadata model (PYTHON-405)
Implementation of named arguments bind is non-pythonic (PYTHON-178)
CQL encoding is incorrect for NaN and Infinity floats (PYTHON-282)
Protocol downgrade issue with C* 2.0.x, 2.1.x, and python3, with non-default logging (PYTHON-409)
ValueError when accessing usertype with non-alphanumeric field names (PYTHON-413)
NumpyProtocolHandler does not play well with PagedResult (PYTHON-430)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Resolve CQL export error for UDF with zero parameters (PYTHON-392)
September 14, 2015
Resolve CQL export error for UDF with zero parameters (PYTHON-392)
Remove futures dep. for Python 3 (PYTHON-393)
Avoid Python closure in cdef (supports earlier Cython compiler) (PYTHON-396)
Unit test runtime issues (PYTHON-397,398)
Explicitly include extension source files in Manifest
August 25, 2015
Explicitly include extension source files in Manifest
Cython is introduced, providing compiled extensions for core modules, and extensions for optimized results deserialization.
August 25, 2015
Cython is introduced, providing compiled extensions for core modules, and extensions for optimized results deserialization.
General Performance Improvements for Throughput (PYTHON-283)
Improve synchronous request performance with Timers (PYTHON-108)
Enable C Extensions for PyPy Runtime (PYTHON-357)
Refactor SerDes functionality for pluggable interface (PYTHON-313)
Cython SerDes Extension (PYTHON-377)
Accept iterators/generators for execute_concurrent() (PYTHON-123)
cythonize existing modules (PYTHON-342)
Pure Python murmur3 implementation (PYTHON-363)
Make driver tolerant of inconsistent metadata (PYTHON-370)
Drop Events out-of-order Cause KeyError on Processing (PYTHON-358)
DowngradingConsistencyRetryPolicy doesn't check response count on write timeouts (PYTHON-338)
Blocking connect does not use connect_timeout (PYTHON-381)
Properly protect partition key in CQL export (PYTHON-375)
Trigger error callbacks on timeout (PYTHON-294)
Output proper CQL for compact tables with no clustering columns (PYTHON-360)
July 20, 2015
Output proper CQL for compact tables with no clustering columns (PYTHON-360)
Automatic Protocol Version Downgrade (PYTHON-240)
June 24, 2015
Automatic Protocol Version Downgrade (PYTHON-240)
cqlengine Python 2.6 compatibility (PYTHON-288)
Double-dollar string quote UDF body (PYTHON-345)
Set models.DEFAULT_KEYSPACE when calling set_session (github #352)
Avoid stall while connecting to mixed version cluster (PYTHON-303)
Make SSL work with AsyncoreConnection in python 2.6.9 (PYTHON-322)
Fix Murmur3Token.from_key() on Windows (PYTHON-331)
Fix cqlengine TimeUUID rounding error for Windows (PYTHON-341)
Avoid invalid compaction options in CQL export for non-SizeTiered (PYTHON-352)
Deprecate refresh_schema and replace with functions for specific entities (PYTHON-291)
June 4, 2015
This release adds support for Cassandra 2.2 features, including version 4 of the native protocol.
Default load balancing policy to TokenAware(DCAware) (PYTHON-160)
Configuration option for connection timeout (PYTHON-206)
Support User Defined Function and Aggregate metadata in C* 2.2 (PYTHON-211)
Surface request client in QueryTrace for C* 2.2+ (PYTHON-235)
Implement new request failure messages in protocol v4+ (PYTHON-238)
Metadata model now maps index meta by index name (PYTHON-241)
Support new types in C* 2.2: date, time, smallint, tinyint (PYTHON-245, 295)
cqle: add Double column type and remove Float overload (PYTHON-246)
Use partition key column information in prepared response for protocol v4+ (PYTHON-277)
Support message custom payloads in protocol v4+ (PYTHON-280, PYTHON-329)
Deprecate refresh_schema and replace with functions for specific entities (PYTHON-291)
Save trace id even when trace complete times out (PYTHON-302)
Warn when registering client UDT class for protocol < v3 (PYTHON-305)
Support client warnings returned with messages in protocol v4+ (PYTHON-315)
Ability to distinguish between NULL and UNSET values in protocol v4+ (PYTHON-317)
Expose CQL keywords in API (PYTHON-324)
IPv6 address support on Windows (PYTHON-20)
Convert exceptions during automatic re-preparation to nice exceptions (PYTHON-207)
cqle: Quote keywords properly in table management functions (PYTHON-244)
Don't default to GeventConnection when gevent is loaded, but not monkey-patched (PYTHON-289)
Pass dynamic host from SaslAuthProvider to SaslAuthenticator (PYTHON-300)
Make protocol read_inet work for Windows (PYTHON-309)
cqle: Correct encoding for nested types (PYTHON-311)
Update list of CQL keywords used quoting identifiers (PYTHON-319)
Make ConstantReconnectionPolicy work with infinite retries (github #327, PYTHON-325)
Accept UUIDs with uppercase hex as valid in cqlengine (github #335)
Fix thread safety in DC-aware load balancing policy (PYTHON-297)
April 23, 2015
Fix thread safety in DC-aware load balancing policy (PYTHON-297)
Fix race condition in node/token rebuild (PYTHON-298)
Set and send serial consistency parameter (PYTHON-299)
Integrated cqlengine object mapping package
March 30, 2015
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)
Your coding agent can read these notes before it upgrades. Set up the MCP server →