New Breaking Change Feature
From QuestDB 9.1.0 onwards you can use CREATE TABLE
SQL statements with
TIMESTAMP_NS
column types, or rely on column auto-creation.
This client release adds support for sending nanoseconds timestamps to the
server without loss of precision.
This release does not introduce new APIs, instead enhancing the sender/buffer's
.row()
API to additionally accept nanosecond precision.
conf = 'http::addr=localhost:9000;'
# or `conf = 'tcp::addr=localhost:9009;protocol_version=2;'`
with Sender.from_conf(conf) as sender:
sender.row(
'trade_executions',
symbols={
'product': 'VOD.L',
'parent_order': '65d1ba36-390e-49a2-93e3-a05ef004b5ff'
'side': 'buy'},
columns={
'order_sent': TimestampNanos(1759246702031355012)},
at=TimestampNanos(1759246702909423071))
If you're using dataframes, nanosecond timestamps are now also transferred with
full precision.
The change is backwards compatible with older QuestDB releases which will simply
continue using the TIMESTAMP
column, even when nanoseconds are specified in
the client.
This is a breaking change because it introduces new breaking timestamp column auto-creation behaviour. For full details and upgrade advice, see the nanosecond PR on GitHub.
Full Changelog: v3.0.0...v4.0.0