@@ -5,6 +5,76 @@ Changelog
55
66=========
77
8+ 3.0.0 (2025-07-07)
9+ ------------------
10+
11+ Features
12+ ~~~~~~~~
13+
14+ This is the first major release of the QuestDB Python client library
15+ which supports n-dimensional arrays of doubles for QuestDB servers 9.0.0 and up.
16+
17+ .. code-block :: python
18+
19+ import numpy as np
20+
21+ # Create 2D numpy array
22+ array_2d = np.array([
23+ [1.1 , 2.2 , 3.3 ],
24+ [4.4 , 5.5 , 6.6 ]], dtype = np.float64)
25+
26+ sender.row(
27+ ' table' ,
28+ columns = {' array_2d' : array_2d},
29+ at = timestamp)
30+
31+ The array data is sent over a new protocol version (2) that is auto-negotiated
32+ when using HTTP(s), or can be specified explicitly via the ``protocol_version=2 ``
33+ parameter when using TCP(s).
34+
35+ We recommend using HTTP(s), but here is an TCP example, should you need it::
36+
37+ tcp::addr=localhost:9009;protocol_version=2;
38+
39+ When using ``protocol_version=2 `` (with either TCP(s) or HTTP(s)), the sender
40+ will now also serialize ``float `` (double-precision) columns as binary.
41+ You might see a performance uplift if this is a dominant data type in your
42+ ingestion workload.
43+
44+ When compared to 2.0.4, this release includes all the changes from 3.0.0rc1 and
45+ additionally:
46+
47+ * Has optimised ingestion performance from C-style contiguous NumPy arrays.
48+
49+ * Warns at most every 10 minutes when burst of reconnections are detected.
50+ This is to warn about code patterns that may lead to performance issues, such as
51+
52+ .. code-block :: python
53+
54+ # Don't do this! Sender objects should be reused.
55+ for row_fields in data:
56+ with Sender.from_conf(conf) as sender:
57+ sender.row(** row_fields)
58+
59+ This feature can be disabled in code by setting:
60+
61+ .. code-block :: python
62+
63+ import questdb.ingress as qi
64+ qi.WARN_HIGH_RECONNECTS = False
65+
66+ * Fixed ILP/TCP connection shutdown on Windows where some rows could be
67+ lost when closing the ``Sender ``, even if explicitly flushed.
68+
69+ * Added a "Good Practices" section to the "Sending Data over ILP" section of
70+ the documentation.
71+
72+ Breaking Changes
73+ ~~~~~~~~~~~~~~~~
74+ Refer to the release notes for 3.0.0rc1 for the breaking changes introduced
75+ in this release compared to 2.x.x.
76+
77+
8783.0.0rc1 (2025-06-02)
979---------------------
1080
@@ -16,6 +86,10 @@ Features
1686* Array Data Type Support. Adds native support for NumPy arrays
1787 (currently only for ``np.float64 `` element type and up to 32 dimensions).
1888
89+ .. note ::
90+ **Server Requirement **: This feature requires QuestDB server version 9.0.0 or higher.
91+ Ensure your server is upgraded before ingesting array types, otherwise data ingestion will fail.
92+
1993.. code-block :: python
2094
2195 import numpy as np
0 commit comments